TODO revision 1.19
11.19Stsutsui$NetBSD: TODO,v 1.19 2003/05/25 15:46:15 tsutsui Exp $
21.2Sthorpej
31.17StsutsuiTo do list (in some particular order)
41.17StsutsuiXXX some entries might be obsolete.
51.12Ssoda
61.17Stsutsui    o   Boot. Standalone boot program to load ELF kernels instead of
71.17Stsutsui	booting ECOFF kernels directly.
81.17Stsutsui	(maybe sgimips/stand would help, but annoying buggy ARC BIOS)
91.17Stsutsui
101.17Stsutsui    o	sysinst
111.17Stsutsui	maybe MD fdisk partitioning support is required to load files
121.17Stsutsui	from FAT partition on ARC BIOS prompt.
131.17Stsutsui
141.17Stsutsui    o	install notes
151.17Stsutsui
161.17Stsutsui
171.17Stsutsui    o	use MI driver
181.17Stsutsui
191.17Stsutsui	-   make fd driver MI, and share it with other ports
201.17Stsutsui	    (contact christos about MI fd driver)
211.17Stsutsui
221.17Stsutsui	-   use MI bha driver instead of home grown btl
231.17Stsutsui	    XXX needs fixes of DESKstation support
241.14Ssoda
251.17Stsutsui    o	VXL framebuffer support (Magnum, RISCstation 2200)
261.14Ssoda
271.17Stsutsui    o	com_jazzio.c
281.17Stsutsui	-   clock handling clean up (obtain from ARC BIOS)
291.17Stsutsui	-   fifo disabling may be only needed on some Magnum?
301.1Sjonathan
311.17Stsutsui    o	remove pccons and switch to wscons completely
321.17Stsutsui	(XXX what's the problem to remove pccons?)
331.9Ssoda
341.17Stsutsui    o	AD1848 audio support
351.1Sjonathan
361.17Stsutsui    o	missing MI devices
371.17Stsutsui		ses?, vcoda, ...
381.1Sjonathan
391.4Ssoda
401.17Stsutsui    o	Xserver
411.4Ssoda
421.17Stsutsui	-   VXL		Magnum, RISCstation 2200
431.17Stsutsui	-   vga/S3	PICA, Image RISCstation - OpenBSD's?
441.17Stsutsui	-   vga/cirrus	RISCserver 2200, Express5800/240 R4400 EISA
451.17Stsutsui	-   vga/???	DESKstation Tyne, rPC44
461.17Stsutsui	-   TGA		RISCstation 2250, Express5800/230 R4400 PCI
471.4Ssoda
481.17Stsutsui    o   Find out why bitmap load to S3-928 flashes screen. (X server)
491.17Stsutsui	Know why (enable linear mode). Need S3 info.
501.5Ssoda
511.5Ssoda
521.15Ssoda    o	repair DESKstation support
531.11Ssoda	-   requires bounce buffer bus_dma for Tyne
541.17Stsutsui		XXX - too small bounce buffer size (128KB)
551.11Ssoda
561.15Ssoda    o	Olivetti M700 support
571.11Ssoda
581.19Stsutsui    o	NEC Express5800/230 R10000 PCI (NEC-J95) support
591.17Stsutsui	(needs MI R10000 support)
601.11Ssoda
611.17Stsutsui    o	SNI RM200PCI/RM300/RM400/RM600 support
621.11Ssoda
631.11Ssoda
641.17Stsutsui    o	parse ARC BIOS configuration information and use it
651.11Ssoda
661.17Stsutsui    o	increase MAXPHYS to 64KB
671.17Stsutsui	(XXX why is it limited to 32KB?)
681.11Ssoda
691.17Stsutsui    o	fix kernel start address
701.17Stsutsui	(maybe requires bootloader support)
711.11Ssoda
721.17Stsutsui    o	allocate PICA_TL_BASE dynamically
731.5Ssoda
741.15Ssoda    o	remove inb/outb
751.8Snisimura
761.15Ssoda    o	remove UADDR
771.9Ssoda
781.17Stsutsui    o	fix mem_clusters[] usage.
791.17Stsutsui
801.17Stsutsui    o	intrcnt[] name cleanup, use MI evcnt(9)
811.17Stsutsui
821.17Stsutsui    o	test and merge soren's clean up about proc0.p_addr.
831.17Stsutsui
841.15Ssoda    o	redesign interrupt handler framework.
851.15Ssoda	i/o bus devices should have sane IPL, but currently doesn't.
861.13Ssoda
871.15Ssoda	also, current MIPS interrupt handler has overblocking and
881.15Ssoda	other problems as follows:
891.9Ssoda
901.9Ssoda	-   SR_INT_IE should be enabled before calling hardclock().
911.9Ssoda	    Since this is not done currently, spllowersoftclock()
921.9Ssoda	    on hardclock() doesn't have effect, and softclock() is
931.9Ssoda	    handled with all interrupt disabled in this case.
941.9Ssoda		-> overblocking, possibly causes missing hardclock()
951.9Ssoda
961.9Ssoda	-   MIPS3_CLKF_BASEPRI() doesn't work correctly,
971.9Ssoda	    when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
981.9Ssoda		-> micro optimization on hardclock() doesn't work.
991.9Ssoda		   but currently this may make hardclock() latency better
1001.9Ssoda		   due to above SR_INT_IE problem.
1011.9Ssoda	    s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.
1021.9Ssoda
1031.9Ssoda	-   if (ipending & INT_MASK_REAL_DEV) == 0,
1041.9Ssoda	    softnet() and softclock() are handled with all interrupt disabled.
1051.9Ssoda		-> overblocking, possibly causes missing hardclock()
1061.9Ssoda
1071.9Ssoda	-   `netisr' handling in netintr() implies potential race condition.
1081.15Ssoda	    The access to `netisr' should be protected by splnet().
1091.15Ssoda	    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.9Ssoda    o	it is better to always disable MIPS_INT_MASK_CLOCK.
1161.9Ssoda	those are the points which should be fixed:
1171.9Ssoda	mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
1181.9Ssoda	machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
1191.9Ssoda	spl0()
1201.9Ssoda	splnone()
1211.10Ssoda
1221.10Ssoda	-   MIPS_INT_MASK_CLOCK should be removed in someway
1231.1Sjonathan
1241.17Stsutsui    o	XXX at least 2000/06/07 version is already quite unstable
1251.17Stsutsui	on PICA and NEC Image RISCstation. (but almost OK on Magnum)
1261.17Stsutsui	Userland commands dumps	core randomly.
1271.17Stsutsui	This version is before _MIPS_PADDR_T_64BIT changes
1281.17Stsutsui	and MIPS3_TLB_WIRED_UPAGES changes.	
1291.1Sjonathan
1301.17Stsutsui	"vm_page_zero_enable = FALSE" makes this problem disappeared.
1311.17Stsutsui	(vm_page_zero_enable = FALSE by default on all archs w/ UBC, now)
1321.11Ssoda
1331.17Stsutsui	currently, page zero in the idle loop is also disabled on
1341.17Stsutsui	untested platforms like DESKstation rPC44/Tyne and SNI for safety.
1351.11Ssoda
1361.17Stsutsui	    XXX what's the current status of uvm_pageidlezero()?
1371.11Ssoda
1381.4Ssoda
1391.17Stsutsui    o	resolve "XXX"
1401.5Ssoda
1411.4Ssoda
1421.17Stsutsui(following entries might be MI MIPS items)
1431.11Ssoda
1441.17Stsutsui    o	Move the RO and WIRED attribute from the pte to the pv table.
1451.17Stsutsui	This saves four instructions in the tlb miss handler.
1461.15Ssoda
1471.17Stsutsui    o   Can we have 32 double registers?
1481.15Ssoda
1491.17Stsutsui    o	64bit kernel/userland
1501.15Ssoda
1511.17Stsutsui    o	fix implementation of DELAY(), clean up clock implementation
1521.4Ssoda
1531.17Stsutsui    o	omit __SWAP_BROKEN in <mips/types.h>
1541.11Ssoda
1551.11Ssoda    o	clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
1561.1Sjonathan
1571.1SjonathanLots of other things.....
158