TODO revision 1.15 1 1.15 soda $NetBSD: TODO,v 1.15 2001/06/13 15:41:53 soda Exp $
2 1.2 thorpej
3 1.1 jonathan To do list (not in any particular order).
4 1.12 soda
5 1.12 soda o XXX at least 2000/06/07 version is already quite unstable
6 1.12 soda on PICA and NEC Image RISCstation. (but almost OK on Magnum)
7 1.12 soda Userland commands dumps core randomly.
8 1.12 soda This version is before _MIPS_PADDR_T_64BIT changes
9 1.12 soda and MIPS3_TLB_WIRED_UPAGES changes.
10 1.14 soda
11 1.14 soda "vm_page_zero_enable = FALSE" makes this problem disappeared.
12 1.15 soda (vm_page_zero_enable = FALSE by default on all archs w/ UBC, now)
13 1.14 soda
14 1.14 soda currently, page zero in the idle loop is also disabled on
15 1.15 soda untested platforms like DESKstation rPC44/Tyne and SNI for safety.
16 1.1 jonathan
17 1.9 soda o XXX sudden hang up in a few minutes or dozens of minutes.
18 1.9 soda 2000 Mar 17 -current is OK. Mar 29 is NG.
19 1.9 soda
20 1.1 jonathan o Move the RO and WIRED attribute from the pte to the pv table.
21 1.1 jonathan This saves four instructions in the tlb miss handler.
22 1.1 jonathan
23 1.11 soda o Boot. Standalone boot program instead of booting the kernel directly.
24 1.1 jonathan
25 1.5 soda o Find out why bitmap load to S3-928 flashes screen. (X server)
26 1.4 soda Know why (enable linear mode). Need S3 info.
27 1.4 soda
28 1.4 soda o Can we have 32 double registers?
29 1.4 soda
30 1.4 soda o 64bit kernel/userland
31 1.4 soda
32 1.11 soda o NEC RISCstation 2200 support
33 1.5 soda
34 1.15 soda - VXL framebuffer
35 1.15 soda - VGA framebuffer or character generator
36 1.15 soda - oosiop
37 1.5 soda
38 1.15 soda o repair DESKstation support
39 1.11 soda
40 1.11 soda - requires bounce buffer bus_dma for Tyne
41 1.15 soda XXX - too small bounce buffer size
42 1.11 soda
43 1.15 soda o Olivetti M700 support
44 1.11 soda
45 1.15 soda o NEC Express 5800/230 R10000 version support
46 1.11 soda
47 1.15 soda o SNI RM200PCI support
48 1.11 soda
49 1.15 soda o sysinst
50 1.11 soda
51 1.15 soda o install notes
52 1.11 soda
53 1.15 soda o www: diskless HOW-TO port-arc specific part.
54 1.11 soda
55 1.15 soda o Xserver
56 1.11 soda
57 1.11 soda - VXL magnum, some RISCserver 2200
58 1.11 soda - vga/S3 pica, Image RISCstation - OpenBSD's?
59 1.11 soda - vga/cirrus some RISCserver 2200
60 1.11 soda - vga/??? DESKstation Tyne, rPC44
61 1.11 soda - TGA RISCserver 2250
62 1.11 soda
63 1.15 soda o X clients
64 1.11 soda probably pmax binary is good enough.
65 1.5 soda
66 1.15 soda o remove inb/outb
67 1.8 nisimura
68 1.15 soda o remove UADDR
69 1.9 soda
70 1.15 soda o redesign interrupt handler framework.
71 1.15 soda i/o bus devices should have sane IPL, but currently doesn't.
72 1.13 soda
73 1.15 soda also, current MIPS interrupt handler has overblocking and
74 1.15 soda other problems as follows:
75 1.9 soda
76 1.9 soda - SR_INT_IE should be enabled before calling hardclock().
77 1.9 soda Since this is not done currently, spllowersoftclock()
78 1.9 soda on hardclock() doesn't have effect, and softclock() is
79 1.9 soda handled with all interrupt disabled in this case.
80 1.9 soda -> overblocking, possibly causes missing hardclock()
81 1.9 soda
82 1.9 soda - MIPS3_CLKF_BASEPRI() doesn't work correctly,
83 1.9 soda when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
84 1.9 soda -> micro optimization on hardclock() doesn't work.
85 1.9 soda but currently this may make hardclock() latency better
86 1.9 soda due to above SR_INT_IE problem.
87 1.9 soda s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
88 1.9 soda
89 1.9 soda - if (ipending & INT_MASK_REAL_DEV) == 0,
90 1.9 soda softnet() and softclock() are handled with all interrupt disabled.
91 1.9 soda -> overblocking, possibly causes missing hardclock()
92 1.9 soda
93 1.9 soda - softclock() is handled with softnet() disabled.
94 1.9 soda -> slightly overblocking
95 1.9 soda
96 1.9 soda - `netisr' handling in netintr() implies potential race condition.
97 1.15 soda The access to `netisr' should be protected by splnet().
98 1.15 soda Currently this is not real problem due to above overblocking.
99 1.9 soda
100 1.9 soda `ssir' handling on many mips ports has same problem.
101 1.9 soda It should be protected by splnet() or splserial() or splhigh()
102 1.9 soda (depends on the highest interrupt level which sets `ssir').
103 1.9 soda Since `ssir' is accessed not only by setsoftnet() but also
104 1.9 soda by setsoft(), setsoftnet() should protect `ssir' by splserial()
105 1.9 soda or something. (i.e. priority level which setsoft() will be called)
106 1.9 soda Probably, it is better to split `ssir' variable for each
107 1.9 soda priority level.
108 1.15 soda Also, _clearsoftintr() should be called before `ssir' access.
109 1.9 soda currently this is not real problem due to above overblocking.
110 1.9 soda
111 1.10 soda - INT_MASK_REAL_DEV should be removed
112 1.10 soda
113 1.11 soda - make CLKF_INTR() work.
114 1.11 soda
115 1.15 soda - generic software interrupt
116 1.15 soda
117 1.11 soda - major rework, possibly by software emulated spl.
118 1.11 soda splserial()/splsoftserial()
119 1.11 soda
120 1.9 soda o it is better to always disable MIPS_INT_MASK_CLOCK.
121 1.9 soda those are the points which should be fixed:
122 1.9 soda mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
123 1.9 soda machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
124 1.9 soda spl0()
125 1.9 soda splnone()
126 1.10 soda
127 1.10 soda - MIPS_INT_MASK_CLOCK should be removed in someway
128 1.1 jonathan
129 1.4 soda o fix kernel start address
130 1.1 jonathan
131 1.11 soda o allocate PICA_TL_BASE and SONICBUF dynamically
132 1.11 soda
133 1.11 soda o fix mem_clusters[] usage.
134 1.11 soda
135 1.11 soda o test and merge soren's clean up about proc0.p_addr.
136 1.11 soda
137 1.4 soda o parse ARC BIOS configuration information and use it
138 1.4 soda
139 1.5 soda o omit __SWAP_BROKEN in <mips/types.h>
140 1.5 soda
141 1.4 soda o fix implementation of DELAY(), clean up clock implementation
142 1.4 soda
143 1.11 soda o increase MAXPHYS to 64KB
144 1.11 soda
145 1.15 soda o wscons / VXL framebuffer
146 1.15 soda
147 1.15 soda o wscons / VGA framebuffer (merge bjy's driver)
148 1.15 soda
149 1.15 soda o wscons / VGA character generator (fix initialization on RISCserver)
150 1.15 soda
151 1.5 soda o asc.c scsi clock/NCR53CF94 handling clean up
152 1.5 soda
153 1.11 soda o if_sn.c
154 1.11 soda
155 1.11 soda - bus_dma'fy
156 1.11 soda - bus_space'fy
157 1.11 soda - split frontend and backend
158 1.11 soda - make this MI, and share with mac68k, newsmips/apbus
159 1.4 soda
160 1.15 soda o com_jazzio.c
161 1.15 soda
162 1.15 soda - clock handling clean up (obtain from ARC firmware)
163 1.15 soda - fifo disabling may be only needed on some Magnum?
164 1.5 soda
165 1.15 soda o intrcnt[] name cleanup, use evcnt
166 1.11 soda
167 1.15 soda o oosiop (NCR 53c700 driver) by Urata-san
168 1.15 soda for NEC RISCserver 2200, RISCstation 2200 and RISCstation 2250.
169 1.5 soda
170 1.6 soda o audio driver
171 1.6 soda
172 1.4 soda o use MI driver
173 1.4 soda
174 1.4 soda - use MI ncr53c9x driver instead of home grown asc
175 1.4 soda
176 1.4 soda - use MI bha driver instead of home grown btl
177 1.4 soda
178 1.4 soda - make fd driver MI, and share it with i386
179 1.4 soda (contact christos about MI fd driver)
180 1.1 jonathan
181 1.4 soda - make pccons MI, and share it with i386,
182 1.4 soda or simply eliminate pccons
183 1.5 soda
184 1.15 soda o LKM support on MIPS
185 1.5 soda
186 1.6 soda o and missing MI devices
187 1.15 soda ses?, vcoda, ...
188 1.5 soda
189 1.11 soda o bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation
190 1.11 soda
191 1.11 soda o clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
192 1.11 soda
193 1.11 soda o resolve "XXX"
194 1.1 jonathan
195 1.1 jonathan Lots of other things.....
196