Home | History | Annotate | Line # | Download | only in arc
TODO revision 1.12
      1 $NetBSD: TODO,v 1.12 2000/06/17 06:56:20 soda Exp $
      2 
      3 To 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     o	XXX sudden hang up in a few minutes or dozens of minutes.
     12 	2000 Mar 17 -current is OK. Mar 29 is NG.
     13 
     14     o	Move the RO and WIRED attribute from the pte to the pv table.
     15 	This saves four instructions in the tlb miss handler.
     16 
     17     o   Boot. Standalone boot program instead of booting the kernel directly.
     18 
     19     o   Find out why bitmap load to S3-928 flashes screen. (X server)
     20 	Know why (enable linear mode). Need S3 info.
     21 
     22     o   Can we have 32 double registers?
     23 
     24     o	64bit kernel/userland
     25 
     26     o	NEC RISCstation 2200 support
     27 
     28 	-   framebuffer?
     29 
     30 	-   interrupt handling?
     31 
     32     o	NEC RISCstation 2250 support
     33 
     34 	-   provide static storage for bus_space extent for kernel early stage
     35 
     36 	-   make PCI framebuffer as console.
     37 	    wired map framebuffer memory for kernel early stage.
     38 
     39     o	repair DeskStation support
     40 
     41 	-   requires bounce buffer bus_dma for Tyne
     42 
     43 	-   set up rPC44 wired TLB entries explicitly
     44 
     45    o	repair Algor support
     46 
     47 	-   pci/pbcpcibus.c:vtophysaddr(): pbc_version < V96X_VREV_C0 case
     48 
     49    o	sysinst
     50 
     51    o	install notes
     52 	do not forget about legal notice for pefo and openbsd.
     53 
     54    o	www: diskless HOW-TO port-arc specific part.
     55 
     56    o	Xserver
     57 
     58 	-   VXL		magnum, some RISCserver 2200
     59 	-   vga/S3	pica, Image RISCstation - OpenBSD's?
     60 	-   vga/cirrus	some RISCserver 2200
     61 	-   vga/???	DESKstation Tyne, rPC44
     62 	-   TGA		RISCserver 2250
     63 
     64    o	X clients
     65 	probably pmax binary is good enough.
     66 
     67     o	source code structure is quite obsolete,
     68 	general clean up is needed as nisimura-san suggested.
     69 	especially:
     70 
     71  	-   introduce struct platform and remove ugly ``switch (cputype)''
     72 	    in many places.
     73 
     74 	-   redesign interrupt handler framework to be flexible for
     75 	    possible variations; must be sane and useful for R4030/R4230
     76 	    'local' devices and any combinations with ISA/EISA/PCI
     77 
     78 	-   remove inb/outb
     79 
     80 	-   try to interporate HZ; may be possible for R4030/R4230 system
     81 	    or 'hardclock() by R4000' system.  Clock resolution of 100Hz
     82 	    without any interporation is substandard
     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 	based on amiga siop driver?
    174 
    175     o	audio driver
    176 
    177     o	use MI driver
    178 
    179 	-   use MI ncr53c9x driver instead of home grown asc
    180 
    181 	-   use MI bha driver instead of home grown btl
    182 
    183 	-   make fd driver MI, and share it with i386
    184 	    (contact christos about MI fd driver)
    185 
    186 	-   make pccons MI, and share it with i386,
    187 	    or simply eliminate pccons
    188 
    189 	-   LKM
    190 
    191     o	ARC boot device name -> NetBSD root device conversion
    192 
    193     o	and missing MI devices
    194 		ses?, lkm, vcoda, ...
    195 
    196     o	way to specify serial console
    197 
    198     o	bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation
    199 
    200     o	clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.
    201 
    202     o	resolve "XXX"
    203 
    204 Lots of other things.....
    205