THINGS TO BE DONE: (NetBSD/Sun3 version) <$Revision: 1.3 $> This is a list of things that need to be done for NetBSD/Sun3. Some of these tasks are small, others are large. Some are extremely critical, others would be useful to do, and some are fluff. Included in each description, is a notation of its importance. Please note however that this is a list of things to do above and beyond fixing bugs in the existing code base. In general there are some guidelines for work to be included in NetBSD. Chief among these are: (1) Keep GPLed stuff out of the kernel. (2) Only clean code, that lends itself to further enhancement (3) Keep architecture dependent code out of architecture independent directories The important part of this is that the sun3 stuff better stay in sys/arch/sun3. Bootstrapping: make it easy to do nfs diskless (CRITICAL). currently you have to hack up the nfs_diskless sturcture. this should be fixed by finishing porting sys/lib/libnetboot. native boot blocks (HIGH) nfs diskless boot blocks (HIGH). Kernel core tasks (arch/sun3/sun3): make pmap module modifications necessary so that we can turn on MACHINE_NONCONTIG,a kernel config option that allows for non-contiguous physical memory. This work is necessitated by the the frame buffer on the 3/50 which is plop in the middle of physical ram. (CRITICAL) kernel text is not protected. (CRITICAL..for debugging) find out why kernel has to be linked with such wierd options. (HIGH) test virtual addressed cache support on non-desktop machines. (HIGH) need support for the sun eeprom, including a non-sun copyrighted header file describing its structure. Needed at least for console handling. (MEDIUM) ddb support (MEDIUM) (mycroft is working on this, for 68ks in general, and it may actually work some now) locore.s got split into many pieces as part of a bit of research by the author into how much of it was truly sun-dependent vs 68k-dependent. Needs to be re-integrated into a standard locore.s so that we can benefit from changes to the hp300, and amiga ports, and vice-versa. (MEDIUM, will be fixed by glass) FPUCOPROC support needs to be better integrated and triggered by something other than this awful define. Also need FPU emulation code (see briggs). (MEDIUM) msgbuf should be allocated later, using the pmap stuff, same with high_segment crud. see the dvma_alloc code for an example of how much cleaner this is. (LOW..it works now) compute idprom checksum, and check it (was lazy) (LOW) HPUX compatibility support (make it hang off p_emul like our COMPAT_SUNOS support). (LOW) pmap module should keep a 3-level cache of ptes instead of 2. (LOW) need /dev/eeprom driver functionality added to mem.c (LOW) support for sun3x architecture (LOW, but we have the 030 code) Device-driver related tasks: scsi driver - use the scsi infrastructure in sys/scsi. See config-file component in sys/arch/i386/conf For host-adapter driver examples look in sys/arch/{386/isa,mac68k/dev} host adapter chip is NCR 5380. dma chip is amd 9516. secondary sources in: mac port, sprite, mach3 (SUPER_DUPER_CRITICAL) prom console can accept input, though it does so lamely make zs, ms, kbd driver as incorporated from torek's code actually work. Then re-engineer such that it isn't so ugly. (CRITICAL) intel ether - driver for 'ie' intel 82586-based ethernet. see mach3, sprite, and i386 port (CRITICAL) VME support (CRITICAL) console handling (choice, detection, etc.) (MEDIUM) OBIO probe support needed. support for handling the traps is already present in the form of pcb_onfault. (MEDIUM) Better OBIO configuration architecture, less re-computation of default parameters. device-conflict notification. Requires mycroft's autoconfig fix. (MEDIUM) bw?, cg*,fb - must have same external interface as sun's to keep X happy. see sparc, and sprite code. (MEDIUM) lance - switch to sparc code as a base instead of hp300. (LOW) THINGS TO BE DONE: (NetBSD/Sun3 version) <$Revision: 1.3 $> This is a list of things that need to be done for NetBSD/Sun3. Some of these tasks are small, others are large. Some are extremely critical, others would be useful to do, and some are fluff. Included in each description, is a notation of its importance. Please note however that this is a list of things to do above and beyond fixing bugs in the existing code base. In general there are some guidelines for work to be included in NetBSD. Chief among these are: (1) Keep GPLed stuff out of the kernel. (2) Only clean code, that lends itself to further enhancement (3) Keep architecture dependent code out of architecture independent directories The important part of this is that the sun3 stuff better stay in sys/arch/sun3. Bootstrapping: make it easy to do nfs diskless (CRITICAL). currently you have to hack up the nfs_diskless sturcture. this should be fixed by finishing porting sys/lib/libnetboot. native boot blocks (HIGH) nfs diskless boot blocks (HIGH). Kernel core tasks (arch/sun3/sun3): make pmap module modifications necessary so that we can turn on MACHINE_NONCONTIG,a kernel config option that allows for non-contiguous physical memory. This work is necessitated by the the frame buffer on the 3/50 which is plop in the middle of physical ram. (CRITICAL) all the FPUCOPROC support is untested and from the hp300 port. It needs to be better integrated and triggered by something other than this awful define. Also need FPU emulation code. (CRITICAL) kernel text is not protected. (CRITICAL..for debugging) find out why kernel has to be linked with such wierd options. (HIGH) test virtual addressed cache support on non-desktop machines. (HIGH) need support for the sun eeprom, including a non-sun copyrighted header file describing its structure. Needed at least for console handling. (MEDIUM) ddb support (MEDIUM) (mycroft is working on this, for 68ks in general, and it may actually work some now) add some debugging facilities to the pmap module. (MEDIUM) locore.s got split into many pieces as part of a bit of research by the author into how much of it was truly sun-dependent vs 68k-dependent. Needs to be re-integrated into a standard locore.s so that we can benefit from changes to the hp300, and amiga ports, and vice-versa. (MEDIUM, will be fixed by glass) msgbuf should be allocated later, using the pmap stuff, same with high_segment crud. see the dvma_alloc code for an example of how much cleaner this is. (LOW..it works now) compute idprom checksum, and check it (was lazy) (LOW) HPUX compatibility support (make it hang off p_emul like our COMPAT_SUNOS support). (LOW) pmap module should keep a 3-level cache of ptes instead of 2. (LOW) need /dev/eeprom driver functionality added to mem.c (LOW) support for sun3x architecture (LOW, but we have the 030 code) Device-driver related tasks: scsi driver - use the scsi infrastructure in sys/scsi. See config-file component in sys/arch/i386/conf For host-adapter driver examples look in sys/arch/{386/isa,mac68k/dev} host adapter chip is NCR 5380. dma chip is amd 9516. secondary sources in: mac port, sprite, mach3 (SUPER_DUPER_CRITICAL) prom console currently can't accept input (CRITICAL) intel ether - driver for 'ie' intel 82586-based ethernet. see mach3, sprite, and i386 port (CRITICAL) VME support (CRITICAL) kbd - must have same external interface as sun's kbd driver in order to keep X happy. see sprite code, maybe sparc port. (HIGH) zs driver - Zilog 8530 duart (MEDIUM) sources: sparc port, mach3, sprite console handling (choice, detection, etc.) (MEDIUM) OBIO probe support needed. support for handling the traps is already present in the form of pcb_onfault. (MEDIUM) Better OBIO configuration architecture, less re-computation of default parameters. device-conflict notification. Requires mycroft's autoconfig fix. (MEDIUM) mouse - must have same external interface as sun's mouse driver in order to keep X happy. see supplied sprite + sparc code. (MEDIUM) bw?, cg*,fb - must have same external interface as sun's to keep X happy. see sparc, and sprite code. (MEDIUM) lance - switch to sparc code as a base instead of hp300. (LOW)