TODO revision 1.10 1 1.10 soda $NetBSD: TODO,v 1.10 2000/05/09 07:30:14 soda Exp $
2 1.2 thorpej
3 1.1 jonathan To do list (not in any particular order).
4 1.1 jonathan
5 1.9 soda o XXX sudden hang up in a few minutes or dozens of minutes.
6 1.9 soda 2000 Mar 17 -current is OK. Mar 29 is NG.
7 1.9 soda
8 1.1 jonathan o Move the RO and WIRED attribute from the pte to the pv table.
9 1.1 jonathan This saves four instructions in the tlb miss handler.
10 1.1 jonathan
11 1.1 jonathan o Boot. Standalone boot program instead of booting the kernel directly?
12 1.1 jonathan
13 1.5 soda o Find out why bitmap load to S3-928 flashes screen. (X server)
14 1.4 soda Know why (enable linear mode). Need S3 info.
15 1.4 soda
16 1.4 soda o Can we have 32 double registers?
17 1.4 soda
18 1.4 soda o 64bit kernel/userland
19 1.4 soda
20 1.5 soda o repair DeskStation and Algor support
21 1.5 soda
22 1.5 soda - 64bit device physical address space for Tyne (see OpenBSD pmap.c)
23 1.5 soda
24 1.5 soda - requires bus_dma
25 1.5 soda
26 1.4 soda o source code structure is quite obsolete,
27 1.4 soda general clean up is needed as nisimura-san suggested.
28 1.4 soda especially:
29 1.4 soda
30 1.4 soda - introduce struct platform and remove ugly ``switch (cputype)''
31 1.4 soda in many places.
32 1.4 soda
33 1.7 nisimura - redesign interrupt handler framework to be flexible for
34 1.7 nisimura possible variations; must be sane and useful for R4030/R4230
35 1.7 nisimura 'local' devices and any combinations with ISA/EISA/PCI
36 1.7 nisimura
37 1.7 nisimura - implement and use bus_dma, keeping in mind TLB assisted VDMA
38 1.7 nisimura that R4030/R4230 chip provides
39 1.1 jonathan
40 1.4 soda - clean up bus_space implementation, remove inb/outb
41 1.8 nisimura
42 1.8 nisimura - try to interporate HZ; may be possible for R4030/R4230 system
43 1.8 nisimura or 'hardclock() by R4000' system. Clock resolution of 100Hz
44 1.8 nisimura without any interporation is substandard
45 1.9 soda
46 1.9 soda o overblocking on interrupt handler, and related problems
47 1.9 soda
48 1.9 soda - SR_INT_IE should be enabled before calling hardclock().
49 1.9 soda Since this is not done currently, spllowersoftclock()
50 1.9 soda on hardclock() doesn't have effect, and softclock() is
51 1.9 soda handled with all interrupt disabled in this case.
52 1.9 soda -> overblocking, possibly causes missing hardclock()
53 1.9 soda
54 1.9 soda - MIPS3_CLKF_BASEPRI() doesn't work correctly,
55 1.9 soda when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
56 1.9 soda -> micro optimization on hardclock() doesn't work.
57 1.9 soda but currently this may make hardclock() latency better
58 1.9 soda due to above SR_INT_IE problem.
59 1.9 soda s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
60 1.9 soda
61 1.9 soda - if (ipending & INT_MASK_REAL_DEV) == 0,
62 1.9 soda softnet() and softclock() are handled with all interrupt disabled.
63 1.9 soda -> overblocking, possibly causes missing hardclock()
64 1.9 soda
65 1.9 soda - softclock() is handled with softnet() disabled.
66 1.9 soda -> slightly overblocking
67 1.9 soda
68 1.9 soda - `netisr' handling in netintr() implies potential race condition.
69 1.9 soda `netisr' access should be protected by splnet().
70 1.9 soda currently this is not real problem due to above overblocking.
71 1.9 soda
72 1.9 soda `ssir' handling on many mips ports has same problem.
73 1.9 soda It should be protected by splnet() or splserial() or splhigh()
74 1.9 soda (depends on the highest interrupt level which sets `ssir').
75 1.9 soda Since `ssir' is accessed not only by setsoftnet() but also
76 1.9 soda by setsoft(), setsoftnet() should protect `ssir' by splserial()
77 1.9 soda or something. (i.e. priority level which setsoft() will be called)
78 1.9 soda Probably, it is better to split `ssir' variable for each
79 1.9 soda priority level.
80 1.9 soda also, _clearsoftintr() should be called before `ssir' access.
81 1.9 soda currently this is not real problem due to above overblocking.
82 1.9 soda
83 1.10 soda - INT_MASK_REAL_DEV should be removed
84 1.10 soda
85 1.9 soda o it is better to always disable MIPS_INT_MASK_CLOCK.
86 1.9 soda those are the points which should be fixed:
87 1.9 soda mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
88 1.9 soda machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
89 1.9 soda spl0()
90 1.9 soda splnone()
91 1.10 soda
92 1.10 soda - MIPS_INT_MASK_CLOCK should be removed in someway
93 1.1 jonathan
94 1.4 soda o fix kernel start address
95 1.1 jonathan
96 1.4 soda o merge new wscons
97 1.1 jonathan
98 1.4 soda o parse ARC BIOS configuration information and use it
99 1.4 soda
100 1.5 soda o omit __BROKEN_CONFIG_UNIT_USAGE
101 1.5 soda
102 1.5 soda o omit __SWAP_BROKEN in <mips/types.h>
103 1.5 soda
104 1.4 soda o fix implementation of DELAY(), clean up clock implementation
105 1.4 soda
106 1.5 soda o asc.c scsi clock/NCR53CF94 handling clean up
107 1.5 soda
108 1.4 soda o if_sn.c ether address handling clean up
109 1.4 soda
110 1.5 soda o com_lbus.c clock handling clean up
111 1.5 soda
112 1.5 soda o implement NCR 53c700(?) driver for NEC RISCserver 2200
113 1.5 soda based on amiga siop driver?
114 1.5 soda
115 1.6 soda o audio driver
116 1.6 soda
117 1.4 soda o use MI driver
118 1.4 soda
119 1.4 soda - use MI ncr53c9x driver instead of home grown asc
120 1.4 soda
121 1.4 soda - use MI bha driver instead of home grown btl
122 1.4 soda
123 1.4 soda - make sonic driver MI, and share it with mac68k, newsmips/apbus
124 1.4 soda
125 1.4 soda - make fd driver MI, and share it with i386
126 1.4 soda (contact christos about MI fd driver)
127 1.1 jonathan
128 1.4 soda - make pccons MI, and share it with i386,
129 1.4 soda or simply eliminate pccons
130 1.5 soda
131 1.6 soda - LKM
132 1.5 soda
133 1.6 soda o ARC boot device name -> NetBSD root device conversion
134 1.5 soda
135 1.6 soda o and missing MI devices
136 1.6 soda ses?, lkm, vcoda, ...
137 1.5 soda
138 1.6 soda o way to specify serial console
139 1.5 soda
140 1.5 soda o resolve "XXX"
141 1.1 jonathan
142 1.1 jonathan Lots of other things.....
143