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