#	$NetBSD: history,v 1.12 2025/03/23 10:11:34 andvar Exp $
---------------------------------------------------------------------------
This document is more included as a historical reference and nostalgia :)
rather than a still worked on list.
---------------------------------------------------------------------------
(stuff before this time is apparently lost)

3135	- fixed mode selection on boot
	- page up/down, insert and delete now generate the correct codes in
	  the console
	- the configured modesare now compiled in a separate file rather
	  than in vidcconsole.c
	- The eb timeout reduced to 30 secs

	- clreos problems fixed
	- / on the keypad generated the correct code
	- the block cursor hove down 2 scan lines to align with characters
	- extended irq renamed netslot
	- extra double mapping of kstack removed
	- kstack located at efbfe000
	- implementation of cpu_swapin() to remap the kstack
	- patch to vm_glue to use kmem_alloc for the kstack
	- extra pmap debugging code added with DEBUG669
	- the pventry tables can not be dumped from the kshell
	  or from a running system.

	- merged console code v133 into kernel
	- the disklabel code no longer prints a warning if a HD is found
	  without a adfs partition
	- the kbd driver now is capable of setting the keyboard leds.
	- added ioctl to set the keyboard leds.
	- added a routine to read the keyboard state.
	- added a routine to set the keyboard state.
	- added some prototypes to kbd.h
	- implemented irq_setmasks() as an assembly function.
	- added an extra disable irq mask
	- the irq bits from IOMD reg A are cleared as soon as req A is read
	- Debugged the plip driver. The ip packet is now word aligned when
	  passed to the upper network levels

20/09/95
	- the cpu_switch routine checks the amount of stack space used when
	  swapping in a task and prints a warning when 6K has been used
	- removed the remnants of the old kstack double mapping
	- a separate message is printed for umounts during a halt.
	- added extra validation in copyin() copyout() copyinstr() and
          copyoutstr()
	- podule irq handler no longer panics
	- Lark A16 podule now recognised
	- section permission faults now cause bus errors
	- the syscall handler now correctly uses bcopy to copy the register
	  passed parameters
	- the copyin() function now validates the uaddrs argument
	- the kstack is filled with a know pattern on a fork()
	- the postmortem code will check the size of the kstack fill pattern
	- the assembly bcopyinout() now returns EFAULT on error
	- the copyin() copyout() copyinstr() copyoutstr() now return EFAULT
	  if the validation checks fail.
23/09/95
	- the fault handler will report faults from (fu/su)iwintr()
	- added new pmap function to return the address of the next physical
	  page (pmap_next_phys_page).
	- added code to machdep.c to compare the page number against
	  pmap_next_phys_page() to try and locate source to kernel size
	  limit
	- added option to syscall_special (32) to return the address of the
	  next physical page.
	- fixed the primary bootstrap to map more memory for the secondary
	  bootstrap to use.
	- The 936K kernel size limit has been removed.
	- Added support for KTRACE in syscall.c
	- Secondary bootstrap now zeros down its memory
	- cpu_switch now zeros curpcb while there is no valid process
	-
1/10/95
	- cpuswitch now detects trashed stacks.
	- new compile option for generation of enhanced postmortem debugging
	- merged console code 183b
	- implemented a memcpy routine
	- removed remnants of the kstackpte's
	- cleaned old commented debugging code out of cpu_switch
	- Added new comments in exception.S
	- userret() check for a non-zero proc pointer
	- extended postmortem debug for cpu_switch bug
	- updated prototype declarations in machdep.c
	- fixed passing of proc0 pointer into cpu_switch from switch_exit
	- podulebus now recognised Lingenuity podules
	- Lingenuity 16bit SCSI card recognised

3/10/95
	- new compile option ROTTEN_INARDS to dump full debugging info on
	  postmortem
	- Rewritten postmortem debug information printout
	- Postmortem will now examine the IRQ stack for traceback info
	- Fix cpu_exit() bug thus could result in the idle being entered at
	  splhigh()
	- Added function prototypes for functions called in vm_machdep.c
	- boot0() now makes sure IRQ's and FIQ's have been disabled
	- The ARM700 FPA is now correctly turned off during boot
	- A major has been allocated for the vidcaudio device (36)
	- vidcaudio.c added to mainbus/ and associated support added in
	  conf/ and conf.c
	- Patch to the console code to report the version number
	- Latest version of dev/isa/com.c merged into mainbus/com.c
	- Latest version of dev/isa/lpt.c merged into mainbus/lpt.c
	- Latest version of dev/isa/wd.c merged into mainbus/wd.c
	- new assembly version of copystr added
	- buffer address for beep0 removed from attach message
	- unrecognised undefined instructions are now logged as errors to
	  syslog
	- fpe now attaches a coproc2 handler to stap coproc2 FP instructions
	  and report an error
	- New compile option FPE_INLINE added to fpe.c to inline some of the
	  conversion functions
	- Added new compile option FPE_PROF to fpe.c to compile in FP profiling
	  code
	- 

14/10/95
	- added podule id for laser direct card
	- added podule id for morley SCSI card
	- added podule id for AXRE SCSI card
	- added podule id for CC midi max card
	- modified primary/secondary bootstraps to reserve special boot
	- memory for hydra board
	- added hydra device
	- Added CPU identification for all hydra processors
	- Private stacks are allocated to all slave processors
	- All hydra processors are halted on reboot
	- podule code checks for chunk directories but does not try to read
	  them yet.
	- polling, immediate execution asc driver written for Acorn SCSI
	  card
	- new special syscalls added to aid development of hydra software

01/11/95
	- kernel built with new netbsd-current source tree
	- arm32 source updated to conform to latest netbsd-current source
	  tree

03/11/95
	- ALT-Cursor Left/Right now work the correct way round
	- ALT-F6 now generates the correct code
	- alpha version of the cumana SCSI II driver added
	- alpha version of the ether1 driver added
	- console code upgraded to V191
	- driver directory structure changed.
	- ./src/patch directory updated
	- alpha version of ATAPI CDROM driver added
	- mainbus and podulebus directories split in to public and private
	  directories.
	- warnings from validate_trapframe() are prefixed with "VTF"
	- old rpc console stuff removed from files.arm32 and source moved to
	  arch/arm32/old/
	- the arch/arm32/pmap_stuff dir has been moved to arch/arm32/old/
	- the _mcount.S and belgium.S files have been moved to old and
	  removed from files.arm32
	- the device name to major code in autoconf.c now recognised /dev/cd
	  and /dev/wcd
	- the mountroot code in stubs.c will call cd9660_mountroot() instead
	  of ffs_mountroot() is the root dev is a CDROM major.
	- major 36 allocated to audio device
	- major 37 allocated to vidcvideo device
	- major 38 allocated to hydra device


07/11/95
	- cpu_fork() now maps in a page table for each process covering the
	  0M-4M block of memory.
	- VM_MIN_ADDRESS lowered to 0x1000
	- cpu_swapout() unmaps the system page at 0x00000000 from its page
	  table
	- cpu_swapin() wires down the pagetable covering 0x00000000 and
	  maps in the system page at 0x00000000
	- cpu_swapin() and cpu_swapout() moved to vm_machdep.c
	- pmap_enter_pv() no longer panics on duplicate mapping, it just
	  prints a warning.
	- alpha version of the powertec SCSI driver

15/11/95
	- switch_exit now unmaps the system page.
	- added newline to printf in disksubr.c
	- the console code has been moved to the dev directory
	- cumana SCSI II driver upgraded to support interrupts
	- powertec SCSI II driver upgraded to support interrupts
	- the mount root code in stubs.c will attempt to mount
	  a hd partition as cd9660 if the ffs_mountroot() fails.
	- added missing copyright notices
	- updated some declarations in header files
	- removed DEBUG669 code from pmap.c
	- new syncing routine written for boot()
	- syncing no longer requires kshell support
	- Added extra comments to the boot() function
	- Implemented cpu_sysctl() function (just returns not supported
	  error)
	- The nosync kernel interrupt now correctly uses RB_NOSYNC
	- 

20/11/95
	- restructure of directories contains device files
	- fixed bug in pmap_pte() that could result in non-word
	  aligned pointers being returned in a off page boundary virtual
	  address was specified.
	-

24/11/95
	- merged in new netbsd-current source tree 
	- removed all the validate_trapframe() calls
	- the ioctl CONSOLE_BLANKTIME now reloads the blank timer
	- the ioctl CONSOLE_BLANKTIME uses the default blank time if a
	  negative time is specified.
	- the machine id is now passed in the bootconfig structure
	- the eb0 driver will set the MAC address from the machine id
	  if the address has not already been set.

26/11/95
	- Fixed the definition of va_dcl in arm32/include/varargs.h
	- 

02/12/95
	- Fixed the WriteShort() macro
	- Removed some redundant code from machdep.c
	- cpu_sysctl is now declared to return an int
	- stubs.c now has prototypes for the floppy driver functions it
	  calls when loading the ramdisc.
	- further debugging work on the ether3 driver

10/12/95
	- Added uk device for unknown scsi devices to configuration files
	  and conf.c
	- Alpha version of the ether3 ea device driver

14/12/95
	- Merged in beta version of the ether1 (ie) device driver
	- added ifdefs to stubs.c so the cd9660_mountroot() is only called
	  when the kernel is compiled with CD9660
	- created new text file to track all major and minor numbers

16/12/95
	- define __FORK_BRAINDAMAGE for compilation with the latest NetBSD
	  sources
	- boot() now calls doshutdownhooks()
	- merged in frank's new debugger code (process_machdep.c, ptrace.h,
	  regs.h)
	- patches stub.c to take account of frank's new code
	- patch cpu.h to give more detail on the PSR bits
	- fixed the setting of p->p_mdregs to point to the trapframe in
	  the kernel mapping of kstack rather than the current mapping.
	- removed some redundant code from mem.c
	- commented out all the trace_debug code
	- cpu_coredump moved from stubs.c to vm_machdep.c
	- implemented ptrace.S in libc
	- boot() no longer sets the curproc to proc0 if it was zero.
	- spl's added to the console locking code
	-

19/12/95
	- merged in new console code (V203) from Nut
	- dosoftints() now calls pppintr()

21/12/95
	- sys_sysarch() no longer panics but returns EINVAL instead.
	- added 3 new debugging syscalls for tracing the vnode bug
	- identified what goes wrong with vnodes resulting in a lockup
	- fixed a number of source file headers
	- Added new comments to a number of routines.
	- readdisklabel() now sets the B_AGE flag on its buffer
	- ether3 drive now reports the controller chip type
	- removed all stand and glue code from kshell
	- added a new debugging syscall to all wakeup() to be called

24/12/95
	- removed redundant physconinit() call in initarm().
	- updated comments in machdep.c
	- added support for multiple swap devices to be specified at boot
	  time
	- changed debugging output in userret()
	- added extra debugging
	- added new debugging syscalls for tracubg the vnode bug
	- added new debugging commands to the kshell
	- added a new insw16() function for faster block transfers
	- created a patch to fix p_nice
	- the wd driver now supports multisector transfers
	- added a new outsw16() function for faster block transfers but is
	  currently untested
	- the existing arm32/fpe directory has been renamed to
	  arm32/fpe-sp
	- started work on integrating the ARM FPE
	- a new fpe directory arm32/fpe-arm has been created for the new FPE
	- file arm32/cpu.S renamed to arm32/cpuswitch.S
	- created new mainbus device 'cpu' (mainbus/cpu.c)
	- created new header file include/cpus.h to hold macros and
	  structure definitions for CPUs.
	- all identify functions for the processor and FPA have been moved
	  to mainbus/cpu.c
	- FPE is now attached during the CPU attachment during
	  autoconfiguration
	- Identification of CPU and FPU split into separate functions in
	  mainbus/cpu.c
	- Added new function initialise_fpe() to fpe-sp/fpe.c This is the
	  new initialisation point for the FPE. All vector claiming is done
	  in this routine. Routine is also responsible for IDing the FPE.
	- ramdisc memory allocation now only ever done in the ramdisc driver
	- cpu_model now declared in mainbus/cpu.c
	- rpc_configure() renamed to configure()
	- added function need_proftick() to clock.c
	- further development work ARM FPE driver
	- glue code for ARM FPE written and tested.
	- ARM FPE now gets first chance as being installed with
	  the existing FPE installed as a fallback if the ARM FPE
	  installation failed.
	- Hooks for the ARM FPE added in cpu_fork() cpu_exit() and
	  cpu_switch()
	- Recoding of ether3 driver started.
	- More debugging code added to trace vnode bug
	- macro added to syscall.c to handle exit from the syscall handler
	  for special development syscalls.
	- Vnode bug identified as a corruption of the first word (v_flag)
	  of certain vnodes.
	- Ether3 driver rewritten and debugged. Now a beta stage driver
	- Vnode corruption traced to console code.
	- Ether3 drive now has interface buffer memory tests
	- vnode corruption traced to do_scrolldown() routine in the
	  console driver.
	- vnode corruption bug located and fixed. Incorrect loop start and
	  end points when scrolling the character map down (writing beyond
	  allocated memory).
	- Started work on rewriting the etherB driver
	- cleaned up various header files
	- removed stub.c as it was no longer needed
	- updated strstr.c
	- hydra code hooks now only compiled in if hydra device is
	  configured
	- EtherB driver rewritten to match recoding of ether3 driver
	- EtherB driver now a beta stage driver
	- Work started on generic driver code for SEEQ EDLC's
	- vidcvideo device now supports multiple openings
	- EtherB driver now puts the controller to sleep when not active
	- strstr() replaced with version borrowed from libc/string/strstr.c

05/01/96
	- Further development of ARM FPE
	- generic fas216 code no longer experimental/NDA
	- powertec scsi driver no longer experimental/NDA
	- entry to undefined instruction handlers is now indirected in
	  exception.s
	- entry to the undefined instruction handlers is made a trapframe
	  on the stack and r0-r12 preserved from exception.
	- bounce code added so the existing undefined instruction handler
	  can be called with r0 pointing to the trapframe.
	- new function arm_fpe_copycontext created
	- fixed the use of FP instructions in sfas.c
	- fixed errors in the softint code
	- netns support can be compiled in the kernel
	- fixed warnings in fpe-sp/fpe.c and mainbus/cpu.c

10/01/96
	- exception.S updated pending new undefined instruction handling
	  code
	- merged in new wd driver from NetBSD-current
	- merged in new com driver from NetBSD-current
	- merged in new fd driver from NetBSD-current
	- created new file sys_machdep.c for machine dependent syscall stuff
	- moved sys_sysctl from machdep.c to sys_machdep.c
	- fixed nested comments in iic.S
	- removed old bug tracing code from cpuswitch.S
	- debugged new fd driver

13/01/96
	- undefined mode r13 added to the pcb structure
	- new version of the ARM fpe built
	- ARM FPE now has core deactivate routine accessible
	- Call back from ARM FPE added on instruction completion
	- cpu_switch() now switches UND32 mode r13
	- cpu_fork() now sets up UND32 mode r13 in pcb
	- undefined vector now calls stub routine that indirects
	  via address held in data area.
	- data abort handler address now held in data area rather
	  than text area.
	- prefetch abort handler address now held in data area rather
	  than text area.
	- disabled warnings about soft errors from the fd driver

17/01/96
	- implemented pmap_resident_count()
	- fixed the kernel avail_start and avail_end variable. This
	  fixes the divide by zero bug in /bin/ps
	- ps now reports the correct resident size

19/01/96
	- kernel now supports permission faults in UND32 mode.
	- kernel shell now has kshell> prompt instead of #
	- ramdisc loading code has been moved from stubs.c to fd.c
	- ramdisc loading code now uses a rd_conf structure to
	  describe the ramdisc.
	- rd_hooks.c file added to the arm32/dev directory in
	  order to support the generic ramdisk.
	- patch to generic ramdisc driver to allow a device match hook
	- mainbus/ramdisc.c removed.
	- generic ramdisc has now replaces to mainbus/ramdisc.
	- fault.c reformatted
	- new compile symbols introduced to compile in debug code for
	  fault correction.
	- all remnants of the trace_debug code removed.
	- armfpe code moved from arm32/fpe-arm/arm32 to arm32/fpe-arm/
	- fu*() su*() functions moved from libkern into arm32/fusu.c
	- added code to locore.S to traceback frames on the user process
	  stack
	- added variable to enable / disable tracing back of user process
	  stacks
	- added syscall to control user stack trackbacks.
	- optimised ARM FPE exception delivery code
	- implemented ARM FPE post processing callback glue
	- ARM FPE post processor now calls user
	- ARM FPE post processor optimised to recover some of the
	  performance lost by calling userret()
	- integrated alpha version of the etherH driver
	- updated ramdisc hooks to removed the need for a rd_match_hook()
	  function
	- added Oak to the list of podule manufacturers
	- kernel now recognised Oak SCSI I cards.
	- Added generic NCR5380 SCSI driver code
	- integrating in alpha version of the oak SCSI driver

26/01/96
	- merged in latest updates from the NetBSD-current source tree

29/01/96
	- code updated for merging into NetBSD source tree

02/02/96
	- assembly symbol file now names assym.h instead of assym.s
	- The symbol LOCORE has been replaced with _LOCORE
	- ramdisc loading code in now compiled in conditionally on
	  RAMDISK_HOOKS
	- Further development of hydrabus device.
	- CPUs can noe be attached to both the mainbus and the hydrabus
	- hooks for hydrabus device updated in pmap.c syscall.c and
	  machdep.c
	- Extra comments added in exception.S
	- sizeof(struct trapframe) now defined in assym.h
	- register fixup for data transfer instruction aborts now handles
	  LDC/STC instructions i.e. hardware executed LDF/STF
	- configuration files updated for latest devices
	- fixed use of mkdepend in makefile
	- fixed the bug that caused panics when issuing the mode change
	  ioctl to the vidcvideo device
	- console code version number updated
	- Updated armfpe_post_proc() to take a trapframe pointer as the
	  second argument
	- updated the armfpe_post_proc_glue() code to fake a trapframe
	  structure from the FPE frame before calling the post proc handler
	  so that sendsig has a valid trapframe in p->p_md.md_regs
	- updated the armfpe_post_proc_glue() code to patch the FPE frame
	  with data from the trapframe on return from the post proc handler.
	- signal delivery is now working during FP instructions.
	- mondef code resurrected and renamed to setdisplay and moved to the
	  stand directory.


NetBSD/arm32 source code is now merged in to the NetBSD source tree.
All code changes are now logged via CVS and are available from the
NetBSD source-changes mailing list.
