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