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