1 1.49 andvar /* $NetBSD: TODO,v 1.49 2025/09/07 21:31:21 andvar Exp $ */ 2 1.1 palle 3 1.1 palle Things to be done: 4 1.1 palle 5 1.5 palle common: 6 1.5 palle - make %g6 point to curcpu 7 1.5 palle - make %g7 point to curlwp 8 1.8 palle - change run-time checks for cpu type to function pointers 9 1.5 palle 10 1.1 palle sun4u: 11 1.10 palle - GENERIC.UP kernel hangs on v445 (missing interrupt?) 12 1.1 palle 13 1.1 palle sun4v: 14 1.34 palle - current status 15 1.44 palle T5 ldom with 2 VCPU and 4GB (primary ldom is Solaris 11.4 SRU30):: 16 1.45 palle - kernel boots from miniroot.fs via ldom disk (vdsk) 17 1.38 palle - ldom virtual network interface (vnet) is working 18 1.38 palle (verified by exiting sysinst and issuing a ping command) 19 1.45 palle - the sysinst tool starts, disk setup is working, network configuration is working, 20 1.45 palle but after the selected (minimal) sets have been downloaded and installed 21 1.46 andvar the 'sh MAKEDEV all' command hangs. 22 1.34 palle T2000 ldom with 8 VCPU and 4GB: 23 1.40 palle - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) 24 1.47 palle - device pci/ebus/com failes to enable interrupts (hv_intr_settarget() fails returning 6) 25 1.44 palle S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU33): 26 1.44 palle - same status as T5 ldom 27 1.1 palle - 64-bit kernel support 28 1.1 palle - 32-bit kernel support 29 1.2 palle - libkvm 30 1.2 palle - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 31 1.17 palle - locore.s: sun4v_datatrap missing implementation for trap level 1 32 1.5 palle - check build without SUN4V defined 33 1.13 palle - replace relevant references to %ver with GET_MAXCWP 34 1.6 palle - pmap_mp_init(): sun4v missing handling 35 1.6 palle - replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS 36 1.6 palle - replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS 37 1.7 palle - sun4v tsb no need to lock... per cpu... anyway... 38 1.7 palle - ci_tsb_desc->td_ctxidx: -1 or 1? 39 1.14 palle - MP support - currently bypassed in pmap_bootstrap() for sun4v 40 1.12 palle - vpci.c/vpcivar.h: cleanup FIXMEs 41 1.30 skrll - interrupts not handled properly (com at ebus only...) 42 1.18 palle - mpt(4) complains: mpt0: Phy 0: Link Status Unknown 43 1.20 palle - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. 44 1.48 andvar - vdsk and ldc drivers: code marked with OPENBSD_BUSDMA - make the bus_dma stuff work properly 45 1.22 palle - vbus.c: handle prom_getprop() memory leaks 46 1.46 andvar - locore.s: rft_user (sun4v specific manual fill) - seems to work, but is it good enough (compared to openbsds rft_user? 47 1.36 palle - openfirmware interface 48 1.49 andvar bounce handling could need rework 49 1.36 palle - only #if __arch64__ independent for SUN4V, as OF for all ultrasparcs is 50 1.36 palle plain 32bit code too (and this #if only because the point below becomes 51 1.36 palle always false otherwise) 52 1.36 palle - only bounce if the address is >= 1UL<<32 53 1.36 palle - perhaps apply the lock to OF calls in general, not only the bounce'd ones 54 1.36 palle (in other words: let's protect the OF context with the lock, not 55 1.36 palle only the bounce buffer contents). 56 1.36 palle - Are there any other bounce-worthy OF calls? If so, apply handling 57 1.36 palle to all of them now 58 1.36 palle - consider method used by Solaris/OpenSolaris/Illumos (look for PROM_32BIT_ADDRS in 59 1.36 palle the Illumos codebase) 60 1.27 palle - platforms tested so far: 61 1.33 palle -- qemu sun4v/niagara - reaches the point where the kernel needs to mount a root fs 62 1.27 palle -- T2000 - mmu fault somewhere 63 1.27 palle -- T5 - stickcmpr is not properly initialized ??? 64