143 lines
4.5 KiB
Plaintext
143 lines
4.5 KiB
Plaintext
$NetBSD: TODO,v 1.10 2000/05/09 07:30:14 soda Exp $
|
|
|
|
To do list (not in any particular order).
|
|
|
|
o XXX sudden hang up in a few minutes or dozens of minutes.
|
|
2000 Mar 17 -current is OK. Mar 29 is NG.
|
|
|
|
o Move the RO and WIRED attribute from the pte to the pv table.
|
|
This saves four instructions in the tlb miss handler.
|
|
|
|
o Boot. Standalone boot program instead of booting the kernel directly?
|
|
|
|
o Find out why bitmap load to S3-928 flashes screen. (X server)
|
|
Know why (enable linear mode). Need S3 info.
|
|
|
|
o Can we have 32 double registers?
|
|
|
|
o 64bit kernel/userland
|
|
|
|
o repair DeskStation and Algor support
|
|
|
|
- 64bit device physical address space for Tyne (see OpenBSD pmap.c)
|
|
|
|
- requires bus_dma
|
|
|
|
o source code structure is quite obsolete,
|
|
general clean up is needed as nisimura-san suggested.
|
|
especially:
|
|
|
|
- introduce struct platform and remove ugly ``switch (cputype)''
|
|
in many places.
|
|
|
|
- redesign interrupt handler framework to be flexible for
|
|
possible variations; must be sane and useful for R4030/R4230
|
|
'local' devices and any combinations with ISA/EISA/PCI
|
|
|
|
- implement and use bus_dma, keeping in mind TLB assisted VDMA
|
|
that R4030/R4230 chip provides
|
|
|
|
- clean up bus_space implementation, remove inb/outb
|
|
|
|
- try to interporate HZ; may be possible for R4030/R4230 system
|
|
or 'hardclock() by R4000' system. Clock resolution of 100Hz
|
|
without any interporation is substandard
|
|
|
|
o overblocking on interrupt handler, and related problems
|
|
|
|
- SR_INT_IE should be enabled before calling hardclock().
|
|
Since this is not done currently, spllowersoftclock()
|
|
on hardclock() doesn't have effect, and softclock() is
|
|
handled with all interrupt disabled in this case.
|
|
-> overblocking, possibly causes missing hardclock()
|
|
|
|
- MIPS3_CLKF_BASEPRI() doesn't work correctly,
|
|
when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
|
|
-> micro optimization on hardclock() doesn't work.
|
|
but currently this may make hardclock() latency better
|
|
due to above SR_INT_IE problem.
|
|
s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
|
|
|
|
- if (ipending & INT_MASK_REAL_DEV) == 0,
|
|
softnet() and softclock() are handled with all interrupt disabled.
|
|
-> overblocking, possibly causes missing hardclock()
|
|
|
|
- softclock() is handled with softnet() disabled.
|
|
-> slightly overblocking
|
|
|
|
- `netisr' handling in netintr() implies potential race condition.
|
|
`netisr' access should be protected by splnet().
|
|
currently this is not real problem due to above overblocking.
|
|
|
|
`ssir' handling on many mips ports has same problem.
|
|
It should be protected by splnet() or splserial() or splhigh()
|
|
(depends on the highest interrupt level which sets `ssir').
|
|
Since `ssir' is accessed not only by setsoftnet() but also
|
|
by setsoft(), setsoftnet() should protect `ssir' by splserial()
|
|
or something. (i.e. priority level which setsoft() will be called)
|
|
Probably, it is better to split `ssir' variable for each
|
|
priority level.
|
|
also, _clearsoftintr() should be called before `ssir' access.
|
|
currently this is not real problem due to above overblocking.
|
|
|
|
- INT_MASK_REAL_DEV should be removed
|
|
|
|
o it is better to always disable MIPS_INT_MASK_CLOCK.
|
|
those are the points which should be fixed:
|
|
mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
|
|
machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
|
|
spl0()
|
|
splnone()
|
|
|
|
- MIPS_INT_MASK_CLOCK should be removed in someway
|
|
|
|
o fix kernel start address
|
|
|
|
o merge new wscons
|
|
|
|
o parse ARC BIOS configuration information and use it
|
|
|
|
o omit __BROKEN_CONFIG_UNIT_USAGE
|
|
|
|
o omit __SWAP_BROKEN in <mips/types.h>
|
|
|
|
o fix implementation of DELAY(), clean up clock implementation
|
|
|
|
o asc.c scsi clock/NCR53CF94 handling clean up
|
|
|
|
o if_sn.c ether address handling clean up
|
|
|
|
o com_lbus.c clock handling clean up
|
|
|
|
o implement NCR 53c700(?) driver for NEC RISCserver 2200
|
|
based on amiga siop driver?
|
|
|
|
o audio driver
|
|
|
|
o use MI driver
|
|
|
|
- use MI ncr53c9x driver instead of home grown asc
|
|
|
|
- use MI bha driver instead of home grown btl
|
|
|
|
- make sonic driver MI, and share it with mac68k, newsmips/apbus
|
|
|
|
- make fd driver MI, and share it with i386
|
|
(contact christos about MI fd driver)
|
|
|
|
- make pccons MI, and share it with i386,
|
|
or simply eliminate pccons
|
|
|
|
- LKM
|
|
|
|
o ARC boot device name -> NetBSD root device conversion
|
|
|
|
o and missing MI devices
|
|
ses?, lkm, vcoda, ...
|
|
|
|
o way to specify serial console
|
|
|
|
o resolve "XXX"
|
|
|
|
Lots of other things.....
|