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