TODO revision 1.32
1/* $NetBSD: TODO,v 1.32 2021/01/31 19:08:05 palle Exp $ */ 2 3Things to be done: 4 5common: 6- make %g6 point to curcpu 7- make %g7 point to curlwp 8- change run-time checks for cpu type to function pointers 9 10sun4u: 11- GENERIC.UP kernel hangs on v445 (missing interrupt?) 12 13sun4v: 14 - current status: 15 The kernel boots and starts userland. 16 During the execution of the sysinst process, a sub-process crashes. 17 The crash happens when a call to sysctl from /bin/sh causes a mmu trap. 18 Part of the TRAP_SETUP() call in sun4v_datatrap issues a 'save' instruction. 19 Since %cansave is 0 (%canrestore is 6 and %otherwin is 0) a SPILL trap is generated. 20 The current code ends up in the pcbspill codepath (which is based on code from openbsd). 21 This code assumes that it is the register window in the OTHERWIN window that must be spilled 22 to the pcb. 23 Since %otherwin in this scenario actually is zero, we end up putting incorrect register 24 window values to the pcb. 25 So - this code should not save data to the pcb when %otherwin is 0 - it should spill the 26 values to the stack of the user process. Special care should be taken here, since we 27 may end up with a mmu fault again if the stack address is not present in the mmu, so 28 perhaps spilling to the physical address of the stack will work. 29 Time will show if this is correct... 30- 64-bit kernel support 31- 32-bit kernel support 32- libkvm 33- ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 34- locore.s: sun4v_datatrap missing implementation for trap level 1 35- check build without SUN4V defined 36- replace relevant references to %ver with GET_MAXCWP 37- pmap_mp_init(): sun4v missing handling 38- replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS 39- replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS 40- sun4v tsb no need to lock... per cpu... anyway... 41- ci_tsb_desc->td_ctxidx: -1 or 1? 42- MP support - currently bypassed in pmap_bootstrap() for sun4v 43- vpci.c/vpcivar.h: cleanup FIXMEs 44- interrupts not handled properly (com at ebus only...) 45- mpt(4) complains: mpt0: Phy 0: Link Status Unknown 46- man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. 47- vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly 48- vbus.c: handle prom_getprop() memory leaks 49- locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? 50 - platforms tested so far: 51 -- qemu sun4v/niagara - crash in init process relaed to fork (stack?) 52 -- T2000 - mmu fault somewhere 53 -- T5 - stickcmpr is not properly initialized ??? 54