TODO revision 1.15
11.15Ssoda$NetBSD: TODO,v 1.15 2001/06/13 15:41:53 soda Exp $
21.2Sthorpej
31.1SjonathanTo do list (not in any particular order).
41.12Ssoda
51.12Ssoda    o	XXX at least 2000/06/07 version is already quite unstable
61.12Ssoda	on PICA and NEC Image RISCstation. (but almost OK on Magnum)
71.12Ssoda	Userland commands dumps	core randomly.
81.12Ssoda	This version is before _MIPS_PADDR_T_64BIT changes
91.12Ssoda	and MIPS3_TLB_WIRED_UPAGES changes.	
101.14Ssoda
111.14Ssoda	"vm_page_zero_enable = FALSE" makes this problem disappeared.
121.15Ssoda	(vm_page_zero_enable = FALSE by default on all archs w/ UBC, now)
131.14Ssoda
141.14Ssoda	currently, page zero in the idle loop is also disabled on
151.15Ssoda	untested platforms like DESKstation rPC44/Tyne and SNI for safety.
161.1Sjonathan
171.9Ssoda    o	XXX sudden hang up in a few minutes or dozens of minutes.
181.9Ssoda	2000 Mar 17 -current is OK. Mar 29 is NG.
191.9Ssoda
201.1Sjonathan    o	Move the RO and WIRED attribute from the pte to the pv table.
211.1Sjonathan	This saves four instructions in the tlb miss handler.
221.1Sjonathan
231.11Ssoda    o   Boot. Standalone boot program instead of booting the kernel directly.
241.1Sjonathan
251.5Ssoda    o   Find out why bitmap load to S3-928 flashes screen. (X server)
261.4Ssoda	Know why (enable linear mode). Need S3 info.
271.4Ssoda
281.4Ssoda    o   Can we have 32 double registers?
291.4Ssoda
301.4Ssoda    o	64bit kernel/userland
311.4Ssoda
321.11Ssoda    o	NEC RISCstation 2200 support
331.5Ssoda
341.15Ssoda	-   VXL framebuffer
351.15Ssoda	-   VGA framebuffer or character generator
361.15Ssoda	-   oosiop
371.5Ssoda
381.15Ssoda    o	repair DESKstation support
391.11Ssoda
401.11Ssoda	-   requires bounce buffer bus_dma for Tyne
411.15Ssoda		XXX - too small bounce buffer size
421.11Ssoda
431.15Ssoda    o	Olivetti M700 support
441.11Ssoda
451.15Ssoda    o	NEC Express 5800/230 R10000 version support
461.11Ssoda
471.15Ssoda    o	SNI RM200PCI support
481.11Ssoda
491.15Ssoda    o	sysinst
501.11Ssoda
511.15Ssoda    o	install notes
521.11Ssoda
531.15Ssoda    o	www: diskless HOW-TO port-arc specific part.
541.11Ssoda
551.15Ssoda    o	Xserver
561.11Ssoda
571.11Ssoda	-   VXL		magnum, some RISCserver 2200
581.11Ssoda	-   vga/S3	pica, Image RISCstation - OpenBSD's?
591.11Ssoda	-   vga/cirrus	some RISCserver 2200
601.11Ssoda	-   vga/???	DESKstation Tyne, rPC44
611.11Ssoda	-   TGA		RISCserver 2250
621.11Ssoda
631.15Ssoda    o	X clients
641.11Ssoda	probably pmax binary is good enough.
651.5Ssoda
661.15Ssoda    o	remove inb/outb
671.8Snisimura
681.15Ssoda    o	remove UADDR
691.9Ssoda
701.15Ssoda    o	redesign interrupt handler framework.
711.15Ssoda	i/o bus devices should have sane IPL, but currently doesn't.
721.13Ssoda
731.15Ssoda	also, current MIPS interrupt handler has overblocking and
741.15Ssoda	other problems as follows:
751.9Ssoda
761.9Ssoda	-   SR_INT_IE should be enabled before calling hardclock().
771.9Ssoda	    Since this is not done currently, spllowersoftclock()
781.9Ssoda	    on hardclock() doesn't have effect, and softclock() is
791.9Ssoda	    handled with all interrupt disabled in this case.
801.9Ssoda		-> overblocking, possibly causes missing hardclock()
811.9Ssoda
821.9Ssoda	-   MIPS3_CLKF_BASEPRI() doesn't work correctly,
831.9Ssoda	    when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
841.9Ssoda		-> micro optimization on hardclock() doesn't work.
851.9Ssoda		   but currently this may make hardclock() latency better
861.9Ssoda		   due to above SR_INT_IE problem.
871.9Ssoda	    s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
881.9Ssoda
891.9Ssoda	-   if (ipending & INT_MASK_REAL_DEV) == 0,
901.9Ssoda	    softnet() and softclock() are handled with all interrupt disabled.
911.9Ssoda		-> overblocking, possibly causes missing hardclock()
921.9Ssoda
931.9Ssoda	-   softclock() is handled with softnet() disabled.
941.9Ssoda		-> slightly overblocking
951.9Ssoda
961.9Ssoda	-   `netisr' handling in netintr() implies potential race condition.
971.15Ssoda	    The access to `netisr' should be protected by splnet().
981.15Ssoda	    Currently this is not real problem due to above overblocking.
991.9Ssoda
1001.9Ssoda	    `ssir' handling on many mips ports has same problem.
1011.9Ssoda	    It should be protected by splnet() or splserial() or splhigh()
1021.9Ssoda	    (depends on the highest interrupt level which sets `ssir').
1031.9Ssoda	    Since `ssir' is accessed not only by setsoftnet() but also
1041.9Ssoda	    by setsoft(), setsoftnet() should protect `ssir' by splserial()
1051.9Ssoda	    or something. (i.e. priority level which setsoft() will be called)
1061.9Ssoda	    Probably, it is better to split `ssir' variable for each
1071.9Ssoda	    priority level.
1081.15Ssoda	    Also, _clearsoftintr() should be called before `ssir' access.
1091.9Ssoda	    currently this is not real problem due to above overblocking.
1101.9Ssoda
1111.10Ssoda	-   INT_MASK_REAL_DEV should be removed
1121.10Ssoda
1131.11Ssoda	-   make CLKF_INTR() work.
1141.11Ssoda
1151.15Ssoda	-   generic software interrupt
1161.15Ssoda
1171.11Ssoda	-   major rework, possibly by software emulated spl.
1181.11Ssoda		splserial()/splsoftserial()
1191.11Ssoda
1201.9Ssoda    o	it is better to always disable MIPS_INT_MASK_CLOCK.
1211.9Ssoda	those are the points which should be fixed:
1221.9Ssoda	mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
1231.9Ssoda	machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
1241.9Ssoda	spl0()
1251.9Ssoda	splnone()
1261.10Ssoda
1271.10Ssoda	-   MIPS_INT_MASK_CLOCK should be removed in someway
1281.1Sjonathan
1291.4Ssoda    o	fix kernel start address
1301.1Sjonathan
1311.11Ssoda    o	allocate PICA_TL_BASE and SONICBUF dynamically
1321.11Ssoda
1331.11Ssoda    o	fix mem_clusters[] usage.
1341.11Ssoda
1351.11Ssoda    o	test and merge soren's clean up about proc0.p_addr.
1361.11Ssoda
1371.4Ssoda    o	parse ARC BIOS configuration information and use it
1381.4Ssoda
1391.5Ssoda    o	omit __SWAP_BROKEN in <mips/types.h>
1401.5Ssoda
1411.4Ssoda    o	fix implementation of DELAY(), clean up clock implementation
1421.4Ssoda
1431.11Ssoda    o	increase MAXPHYS to 64KB
1441.11Ssoda
1451.15Ssoda    o	wscons / VXL framebuffer
1461.15Ssoda
1471.15Ssoda    o	wscons / VGA framebuffer (merge bjy's driver)
1481.15Ssoda
1491.15Ssoda    o	wscons / VGA character generator (fix initialization on RISCserver)
1501.15Ssoda
1511.5Ssoda    o	asc.c scsi clock/NCR53CF94 handling clean up
1521.5Ssoda
1531.11Ssoda    o	if_sn.c
1541.11Ssoda
1551.11Ssoda	-   bus_dma'fy
1561.11Ssoda	-   bus_space'fy
1571.11Ssoda	-   split frontend and backend
1581.11Ssoda	-   make this MI, and share with mac68k, newsmips/apbus
1591.4Ssoda
1601.15Ssoda    o	com_jazzio.c
1611.15Ssoda
1621.15Ssoda	-   clock handling clean up (obtain from ARC firmware)
1631.15Ssoda	-   fifo disabling may be only needed on some Magnum?
1641.5Ssoda
1651.15Ssoda    o	intrcnt[] name cleanup, use evcnt
1661.11Ssoda
1671.15Ssoda    o	oosiop (NCR 53c700 driver) by Urata-san
1681.15Ssoda	for NEC RISCserver 2200, RISCstation 2200 and RISCstation 2250.
1691.5Ssoda
1701.6Ssoda    o	audio driver
1711.6Ssoda
1721.4Ssoda    o	use MI driver
1731.4Ssoda
1741.4Ssoda	-   use MI ncr53c9x driver instead of home grown asc
1751.4Ssoda
1761.4Ssoda	-   use MI bha driver instead of home grown btl
1771.4Ssoda
1781.4Ssoda	-   make fd driver MI, and share it with i386
1791.4Ssoda	    (contact christos about MI fd driver)
1801.1Sjonathan
1811.4Ssoda	-   make pccons MI, and share it with i386,
1821.4Ssoda	    or simply eliminate pccons
1831.5Ssoda
1841.15Ssoda    o	LKM support on MIPS
1851.5Ssoda
1861.6Ssoda    o	and missing MI devices
1871.15Ssoda		ses?, vcoda, ...
1881.5Ssoda
1891.11Ssoda    o	bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation
1901.11Ssoda
1911.11Ssoda    o	clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
1921.11Ssoda
1931.11Ssoda    o	resolve "XXX"
1941.1Sjonathan
1951.1SjonathanLots of other things.....
196