TODO revision 1.14
11.14Ssoda$NetBSD: TODO,v 1.14 2000/08/08 21:17:15 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.14Ssoda
131.14Ssoda	currently, page zero in the idle loop is also disabled on
141.14Ssoda	untested platforms like ESCstation rPC44/Tyne, SNI, Algorithmics
151.14Ssoda	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.11Ssoda	-   framebuffer?
351.5Ssoda
361.11Ssoda	-   interrupt handling?
371.11Ssoda
381.11Ssoda    o	repair DeskStation support
391.11Ssoda
401.11Ssoda	-   requires bounce buffer bus_dma for Tyne
411.11Ssoda
421.11Ssoda	-   set up rPC44 wired TLB entries explicitly
431.11Ssoda
441.11Ssoda   o	repair Algor support
451.11Ssoda
461.11Ssoda	-   pci/pbcpcibus.c:vtophysaddr(): pbc_version < V96X_VREV_C0 case
471.11Ssoda
481.11Ssoda   o	sysinst
491.11Ssoda
501.11Ssoda   o	install notes
511.11Ssoda
521.11Ssoda   o	www: diskless HOW-TO port-arc specific part.
531.11Ssoda
541.11Ssoda   o	Xserver
551.11Ssoda
561.11Ssoda	-   VXL		magnum, some RISCserver 2200
571.11Ssoda	-   vga/S3	pica, Image RISCstation - OpenBSD's?
581.11Ssoda	-   vga/cirrus	some RISCserver 2200
591.11Ssoda	-   vga/???	DESKstation Tyne, rPC44
601.11Ssoda	-   TGA		RISCserver 2250
611.11Ssoda
621.11Ssoda   o	X clients
631.11Ssoda	probably pmax binary is good enough.
641.5Ssoda
651.4Ssoda    o	source code structure is quite obsolete,
661.4Ssoda	general clean up is needed as nisimura-san suggested.
671.4Ssoda	especially:
681.4Ssoda
691.4Ssoda 	-   introduce struct platform and remove ugly ``switch (cputype)''
701.4Ssoda	    in many places.
711.4Ssoda
721.7Snisimura	-   redesign interrupt handler framework to be flexible for
731.7Snisimura	    possible variations; must be sane and useful for R4030/R4230
741.7Snisimura	    'local' devices and any combinations with ISA/EISA/PCI
751.7Snisimura
761.11Ssoda	-   remove inb/outb
771.8Snisimura
781.8Snisimura	-   try to interporate HZ; may be possible for R4030/R4230 system
791.8Snisimura	    or 'hardclock() by R4000' system.  Clock resolution of 100Hz
801.8Snisimura	    without any interporation is substandard
811.9Ssoda
821.13Ssoda	-   remove UADDR
831.13Ssoda
841.9Ssoda    o	overblocking on interrupt handler, and related problems
851.9Ssoda
861.9Ssoda	-   SR_INT_IE should be enabled before calling hardclock().
871.9Ssoda	    Since this is not done currently, spllowersoftclock()
881.9Ssoda	    on hardclock() doesn't have effect, and softclock() is
891.9Ssoda	    handled with all interrupt disabled in this case.
901.9Ssoda		-> overblocking, possibly causes missing hardclock()
911.9Ssoda
921.9Ssoda	-   MIPS3_CLKF_BASEPRI() doesn't work correctly,
931.9Ssoda	    when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
941.9Ssoda		-> micro optimization on hardclock() doesn't work.
951.9Ssoda		   but currently this may make hardclock() latency better
961.9Ssoda		   due to above SR_INT_IE problem.
971.9Ssoda	    s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
981.9Ssoda
991.9Ssoda	-   if (ipending & INT_MASK_REAL_DEV) == 0,
1001.9Ssoda	    softnet() and softclock() are handled with all interrupt disabled.
1011.9Ssoda		-> overblocking, possibly causes missing hardclock()
1021.9Ssoda
1031.9Ssoda	-   softclock() is handled with softnet() disabled.
1041.9Ssoda		-> slightly overblocking
1051.9Ssoda
1061.9Ssoda	-   `netisr' handling in netintr() implies potential race condition.
1071.9Ssoda	    `netisr' access should be protected by splnet().
1081.9Ssoda	    currently this is not real problem due to above overblocking.
1091.9Ssoda
1101.9Ssoda	    `ssir' handling on many mips ports has same problem.
1111.9Ssoda	    It should be protected by splnet() or splserial() or splhigh()
1121.9Ssoda	    (depends on the highest interrupt level which sets `ssir').
1131.9Ssoda	    Since `ssir' is accessed not only by setsoftnet() but also
1141.9Ssoda	    by setsoft(), setsoftnet() should protect `ssir' by splserial()
1151.9Ssoda	    or something. (i.e. priority level which setsoft() will be called)
1161.9Ssoda	    Probably, it is better to split `ssir' variable for each
1171.9Ssoda	    priority level.
1181.9Ssoda	    also, _clearsoftintr() should be called before `ssir' access.
1191.9Ssoda	    currently this is not real problem due to above overblocking.
1201.9Ssoda
1211.10Ssoda	-   INT_MASK_REAL_DEV should be removed
1221.10Ssoda
1231.11Ssoda	-   make CLKF_INTR() work.
1241.11Ssoda
1251.11Ssoda	-   major rework, possibly by software emulated spl.
1261.11Ssoda		splserial()/splsoftserial()
1271.11Ssoda
1281.9Ssoda    o	it is better to always disable MIPS_INT_MASK_CLOCK.
1291.9Ssoda	those are the points which should be fixed:
1301.9Ssoda	mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
1311.9Ssoda	machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
1321.9Ssoda	spl0()
1331.9Ssoda	splnone()
1341.10Ssoda
1351.10Ssoda	-   MIPS_INT_MASK_CLOCK should be removed in someway
1361.1Sjonathan
1371.4Ssoda    o	fix kernel start address
1381.1Sjonathan
1391.11Ssoda    o	allocate PICA_TL_BASE and SONICBUF dynamically
1401.11Ssoda
1411.4Ssoda    o	merge new wscons
1421.1Sjonathan
1431.11Ssoda    o	fix mem_clusters[] usage.
1441.11Ssoda
1451.11Ssoda    o	test and merge soren's clean up about proc0.p_addr.
1461.11Ssoda
1471.4Ssoda    o	parse ARC BIOS configuration information and use it
1481.4Ssoda
1491.5Ssoda    o	omit __BROKEN_CONFIG_UNIT_USAGE
1501.5Ssoda
1511.5Ssoda    o	omit __SWAP_BROKEN in <mips/types.h>
1521.5Ssoda
1531.4Ssoda    o	fix implementation of DELAY(), clean up clock implementation
1541.4Ssoda
1551.11Ssoda    o	increase MAXPHYS to 64KB
1561.11Ssoda
1571.5Ssoda    o	asc.c scsi clock/NCR53CF94 handling clean up
1581.5Ssoda
1591.11Ssoda    o	if_sn.c
1601.11Ssoda
1611.11Ssoda	-   ether address handling clean up
1621.11Ssoda
1631.11Ssoda	-   bus_dma'fy
1641.11Ssoda	-   bus_space'fy
1651.11Ssoda	-   split frontend and backend
1661.11Ssoda	-   make this MI, and share with mac68k, newsmips/apbus
1671.4Ssoda
1681.5Ssoda    o	com_lbus.c clock handling clean up
1691.5Ssoda
1701.11Ssoda    o	intrcnt[] name cleanup
1711.11Ssoda
1721.13Ssoda    o	implement NCR 53c700(?) driver for NEC RISCserver 2200,
1731.13Ssoda	RISCstation 2200 and RISCstation 2250.
1741.13Ssoda	based on MI siop driver?
1751.5Ssoda
1761.6Ssoda    o	audio driver
1771.6Ssoda
1781.4Ssoda    o	use MI driver
1791.4Ssoda
1801.4Ssoda	-   use MI ncr53c9x driver instead of home grown asc
1811.4Ssoda
1821.4Ssoda	-   use MI bha driver instead of home grown btl
1831.4Ssoda
1841.4Ssoda	-   make fd driver MI, and share it with i386
1851.4Ssoda	    (contact christos about MI fd driver)
1861.1Sjonathan
1871.4Ssoda	-   make pccons MI, and share it with i386,
1881.4Ssoda	    or simply eliminate pccons
1891.5Ssoda
1901.6Ssoda	-   LKM
1911.5Ssoda
1921.6Ssoda    o	ARC boot device name -> NetBSD root device conversion
1931.5Ssoda
1941.6Ssoda    o	and missing MI devices
1951.6Ssoda		ses?, lkm, vcoda, ...
1961.5Ssoda
1971.11Ssoda    o	bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation
1981.11Ssoda
1991.11Ssoda    o	clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
2001.11Ssoda
2011.11Ssoda    o	resolve "XXX"
2021.1Sjonathan
2031.1SjonathanLots of other things.....
204