TODO revision 1.17
11.17Stsutsui$NetBSD: TODO,v 1.17 2003/04/06 17:48:51 tsutsui Exp $ 21.2Sthorpej 31.17StsutsuiTo do list (in some particular order) 41.17StsutsuiXXX some entries might be obsolete. 51.12Ssoda 61.17Stsutsui o Boot. Standalone boot program to load ELF kernels instead of 71.17Stsutsui booting ECOFF kernels directly. 81.17Stsutsui (maybe sgimips/stand would help, but annoying buggy ARC BIOS) 91.17Stsutsui 101.17Stsutsui o sysinst 111.17Stsutsui maybe MD fdisk partitioning support is required to load files 121.17Stsutsui from FAT partition on ARC BIOS prompt. 131.17Stsutsui 141.17Stsutsui o install notes 151.17Stsutsui 161.17Stsutsui 171.17Stsutsui o use MI driver 181.17Stsutsui 191.17Stsutsui - use MI ncr53c9x driver instead of home grown asc 201.17Stsutsui XXX patch is available. needs testers 211.17Stsutsui 221.17Stsutsui - make fd driver MI, and share it with other ports 231.17Stsutsui (contact christos about MI fd driver) 241.17Stsutsui 251.17Stsutsui - use MI bha driver instead of home grown btl 261.17Stsutsui XXX needs fixes of DESKstation support 271.14Ssoda 281.17Stsutsui o VXL framebuffer support (Magnum, RISCstation 2200) 291.14Ssoda 301.17Stsutsui o com_jazzio.c 311.17Stsutsui - clock handling clean up (obtain from ARC BIOS) 321.17Stsutsui - fifo disabling may be only needed on some Magnum? 331.1Sjonathan 341.17Stsutsui o remove pccons and switch to wscons completely 351.17Stsutsui (XXX what's the problem to remove pccons?) 361.9Ssoda 371.17Stsutsui o AD1848 audio support 381.1Sjonathan 391.17Stsutsui o missing MI devices 401.17Stsutsui ses?, vcoda, ... 411.1Sjonathan 421.4Ssoda 431.17Stsutsui o Xserver 441.4Ssoda 451.17Stsutsui - VXL Magnum, RISCstation 2200 461.17Stsutsui - vga/S3 PICA, Image RISCstation - OpenBSD's? 471.17Stsutsui - vga/cirrus RISCserver 2200, Express5800/240 R4400 EISA 481.17Stsutsui - vga/??? DESKstation Tyne, rPC44 491.17Stsutsui - TGA RISCstation 2250, Express5800/230 R4400 PCI 501.4Ssoda 511.17Stsutsui o Find out why bitmap load to S3-928 flashes screen. (X server) 521.17Stsutsui Know why (enable linear mode). Need S3 info. 531.5Ssoda 541.5Ssoda 551.15Ssoda o repair DESKstation support 561.11Ssoda - requires bounce buffer bus_dma for Tyne 571.17Stsutsui XXX - too small bounce buffer size (128KB) 581.11Ssoda 591.15Ssoda o Olivetti M700 support 601.11Ssoda 611.17Stsutsui o NEC Express5800/230 R10000 PCI (NEC-JC95) support 621.17Stsutsui (needs MI R10000 support) 631.11Ssoda 641.17Stsutsui o SNI RM200PCI/RM300/RM400/RM600 support 651.11Ssoda 661.11Ssoda 671.17Stsutsui o parse ARC BIOS configuration information and use it 681.11Ssoda 691.17Stsutsui o increase MAXPHYS to 64KB 701.17Stsutsui (XXX why is it limited to 32KB?) 711.11Ssoda 721.17Stsutsui o fix kernel start address 731.17Stsutsui (maybe requires bootloader support) 741.11Ssoda 751.17Stsutsui o allocate PICA_TL_BASE dynamically 761.5Ssoda 771.15Ssoda o remove inb/outb 781.8Snisimura 791.15Ssoda o remove UADDR 801.9Ssoda 811.17Stsutsui o fix mem_clusters[] usage. 821.17Stsutsui 831.17Stsutsui o intrcnt[] name cleanup, use MI evcnt(9) 841.17Stsutsui 851.17Stsutsui o test and merge soren's clean up about proc0.p_addr. 861.17Stsutsui 871.15Ssoda o redesign interrupt handler framework. 881.15Ssoda i/o bus devices should have sane IPL, but currently doesn't. 891.13Ssoda 901.15Ssoda also, current MIPS interrupt handler has overblocking and 911.15Ssoda other problems as follows: 921.9Ssoda 931.9Ssoda - SR_INT_IE should be enabled before calling hardclock(). 941.9Ssoda Since this is not done currently, spllowersoftclock() 951.9Ssoda on hardclock() doesn't have effect, and softclock() is 961.9Ssoda handled with all interrupt disabled in this case. 971.9Ssoda -> overblocking, possibly causes missing hardclock() 981.9Ssoda 991.9Ssoda - MIPS3_CLKF_BASEPRI() doesn't work correctly, 1001.9Ssoda when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled. 1011.9Ssoda -> micro optimization on hardclock() doesn't work. 1021.9Ssoda but currently this may make hardclock() latency better 1031.9Ssoda due to above SR_INT_IE problem. 1041.9Ssoda s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky. 1051.9Ssoda 1061.9Ssoda - if (ipending & INT_MASK_REAL_DEV) == 0, 1071.9Ssoda softnet() and softclock() are handled with all interrupt disabled. 1081.9Ssoda -> overblocking, possibly causes missing hardclock() 1091.9Ssoda 1101.9Ssoda - softclock() is handled with softnet() disabled. 1111.9Ssoda -> slightly overblocking 1121.9Ssoda 1131.9Ssoda - `netisr' handling in netintr() implies potential race condition. 1141.15Ssoda The access to `netisr' should be protected by splnet(). 1151.15Ssoda Currently this is not real problem due to above overblocking. 1161.9Ssoda 1171.9Ssoda `ssir' handling on many mips ports has same problem. 1181.9Ssoda It should be protected by splnet() or splserial() or splhigh() 1191.9Ssoda (depends on the highest interrupt level which sets `ssir'). 1201.9Ssoda Since `ssir' is accessed not only by setsoftnet() but also 1211.9Ssoda by setsoft(), setsoftnet() should protect `ssir' by splserial() 1221.9Ssoda or something. (i.e. priority level which setsoft() will be called) 1231.9Ssoda Probably, it is better to split `ssir' variable for each 1241.9Ssoda priority level. 1251.15Ssoda Also, _clearsoftintr() should be called before `ssir' access. 1261.9Ssoda currently this is not real problem due to above overblocking. 1271.9Ssoda 1281.10Ssoda - INT_MASK_REAL_DEV should be removed 1291.10Ssoda 1301.11Ssoda - make CLKF_INTR() work. 1311.11Ssoda 1321.15Ssoda - generic software interrupt 1331.17Stsutsui (see algor, mipsco, pmax etc.) 1341.15Ssoda 1351.11Ssoda - major rework, possibly by software emulated spl. 1361.11Ssoda splserial()/splsoftserial() 1371.11Ssoda 1381.9Ssoda o it is better to always disable MIPS_INT_MASK_CLOCK. 1391.9Ssoda those are the points which should be fixed: 1401.9Ssoda mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE) 1411.9Ssoda machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE; 1421.9Ssoda spl0() 1431.9Ssoda splnone() 1441.10Ssoda 1451.10Ssoda - MIPS_INT_MASK_CLOCK should be removed in someway 1461.1Sjonathan 1471.17Stsutsui o XXX at least 2000/06/07 version is already quite unstable 1481.17Stsutsui on PICA and NEC Image RISCstation. (but almost OK on Magnum) 1491.17Stsutsui Userland commands dumps core randomly. 1501.17Stsutsui This version is before _MIPS_PADDR_T_64BIT changes 1511.17Stsutsui and MIPS3_TLB_WIRED_UPAGES changes. 1521.1Sjonathan 1531.17Stsutsui "vm_page_zero_enable = FALSE" makes this problem disappeared. 1541.17Stsutsui (vm_page_zero_enable = FALSE by default on all archs w/ UBC, now) 1551.11Ssoda 1561.17Stsutsui currently, page zero in the idle loop is also disabled on 1571.17Stsutsui untested platforms like DESKstation rPC44/Tyne and SNI for safety. 1581.11Ssoda 1591.17Stsutsui XXX what's the current status of uvm_pageidlezero()? 1601.11Ssoda 1611.4Ssoda 1621.17Stsutsui o resolve "XXX" 1631.5Ssoda 1641.4Ssoda 1651.17Stsutsui(following entries might be MI MIPS items) 1661.11Ssoda 1671.17Stsutsui o Move the RO and WIRED attribute from the pte to the pv table. 1681.17Stsutsui This saves four instructions in the tlb miss handler. 1691.15Ssoda 1701.17Stsutsui o Can we have 32 double registers? 1711.15Ssoda 1721.17Stsutsui o 64bit kernel/userland 1731.15Ssoda 1741.17Stsutsui o fix implementation of DELAY(), clean up clock implementation 1751.4Ssoda 1761.17Stsutsui o omit __SWAP_BROKEN in <mips/types.h> 1771.11Ssoda 1781.11Ssoda o clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland. 1791.1Sjonathan 1801.1SjonathanLots of other things..... 181