TODO revision 1.11
11.11Ssoda$NetBSD: TODO,v 1.11 2000/06/09 05:06:25 soda Exp $
21.2Sthorpej
31.1SjonathanTo do list (not in any particular order).
41.1Sjonathan
51.9Ssoda    o	XXX sudden hang up in a few minutes or dozens of minutes.
61.9Ssoda	2000 Mar 17 -current is OK. Mar 29 is NG.
71.9Ssoda
81.1Sjonathan    o	Move the RO and WIRED attribute from the pte to the pv table.
91.1Sjonathan	This saves four instructions in the tlb miss handler.
101.1Sjonathan
111.11Ssoda    o   Boot. Standalone boot program instead of booting the kernel directly.
121.1Sjonathan
131.5Ssoda    o   Find out why bitmap load to S3-928 flashes screen. (X server)
141.4Ssoda	Know why (enable linear mode). Need S3 info.
151.4Ssoda
161.4Ssoda    o   Can we have 32 double registers?
171.4Ssoda
181.4Ssoda    o	64bit kernel/userland
191.4Ssoda
201.11Ssoda    o	NEC RISCstation 2200 support
211.5Ssoda
221.11Ssoda	-   framebuffer?
231.5Ssoda
241.11Ssoda	-   interrupt handling?
251.11Ssoda
261.11Ssoda    o	NEC RISCstation 2250 support
271.11Ssoda
281.11Ssoda	-   provide static storage for bus_space extent for kernel early stage
291.11Ssoda
301.11Ssoda	-   make PCI framebuffer as console.
311.11Ssoda	    wired map framebuffer memory for kernel early stage.
321.11Ssoda
331.11Ssoda    o	repair DeskStation support
341.11Ssoda
351.11Ssoda	-   requires bounce buffer bus_dma for Tyne
361.11Ssoda
371.11Ssoda	-   set up rPC44 wired TLB entries explicitly
381.11Ssoda
391.11Ssoda   o	repair Algor support
401.11Ssoda
411.11Ssoda	-   pci/pbcpcibus.c:vtophysaddr(): pbc_version < V96X_VREV_C0 case
421.11Ssoda
431.11Ssoda   o	sysinst
441.11Ssoda
451.11Ssoda   o	install notes
461.11Ssoda	do not forget about legal notice for pefo and openbsd.
471.11Ssoda
481.11Ssoda   o	www: diskless HOW-TO port-arc specific part.
491.11Ssoda
501.11Ssoda   o	Xserver
511.11Ssoda
521.11Ssoda	-   VXL		magnum, some RISCserver 2200
531.11Ssoda	-   vga/S3	pica, Image RISCstation - OpenBSD's?
541.11Ssoda	-   vga/cirrus	some RISCserver 2200
551.11Ssoda	-   vga/???	DESKstation Tyne, rPC44
561.11Ssoda	-   TGA		RISCserver 2250
571.11Ssoda
581.11Ssoda   o	X clients
591.11Ssoda	probably pmax binary is good enough.
601.5Ssoda
611.4Ssoda    o	source code structure is quite obsolete,
621.4Ssoda	general clean up is needed as nisimura-san suggested.
631.4Ssoda	especially:
641.4Ssoda
651.4Ssoda 	-   introduce struct platform and remove ugly ``switch (cputype)''
661.4Ssoda	    in many places.
671.4Ssoda
681.7Snisimura	-   redesign interrupt handler framework to be flexible for
691.7Snisimura	    possible variations; must be sane and useful for R4030/R4230
701.7Snisimura	    'local' devices and any combinations with ISA/EISA/PCI
711.7Snisimura
721.11Ssoda	-   remove inb/outb
731.8Snisimura
741.8Snisimura	-   try to interporate HZ; may be possible for R4030/R4230 system
751.8Snisimura	    or 'hardclock() by R4000' system.  Clock resolution of 100Hz
761.8Snisimura	    without any interporation is substandard
771.9Ssoda
781.9Ssoda    o	overblocking on interrupt handler, and related problems
791.9Ssoda
801.9Ssoda	-   SR_INT_IE should be enabled before calling hardclock().
811.9Ssoda	    Since this is not done currently, spllowersoftclock()
821.9Ssoda	    on hardclock() doesn't have effect, and softclock() is
831.9Ssoda	    handled with all interrupt disabled in this case.
841.9Ssoda		-> overblocking, possibly causes missing hardclock()
851.9Ssoda
861.9Ssoda	-   MIPS3_CLKF_BASEPRI() doesn't work correctly,
871.9Ssoda	    when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
881.9Ssoda		-> micro optimization on hardclock() doesn't work.
891.9Ssoda		   but currently this may make hardclock() latency better
901.9Ssoda		   due to above SR_INT_IE problem.
911.9Ssoda	    s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
921.9Ssoda
931.9Ssoda	-   if (ipending & INT_MASK_REAL_DEV) == 0,
941.9Ssoda	    softnet() and softclock() are handled with all interrupt disabled.
951.9Ssoda		-> overblocking, possibly causes missing hardclock()
961.9Ssoda
971.9Ssoda	-   softclock() is handled with softnet() disabled.
981.9Ssoda		-> slightly overblocking
991.9Ssoda
1001.9Ssoda	-   `netisr' handling in netintr() implies potential race condition.
1011.9Ssoda	    `netisr' access should be protected by splnet().
1021.9Ssoda	    currently this is not real problem due to above overblocking.
1031.9Ssoda
1041.9Ssoda	    `ssir' handling on many mips ports has same problem.
1051.9Ssoda	    It should be protected by splnet() or splserial() or splhigh()
1061.9Ssoda	    (depends on the highest interrupt level which sets `ssir').
1071.9Ssoda	    Since `ssir' is accessed not only by setsoftnet() but also
1081.9Ssoda	    by setsoft(), setsoftnet() should protect `ssir' by splserial()
1091.9Ssoda	    or something. (i.e. priority level which setsoft() will be called)
1101.9Ssoda	    Probably, it is better to split `ssir' variable for each
1111.9Ssoda	    priority level.
1121.9Ssoda	    also, _clearsoftintr() should be called before `ssir' access.
1131.9Ssoda	    currently this is not real problem due to above overblocking.
1141.9Ssoda
1151.10Ssoda	-   INT_MASK_REAL_DEV should be removed
1161.10Ssoda
1171.11Ssoda	-   make CLKF_INTR() work.
1181.11Ssoda
1191.11Ssoda	-   major rework, possibly by software emulated spl.
1201.11Ssoda		splserial()/splsoftserial()
1211.11Ssoda
1221.9Ssoda    o	it is better to always disable MIPS_INT_MASK_CLOCK.
1231.9Ssoda	those are the points which should be fixed:
1241.9Ssoda	mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
1251.9Ssoda	machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
1261.9Ssoda	spl0()
1271.9Ssoda	splnone()
1281.10Ssoda
1291.10Ssoda	-   MIPS_INT_MASK_CLOCK should be removed in someway
1301.1Sjonathan
1311.4Ssoda    o	fix kernel start address
1321.1Sjonathan
1331.11Ssoda    o	allocate PICA_TL_BASE and SONICBUF dynamically
1341.11Ssoda
1351.4Ssoda    o	merge new wscons
1361.1Sjonathan
1371.11Ssoda    o	fix mem_clusters[] usage.
1381.11Ssoda
1391.11Ssoda    o	test and merge soren's clean up about proc0.p_addr.
1401.11Ssoda
1411.4Ssoda    o	parse ARC BIOS configuration information and use it
1421.4Ssoda
1431.5Ssoda    o	omit __BROKEN_CONFIG_UNIT_USAGE
1441.5Ssoda
1451.5Ssoda    o	omit __SWAP_BROKEN in <mips/types.h>
1461.5Ssoda
1471.4Ssoda    o	fix implementation of DELAY(), clean up clock implementation
1481.4Ssoda
1491.11Ssoda    o	increase MAXPHYS to 64KB
1501.11Ssoda
1511.5Ssoda    o	asc.c scsi clock/NCR53CF94 handling clean up
1521.5Ssoda
1531.11Ssoda    o	if_sn.c
1541.11Ssoda
1551.11Ssoda	-   ether address handling clean up
1561.11Ssoda
1571.11Ssoda	-   bus_dma'fy
1581.11Ssoda	-   bus_space'fy
1591.11Ssoda	-   split frontend and backend
1601.11Ssoda	-   make this MI, and share with mac68k, newsmips/apbus
1611.4Ssoda
1621.5Ssoda    o	com_lbus.c clock handling clean up
1631.5Ssoda
1641.11Ssoda    o	intrcnt[] name cleanup
1651.11Ssoda
1661.5Ssoda    o	implement NCR 53c700(?) driver for NEC RISCserver 2200
1671.5Ssoda	based on amiga siop driver?
1681.5Ssoda
1691.6Ssoda    o	audio driver
1701.6Ssoda
1711.4Ssoda    o	use MI driver
1721.4Ssoda
1731.4Ssoda	-   use MI ncr53c9x driver instead of home grown asc
1741.4Ssoda
1751.4Ssoda	-   use MI bha driver instead of home grown btl
1761.4Ssoda
1771.4Ssoda	-   make fd driver MI, and share it with i386
1781.4Ssoda	    (contact christos about MI fd driver)
1791.1Sjonathan
1801.4Ssoda	-   make pccons MI, and share it with i386,
1811.4Ssoda	    or simply eliminate pccons
1821.5Ssoda
1831.6Ssoda	-   LKM
1841.5Ssoda
1851.6Ssoda    o	ARC boot device name -> NetBSD root device conversion
1861.5Ssoda
1871.6Ssoda    o	and missing MI devices
1881.6Ssoda		ses?, lkm, vcoda, ...
1891.5Ssoda
1901.6Ssoda    o	way to specify serial console
1911.5Ssoda
1921.11Ssoda    o	bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation
1931.11Ssoda
1941.11Ssoda    o	clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
1951.11Ssoda
1961.11Ssoda    o	resolve "XXX"
1971.1Sjonathan
1981.1SjonathanLots of other things.....
199