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