TODO revision 1.14
1$NetBSD: TODO,v 1.14 2000/08/08 21:17:15 soda Exp $ 2 3To do list (not in any particular order). 4 5 o XXX at least 2000/06/07 version is already quite unstable 6 on PICA and NEC Image RISCstation. (but almost OK on Magnum) 7 Userland commands dumps core randomly. 8 This version is before _MIPS_PADDR_T_64BIT changes 9 and MIPS3_TLB_WIRED_UPAGES changes. 10 11 "vm_page_zero_enable = FALSE" makes this problem disappeared. 12 13 currently, page zero in the idle loop is also disabled on 14 untested platforms like ESCstation rPC44/Tyne, SNI, Algorithmics 15 for safety. 16 17 o XXX sudden hang up in a few minutes or dozens of minutes. 18 2000 Mar 17 -current is OK. Mar 29 is NG. 19 20 o Move the RO and WIRED attribute from the pte to the pv table. 21 This saves four instructions in the tlb miss handler. 22 23 o Boot. Standalone boot program instead of booting the kernel directly. 24 25 o Find out why bitmap load to S3-928 flashes screen. (X server) 26 Know why (enable linear mode). Need S3 info. 27 28 o Can we have 32 double registers? 29 30 o 64bit kernel/userland 31 32 o NEC RISCstation 2200 support 33 34 - framebuffer? 35 36 - interrupt handling? 37 38 o repair DeskStation support 39 40 - requires bounce buffer bus_dma for Tyne 41 42 - set up rPC44 wired TLB entries explicitly 43 44 o repair Algor support 45 46 - pci/pbcpcibus.c:vtophysaddr(): pbc_version < V96X_VREV_C0 case 47 48 o sysinst 49 50 o install notes 51 52 o www: diskless HOW-TO port-arc specific part. 53 54 o Xserver 55 56 - VXL magnum, some RISCserver 2200 57 - vga/S3 pica, Image RISCstation - OpenBSD's? 58 - vga/cirrus some RISCserver 2200 59 - vga/??? DESKstation Tyne, rPC44 60 - TGA RISCserver 2250 61 62 o X clients 63 probably pmax binary is good enough. 64 65 o source code structure is quite obsolete, 66 general clean up is needed as nisimura-san suggested. 67 especially: 68 69 - introduce struct platform and remove ugly ``switch (cputype)'' 70 in many places. 71 72 - redesign interrupt handler framework to be flexible for 73 possible variations; must be sane and useful for R4030/R4230 74 'local' devices and any combinations with ISA/EISA/PCI 75 76 - remove inb/outb 77 78 - try to interporate HZ; may be possible for R4030/R4230 system 79 or 'hardclock() by R4000' system. Clock resolution of 100Hz 80 without any interporation is substandard 81 82 - remove UADDR 83 84 o overblocking on interrupt handler, and related problems 85 86 - SR_INT_IE should be enabled before calling hardclock(). 87 Since this is not done currently, spllowersoftclock() 88 on hardclock() doesn't have effect, and softclock() is 89 handled with all interrupt disabled in this case. 90 -> overblocking, possibly causes missing hardclock() 91 92 - MIPS3_CLKF_BASEPRI() doesn't work correctly, 93 when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled. 94 -> micro optimization on hardclock() doesn't work. 95 but currently this may make hardclock() latency better 96 due to above SR_INT_IE problem. 97 s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky. 98 99 - if (ipending & INT_MASK_REAL_DEV) == 0, 100 softnet() and softclock() are handled with all interrupt disabled. 101 -> overblocking, possibly causes missing hardclock() 102 103 - softclock() is handled with softnet() disabled. 104 -> slightly overblocking 105 106 - `netisr' handling in netintr() implies potential race condition. 107 `netisr' access should be protected by splnet(). 108 currently this is not real problem due to above overblocking. 109 110 `ssir' handling on many mips ports has same problem. 111 It should be protected by splnet() or splserial() or splhigh() 112 (depends on the highest interrupt level which sets `ssir'). 113 Since `ssir' is accessed not only by setsoftnet() but also 114 by setsoft(), setsoftnet() should protect `ssir' by splserial() 115 or something. (i.e. priority level which setsoft() will be called) 116 Probably, it is better to split `ssir' variable for each 117 priority level. 118 also, _clearsoftintr() should be called before `ssir' access. 119 currently this is not real problem due to above overblocking. 120 121 - INT_MASK_REAL_DEV should be removed 122 123 - make CLKF_INTR() work. 124 125 - major rework, possibly by software emulated spl. 126 splserial()/splsoftserial() 127 128 o it is better to always disable MIPS_INT_MASK_CLOCK. 129 those are the points which should be fixed: 130 mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE) 131 machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE; 132 spl0() 133 splnone() 134 135 - MIPS_INT_MASK_CLOCK should be removed in someway 136 137 o fix kernel start address 138 139 o allocate PICA_TL_BASE and SONICBUF dynamically 140 141 o merge new wscons 142 143 o fix mem_clusters[] usage. 144 145 o test and merge soren's clean up about proc0.p_addr. 146 147 o parse ARC BIOS configuration information and use it 148 149 o omit __BROKEN_CONFIG_UNIT_USAGE 150 151 o omit __SWAP_BROKEN in <mips/types.h> 152 153 o fix implementation of DELAY(), clean up clock implementation 154 155 o increase MAXPHYS to 64KB 156 157 o asc.c scsi clock/NCR53CF94 handling clean up 158 159 o if_sn.c 160 161 - ether address handling clean up 162 163 - bus_dma'fy 164 - bus_space'fy 165 - split frontend and backend 166 - make this MI, and share with mac68k, newsmips/apbus 167 168 o com_lbus.c clock handling clean up 169 170 o intrcnt[] name cleanup 171 172 o implement NCR 53c700(?) driver for NEC RISCserver 2200, 173 RISCstation 2200 and RISCstation 2250. 174 based on MI siop driver? 175 176 o audio driver 177 178 o use MI driver 179 180 - use MI ncr53c9x driver instead of home grown asc 181 182 - use MI bha driver instead of home grown btl 183 184 - make fd driver MI, and share it with i386 185 (contact christos about MI fd driver) 186 187 - make pccons MI, and share it with i386, 188 or simply eliminate pccons 189 190 - LKM 191 192 o ARC boot device name -> NetBSD root device conversion 193 194 o and missing MI devices 195 ses?, lkm, vcoda, ... 196 197 o bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation 198 199 o clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland. 200 201 o resolve "XXX" 202 203Lots of other things..... 204