NetBSD/sys/arch/sun3/TODO

235 lines
8.2 KiB
Plaintext

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)