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