TODO revision 1.23
11.23Stsutsui$NetBSD: TODO,v 1.23 2005/11/15 15:00: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	sysinst
71.17Stsutsui	maybe MD fdisk partitioning support is required to load files
81.17Stsutsui	from FAT partition on ARC BIOS prompt.
91.17Stsutsui
101.17Stsutsui    o	install notes
111.17Stsutsui
121.17Stsutsui
131.17Stsutsui    o	use MI driver
141.17Stsutsui
151.17Stsutsui	-   make fd driver MI, and share it with other ports
161.17Stsutsui	    (contact christos about MI fd driver)
171.17Stsutsui
181.17Stsutsui	-   use MI bha driver instead of home grown btl
191.17Stsutsui	    XXX needs fixes of DESKstation support
201.14Ssoda
211.17Stsutsui    o	VXL framebuffer support (Magnum, RISCstation 2200)
221.14Ssoda
231.17Stsutsui    o	com_jazzio.c
241.17Stsutsui	-   clock handling clean up (obtain from ARC BIOS)
251.17Stsutsui	-   fifo disabling may be only needed on some Magnum?
261.1Sjonathan
271.17Stsutsui    o	remove pccons and switch to wscons completely
281.17Stsutsui	(XXX what's the problem to remove pccons?)
291.9Ssoda
301.17Stsutsui    o	AD1848 audio support
311.1Sjonathan
321.17Stsutsui    o	missing MI devices
331.17Stsutsui		ses?, vcoda, ...
341.1Sjonathan
351.4Ssoda
361.17Stsutsui    o	Xserver
371.4Ssoda
381.17Stsutsui	-   VXL		Magnum, RISCstation 2200
391.17Stsutsui	-   vga/S3	PICA, Image RISCstation - OpenBSD's?
401.17Stsutsui	-   vga/cirrus	RISCserver 2200, Express5800/240 R4400 EISA
411.17Stsutsui	-   vga/???	DESKstation Tyne, rPC44
421.17Stsutsui	-   TGA		RISCstation 2250, Express5800/230 R4400 PCI
431.4Ssoda
441.17Stsutsui    o   Find out why bitmap load to S3-928 flashes screen. (X server)
451.17Stsutsui	Know why (enable linear mode). Need S3 info.
461.5Ssoda
471.5Ssoda
481.15Ssoda    o	repair DESKstation support
491.11Ssoda	-   requires bounce buffer bus_dma for Tyne
501.17Stsutsui		XXX - too small bounce buffer size (128KB)
511.11Ssoda
521.15Ssoda    o	Olivetti M700 support
531.11Ssoda
541.19Stsutsui    o	NEC Express5800/230 R10000 PCI (NEC-J95) support
551.17Stsutsui	(needs MI R10000 support)
561.11Ssoda
571.17Stsutsui    o	SNI RM200PCI/RM300/RM400/RM600 support
581.11Ssoda
591.11Ssoda
601.17Stsutsui    o	parse ARC BIOS configuration information and use it
611.11Ssoda
621.17Stsutsui    o	increase MAXPHYS to 64KB
631.17Stsutsui	(XXX why is it limited to 32KB?)
641.11Ssoda
651.17Stsutsui    o	fix kernel start address
661.17Stsutsui	(maybe requires bootloader support)
671.11Ssoda
681.17Stsutsui    o	allocate PICA_TL_BASE dynamically
691.5Ssoda
701.15Ssoda    o	remove inb/outb
711.8Snisimura
721.15Ssoda    o	remove UADDR
731.9Ssoda
741.17Stsutsui    o	fix mem_clusters[] usage.
751.17Stsutsui
761.17Stsutsui    o	intrcnt[] name cleanup, use MI evcnt(9)
771.17Stsutsui
781.17Stsutsui    o	test and merge soren's clean up about proc0.p_addr.
791.17Stsutsui
801.15Ssoda    o	redesign interrupt handler framework.
811.15Ssoda	i/o bus devices should have sane IPL, but currently doesn't.
821.13Ssoda
831.15Ssoda	also, current MIPS interrupt handler has overblocking and
841.15Ssoda	other problems as follows:
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.11Ssoda	-   make CLKF_INTR() work.
1041.11Ssoda
1051.23Stsutsui    o	it is better to always disable the MIPS3 internal timer interrupts
1061.23Stsutsui	(i.e. MIPS_INT_MASK_5) if it is not needed for the system.
1071.9Ssoda	those are the points which should be fixed:
1081.9Ssoda	mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
1091.9Ssoda	machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
1101.9Ssoda	spl0()
1111.9Ssoda	splnone()
1121.10Ssoda
1131.17Stsutsui    o	XXX at least 2000/06/07 version is already quite unstable
1141.17Stsutsui	on PICA and NEC Image RISCstation. (but almost OK on Magnum)
1151.17Stsutsui	Userland commands dumps	core randomly.
1161.17Stsutsui	This version is before _MIPS_PADDR_T_64BIT changes
1171.17Stsutsui	and MIPS3_TLB_WIRED_UPAGES changes.	
1181.1Sjonathan
1191.17Stsutsui	"vm_page_zero_enable = FALSE" makes this problem disappeared.
1201.17Stsutsui	(vm_page_zero_enable = FALSE by default on all archs w/ UBC, now)
1211.11Ssoda
1221.17Stsutsui	currently, page zero in the idle loop is also disabled on
1231.17Stsutsui	untested platforms like DESKstation rPC44/Tyne and SNI for safety.
1241.11Ssoda
1251.17Stsutsui	    XXX what's the current status of uvm_pageidlezero()?
1261.11Ssoda
1271.4Ssoda
1281.17Stsutsui    o	resolve "XXX"
1291.5Ssoda
1301.4Ssoda
1311.17Stsutsui(following entries might be MI MIPS items)
1321.11Ssoda
1331.17Stsutsui    o	Move the RO and WIRED attribute from the pte to the pv table.
1341.17Stsutsui	This saves four instructions in the tlb miss handler.
1351.15Ssoda
1361.17Stsutsui    o   Can we have 32 double registers?
1371.15Ssoda
1381.17Stsutsui    o	64bit kernel/userland
1391.15Ssoda
1401.17Stsutsui    o	omit __SWAP_BROKEN in <mips/types.h>
1411.11Ssoda
1421.11Ssoda    o	clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
1431.1Sjonathan
1441.1SjonathanLots of other things.....
145