TODO revision 1.40
11.40Spalle/* $NetBSD: TODO,v 1.40 2021/03/30 20:23:45 palle Exp $ */ 21.1Spalle 31.1SpalleThings to be done: 41.1Spalle 51.5Spallecommon: 61.5Spalle- make %g6 point to curcpu 71.5Spalle- make %g7 point to curlwp 81.8Spalle- change run-time checks for cpu type to function pointers 91.5Spalle 101.1Spallesun4u: 111.10Spalle- GENERIC.UP kernel hangs on v445 (missing interrupt?) 121.1Spalle 131.1Spallesun4v: 141.34Spalle - current status 151.34Spalle T5 ldom with 2 VCPU and 4GB: 161.38Spalle - kernel boots from miniroot.fs via ldom fisk (vdsk) 171.38Spalle - ldom virtual network interface (vnet) is working 181.38Spalle (verified by exiting sysinst and issuing a ping command) 191.38Spalle - the sysinst tool starts, disk setup is working, 201.40Spalle but the process crashes when selecting network installation method (trap 0x34 ALIGN is received) 211.34Spalle T2000 ldom with 8 VCPU and 4GB: 221.40Spalle - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) 231.40Spalle S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30): 241.40Spalle - during autoconfiguration of vnet devices the call to hv_vintr_setenabled() 251.40Spalle returns error code 7 (EBADTRAP?) 261.37Spalle- idle handling - call hypervisor trap (openbsd code...??) 271.1Spalle- 64-bit kernel support 281.1Spalle- 32-bit kernel support 291.2Spalle- libkvm 301.2Spalle- ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 311.17Spalle- locore.s: sun4v_datatrap missing implementation for trap level 1 321.5Spalle- check build without SUN4V defined 331.13Spalle- replace relevant references to %ver with GET_MAXCWP 341.6Spalle- pmap_mp_init(): sun4v missing handling 351.6Spalle- replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS 361.6Spalle- replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS 371.7Spalle- sun4v tsb no need to lock... per cpu... anyway... 381.7Spalle- ci_tsb_desc->td_ctxidx: -1 or 1? 391.14Spalle- MP support - currently bypassed in pmap_bootstrap() for sun4v 401.12Spalle- vpci.c/vpcivar.h: cleanup FIXMEs 411.30Sskrll- interrupts not handled properly (com at ebus only...) 421.18Spalle- mpt(4) complains: mpt0: Phy 0: Link Status Unknown 431.20Spalle- man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. 441.20Spalle- vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly 451.22Spalle- vbus.c: handle prom_getprop() memory leaks 461.25Spalle- locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? 471.36Spalle- openfirmware interface 481.36Spalle bounce handlng could need rework 491.36Spalle - only #if __arch64__ independent for SUN4V, as OF for all ultrasparcs is 501.36Spalle plain 32bit code too (and this #if only because the point below becomes 511.36Spalle always false otherwise) 521.36Spalle - only bounce if the address is >= 1UL<<32 531.36Spalle - perhaps apply the lock to OF calls in general, not only the bounce'd ones 541.36Spalle (in other words: let's protect the OF context with the lock, not 551.36Spalle only the bounce buffer contents). 561.36Spalle - Are there any other bounce-worthy OF calls? If so, apply handling 571.36Spalle to all of them now 581.36Spalle - consider method used by Solaris/OpenSolaris/Illumos (look for PROM_32BIT_ADDRS in 591.36Spalle the Illumos codebase) 601.27Spalle - platforms tested so far: 611.33Spalle -- qemu sun4v/niagara - reaches the point where the kernel needs to mount a root fs 621.27Spalle -- T2000 - mmu fault somewhere 631.27Spalle -- T5 - stickcmpr is not properly initialized ??? 64