TODO revision 1.9
11.9Ssoda$NetBSD: TODO,v 1.9 2000/04/15 21:57:37 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.1Sjonathan 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.5Ssoda o repair DeskStation and Algor support 211.5Ssoda 221.5Ssoda - 64bit device physical address space for Tyne (see OpenBSD pmap.c) 231.5Ssoda 241.5Ssoda - requires bus_dma 251.5Ssoda 261.4Ssoda o source code structure is quite obsolete, 271.4Ssoda general clean up is needed as nisimura-san suggested. 281.4Ssoda especially: 291.4Ssoda 301.4Ssoda - introduce struct platform and remove ugly ``switch (cputype)'' 311.4Ssoda in many places. 321.4Ssoda 331.7Snisimura - redesign interrupt handler framework to be flexible for 341.7Snisimura possible variations; must be sane and useful for R4030/R4230 351.7Snisimura 'local' devices and any combinations with ISA/EISA/PCI 361.7Snisimura 371.7Snisimura - implement and use bus_dma, keeping in mind TLB assisted VDMA 381.7Snisimura that R4030/R4230 chip provides 391.1Sjonathan 401.4Ssoda - clean up bus_space implementation, remove inb/outb 411.8Snisimura 421.8Snisimura - try to interporate HZ; may be possible for R4030/R4230 system 431.8Snisimura or 'hardclock() by R4000' system. Clock resolution of 100Hz 441.8Snisimura without any interporation is substandard 451.9Ssoda 461.9Ssoda o overblocking on interrupt handler, and related problems 471.9Ssoda 481.9Ssoda - SR_INT_IE should be enabled before calling hardclock(). 491.9Ssoda Since this is not done currently, spllowersoftclock() 501.9Ssoda on hardclock() doesn't have effect, and softclock() is 511.9Ssoda handled with all interrupt disabled in this case. 521.9Ssoda -> overblocking, possibly causes missing hardclock() 531.9Ssoda 541.9Ssoda - MIPS3_CLKF_BASEPRI() doesn't work correctly, 551.9Ssoda when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled. 561.9Ssoda -> micro optimization on hardclock() doesn't work. 571.9Ssoda but currently this may make hardclock() latency better 581.9Ssoda due to above SR_INT_IE problem. 591.9Ssoda s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky. 601.9Ssoda 611.9Ssoda - if (ipending & INT_MASK_REAL_DEV) == 0, 621.9Ssoda softnet() and softclock() are handled with all interrupt disabled. 631.9Ssoda -> overblocking, possibly causes missing hardclock() 641.9Ssoda 651.9Ssoda - softclock() is handled with softnet() disabled. 661.9Ssoda -> slightly overblocking 671.9Ssoda 681.9Ssoda - `netisr' handling in netintr() implies potential race condition. 691.9Ssoda `netisr' access should be protected by splnet(). 701.9Ssoda currently this is not real problem due to above overblocking. 711.9Ssoda 721.9Ssoda `ssir' handling on many mips ports has same problem. 731.9Ssoda It should be protected by splnet() or splserial() or splhigh() 741.9Ssoda (depends on the highest interrupt level which sets `ssir'). 751.9Ssoda Since `ssir' is accessed not only by setsoftnet() but also 761.9Ssoda by setsoft(), setsoftnet() should protect `ssir' by splserial() 771.9Ssoda or something. (i.e. priority level which setsoft() will be called) 781.9Ssoda Probably, it is better to split `ssir' variable for each 791.9Ssoda priority level. 801.9Ssoda also, _clearsoftintr() should be called before `ssir' access. 811.9Ssoda currently this is not real problem due to above overblocking. 821.9Ssoda 831.9Ssoda o it is better to always disable MIPS_INT_MASK_CLOCK. 841.9Ssoda those are the points which should be fixed: 851.9Ssoda mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE) 861.9Ssoda machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE; 871.9Ssoda spl0() 881.9Ssoda splnone() 891.1Sjonathan 901.4Ssoda o fix kernel start address 911.1Sjonathan 921.4Ssoda o merge new wscons 931.1Sjonathan 941.4Ssoda o parse ARC BIOS configuration information and use it 951.4Ssoda 961.5Ssoda o omit __BROKEN_CONFIG_UNIT_USAGE 971.5Ssoda 981.5Ssoda o omit __SWAP_BROKEN in <mips/types.h> 991.5Ssoda 1001.4Ssoda o fix implementation of DELAY(), clean up clock implementation 1011.4Ssoda 1021.5Ssoda o asc.c scsi clock/NCR53CF94 handling clean up 1031.5Ssoda 1041.4Ssoda o if_sn.c ether address handling clean up 1051.4Ssoda 1061.5Ssoda o com_lbus.c clock handling clean up 1071.5Ssoda 1081.5Ssoda o implement NCR 53c700(?) driver for NEC RISCserver 2200 1091.5Ssoda based on amiga siop driver? 1101.5Ssoda 1111.6Ssoda o audio driver 1121.6Ssoda 1131.4Ssoda o use MI driver 1141.4Ssoda 1151.4Ssoda - use MI ncr53c9x driver instead of home grown asc 1161.4Ssoda 1171.4Ssoda - use MI bha driver instead of home grown btl 1181.4Ssoda 1191.4Ssoda - make sonic driver MI, and share it with mac68k, newsmips/apbus 1201.4Ssoda 1211.4Ssoda - make fd driver MI, and share it with i386 1221.4Ssoda (contact christos about MI fd driver) 1231.1Sjonathan 1241.4Ssoda - make pccons MI, and share it with i386, 1251.4Ssoda or simply eliminate pccons 1261.5Ssoda 1271.6Ssoda - LKM 1281.5Ssoda 1291.6Ssoda o ARC boot device name -> NetBSD root device conversion 1301.5Ssoda 1311.6Ssoda o and missing MI devices 1321.6Ssoda ses?, lkm, vcoda, ... 1331.5Ssoda 1341.6Ssoda o way to specify serial console 1351.5Ssoda 1361.5Ssoda o resolve "XXX" 1371.1Sjonathan 1381.1SjonathanLots of other things..... 139