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