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