# $NetBSD: history,v 1.9 2022/04/04 19:33:44 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 argumant - 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 - Seondary bootstrap now zeros down its memory - cpu_switch now zeros curpcb while there is no valid process - 1/10/95 - cpuswitch now detects trahsed 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 gernerates 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 an 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.