Home | History | Annotate | Line # | Download | only in doc
TODO revision 1.42
      1 /* $NetBSD: TODO,v 1.42 2021/06/13 17:02:14 palle Exp $ */
      2 
      3 Things to be done:
      4 
      5 common:
      6 - make %g6 point to curcpu
      7 - make %g7 point to curlwp
      8 - change run-time checks for cpu type to function pointers
      9 
     10 sun4u:
     11 - GENERIC.UP kernel hangs on v445 (missing interrupt?)
     12 
     13 sun4v:
     14  - current status
     15      T5 ldom with 2 VCPU and 4GB:
     16        - kernel boots from miniroot.fs via ldom fisk (vdsk)
     17 	   - ldom virtual network interface (vnet) is working
     18 	     (verified by exiting sysinst and issuing a ping command)
     19 	   - the sysinst tool starts, disk setup is working,
     20 	     but the process crashes when selecting network installation method.
     21 		 The %i,%l and %o registers are corrupted, after a call to the libcurses
     22 		 wrefresh() function.
     23 		 If the sysinst insallation source is local directory, an error in the
     24 		 ldsk device driver is triggered when a DATA/NACK/DRING_DATA event is received.
     25 		 The current implementation does not hande this exception properly.
     26 	 T2000 ldom with 8 VCPU and 4GB:
     27 	   - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero)
     28 	 S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30):
     29 	   - during autoconfiguration of vnet devices the call to hv_vintr_setenabled()
     30 	     returns error code 7 (EBADTRAP?)
     31 - 64-bit kernel support
     32 - 32-bit kernel support
     33 - libkvm
     34 - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64
     35 - locore.s: sun4v_datatrap missing implementation for trap level 1
     36 - check build without SUN4V defined
     37 - replace relevant references to %ver with GET_MAXCWP
     38 - pmap_mp_init(): sun4v missing handling
     39 - replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS
     40 - replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS
     41 - sun4v tsb no need to lock... per cpu... anyway...
     42 - ci_tsb_desc->td_ctxidx: -1 or 1?
     43 - MP support - currently bypassed in pmap_bootstrap() for sun4v
     44 - vpci.c/vpcivar.h: cleanup FIXMEs
     45 - interrupts not handled properly (com at ebus only...)
     46 - mpt(4) complains: mpt0: Phy 0: Link Status Unknown
     47 - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc.
     48 - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly
     49 - vbus.c: handle prom_getprop() memory leaks
     50 - locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user?
     51 - openfirmware interface
     52     bounce handlng could need rework
     53       - only #if __arch64__ independent for SUN4V, as OF for all ultrasparcs is
     54         plain 32bit code too (and this #if only because the point below becomes
     55         always false otherwise)
     56       - only bounce if the address is >= 1UL<<32
     57       - perhaps apply the lock to OF calls in general, not only the bounce'd ones
     58         (in other words: let's protect the OF context with the lock, not
     59         only the bounce buffer contents).
     60 	  - Are there any other bounce-worthy OF calls? If so, apply handling
     61 	    to all of them now
     62       - consider method used by Solaris/OpenSolaris/Illumos (look for PROM_32BIT_ADDRS in
     63 	    the Illumos codebase)
     64  - platforms tested so far:
     65  -- qemu sun4v/niagara - reaches the point where the kernel needs to mount a root fs
     66  -- T2000 - mmu fault somewhere
     67  -- T5 - stickcmpr is not properly initialized ???
     68