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