TODO revision 1.12 1 $NetBSD: TODO,v 1.12 2000/06/17 06:56:20 soda Exp $
2
3 To do list (not in any particular order).
4
5 o XXX at least 2000/06/07 version is already quite unstable
6 on PICA and NEC Image RISCstation. (but almost OK on Magnum)
7 Userland commands dumps core randomly.
8 This version is before _MIPS_PADDR_T_64BIT changes
9 and MIPS3_TLB_WIRED_UPAGES changes.
10
11 o XXX sudden hang up in a few minutes or dozens of minutes.
12 2000 Mar 17 -current is OK. Mar 29 is NG.
13
14 o Move the RO and WIRED attribute from the pte to the pv table.
15 This saves four instructions in the tlb miss handler.
16
17 o Boot. Standalone boot program instead of booting the kernel directly.
18
19 o Find out why bitmap load to S3-928 flashes screen. (X server)
20 Know why (enable linear mode). Need S3 info.
21
22 o Can we have 32 double registers?
23
24 o 64bit kernel/userland
25
26 o NEC RISCstation 2200 support
27
28 - framebuffer?
29
30 - interrupt handling?
31
32 o NEC RISCstation 2250 support
33
34 - provide static storage for bus_space extent for kernel early stage
35
36 - make PCI framebuffer as console.
37 wired map framebuffer memory for kernel early stage.
38
39 o repair DeskStation support
40
41 - requires bounce buffer bus_dma for Tyne
42
43 - set up rPC44 wired TLB entries explicitly
44
45 o repair Algor support
46
47 - pci/pbcpcibus.c:vtophysaddr(): pbc_version < V96X_VREV_C0 case
48
49 o sysinst
50
51 o install notes
52 do not forget about legal notice for pefo and openbsd.
53
54 o www: diskless HOW-TO port-arc specific part.
55
56 o Xserver
57
58 - VXL magnum, some RISCserver 2200
59 - vga/S3 pica, Image RISCstation - OpenBSD's?
60 - vga/cirrus some RISCserver 2200
61 - vga/??? DESKstation Tyne, rPC44
62 - TGA RISCserver 2250
63
64 o X clients
65 probably pmax binary is good enough.
66
67 o source code structure is quite obsolete,
68 general clean up is needed as nisimura-san suggested.
69 especially:
70
71 - introduce struct platform and remove ugly ``switch (cputype)''
72 in many places.
73
74 - redesign interrupt handler framework to be flexible for
75 possible variations; must be sane and useful for R4030/R4230
76 'local' devices and any combinations with ISA/EISA/PCI
77
78 - remove inb/outb
79
80 - try to interporate HZ; may be possible for R4030/R4230 system
81 or 'hardclock() by R4000' system. Clock resolution of 100Hz
82 without any interporation is substandard
83
84 o overblocking on interrupt handler, and related problems
85
86 - SR_INT_IE should be enabled before calling hardclock().
87 Since this is not done currently, spllowersoftclock()
88 on hardclock() doesn't have effect, and softclock() is
89 handled with all interrupt disabled in this case.
90 -> overblocking, possibly causes missing hardclock()
91
92 - MIPS3_CLKF_BASEPRI() doesn't work correctly,
93 when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
94 -> micro optimization on hardclock() doesn't work.
95 but currently this may make hardclock() latency better
96 due to above SR_INT_IE problem.
97 s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
98
99 - if (ipending & INT_MASK_REAL_DEV) == 0,
100 softnet() and softclock() are handled with all interrupt disabled.
101 -> overblocking, possibly causes missing hardclock()
102
103 - softclock() is handled with softnet() disabled.
104 -> slightly overblocking
105
106 - `netisr' handling in netintr() implies potential race condition.
107 `netisr' access should be protected by splnet().
108 currently this is not real problem due to above overblocking.
109
110 `ssir' handling on many mips ports has same problem.
111 It should be protected by splnet() or splserial() or splhigh()
112 (depends on the highest interrupt level which sets `ssir').
113 Since `ssir' is accessed not only by setsoftnet() but also
114 by setsoft(), setsoftnet() should protect `ssir' by splserial()
115 or something. (i.e. priority level which setsoft() will be called)
116 Probably, it is better to split `ssir' variable for each
117 priority level.
118 also, _clearsoftintr() should be called before `ssir' access.
119 currently this is not real problem due to above overblocking.
120
121 - INT_MASK_REAL_DEV should be removed
122
123 - make CLKF_INTR() work.
124
125 - major rework, possibly by software emulated spl.
126 splserial()/splsoftserial()
127
128 o it is better to always disable MIPS_INT_MASK_CLOCK.
129 those are the points which should be fixed:
130 mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
131 machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
132 spl0()
133 splnone()
134
135 - MIPS_INT_MASK_CLOCK should be removed in someway
136
137 o fix kernel start address
138
139 o allocate PICA_TL_BASE and SONICBUF dynamically
140
141 o merge new wscons
142
143 o fix mem_clusters[] usage.
144
145 o test and merge soren's clean up about proc0.p_addr.
146
147 o parse ARC BIOS configuration information and use it
148
149 o omit __BROKEN_CONFIG_UNIT_USAGE
150
151 o omit __SWAP_BROKEN in <mips/types.h>
152
153 o fix implementation of DELAY(), clean up clock implementation
154
155 o increase MAXPHYS to 64KB
156
157 o asc.c scsi clock/NCR53CF94 handling clean up
158
159 o if_sn.c
160
161 - ether address handling clean up
162
163 - bus_dma'fy
164 - bus_space'fy
165 - split frontend and backend
166 - make this MI, and share with mac68k, newsmips/apbus
167
168 o com_lbus.c clock handling clean up
169
170 o intrcnt[] name cleanup
171
172 o implement NCR 53c700(?) driver for NEC RISCserver 2200
173 based on amiga siop driver?
174
175 o audio driver
176
177 o use MI driver
178
179 - use MI ncr53c9x driver instead of home grown asc
180
181 - use MI bha driver instead of home grown btl
182
183 - make fd driver MI, and share it with i386
184 (contact christos about MI fd driver)
185
186 - make pccons MI, and share it with i386,
187 or simply eliminate pccons
188
189 - LKM
190
191 o ARC boot device name -> NetBSD root device conversion
192
193 o and missing MI devices
194 ses?, lkm, vcoda, ...
195
196 o way to specify serial console
197
198 o bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation
199
200 o clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
201
202 o resolve "XXX"
203
204 Lots of other things.....
205