Home | History | Annotate | Line # | Download | only in arc
TODO revision 1.11
      1 $NetBSD: TODO,v 1.11 2000/06/09 05:06:25 soda Exp $
      2 
      3 To 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 
    198 Lots of other things.....
    199