THINGS TO BE DONE: (NetBSD/sun3 version) <$Revision: 1.1 $> 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. In general there are some guidelines for work to be included in NetBSD/Sun3. 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 Bootstrapping: native boot blocks (HIGH) nfs diskless boot blocks (HIGH) 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 libnetboot. Kernel core tasks (core): 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) compute idprom checksum, and check it (was lazy) (LOW) need support for the sun eeprom, including a non-sun copyrighted header file describing its structure. Needed at least for console handling. (MEDIUM) 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) 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) ddb support (MEDIUM) kernel text is not protected. (CRITICAL..for debugging) 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) HPUX compatibility support (make it hang off p_emul like our COMPAT_SUNOS support). (LOW) add some debugging facilities to the pmap module. (MEDIUM) pmap module should keep a 3-level cache of ptes instead of 2. (LOW) find out why kernel has to be linked with such wierd options. (HIGH) need /dev/eeprom driver functionality added to mem.c (LOW) support for sun3x architecture (LOW) Device-driver related tasks: 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 (MEDIUM) prom console currently can't accept input (CRITICAL) VME support (CRITICAL) zs driver - Zilog 8530 duart (MEDIUM) sources: sparc port, mach3, sprite scsi infrastructure, and drivers - use the scsi system 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) kbd - must have same external interface as sun's kbd driver in order to keep X happy. see supplied sprite code, maybe sparc port. (HIGH) 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) intel ether - driver for 'ie' intel 82586-based ethernet. see mach3, and sprite (CRITICAL)