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