TODO revision 1.41 1 /* $NetBSD: TODO,v 1.41 2021/04/03 17:02:31 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 (trap 0x34 ALIGN is received)
21 T2000 ldom with 8 VCPU and 4GB:
22 - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero)
23 S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30):
24 - during autoconfiguration of vnet devices the call to hv_vintr_setenabled()
25 returns error code 7 (EBADTRAP?)
26 - 64-bit kernel support
27 - 32-bit kernel support
28 - libkvm
29 - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64
30 - locore.s: sun4v_datatrap missing implementation for trap level 1
31 - check build without SUN4V defined
32 - replace relevant references to %ver with GET_MAXCWP
33 - pmap_mp_init(): sun4v missing handling
34 - replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS
35 - replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS
36 - sun4v tsb no need to lock... per cpu... anyway...
37 - ci_tsb_desc->td_ctxidx: -1 or 1?
38 - MP support - currently bypassed in pmap_bootstrap() for sun4v
39 - vpci.c/vpcivar.h: cleanup FIXMEs
40 - interrupts not handled properly (com at ebus only...)
41 - mpt(4) complains: mpt0: Phy 0: Link Status Unknown
42 - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc.
43 - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly
44 - vbus.c: handle prom_getprop() memory leaks
45 - locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user?
46 - openfirmware interface
47 bounce handlng could need rework
48 - only #if __arch64__ independent for SUN4V, as OF for all ultrasparcs is
49 plain 32bit code too (and this #if only because the point below becomes
50 always false otherwise)
51 - only bounce if the address is >= 1UL<<32
52 - perhaps apply the lock to OF calls in general, not only the bounce'd ones
53 (in other words: let's protect the OF context with the lock, not
54 only the bounce buffer contents).
55 - Are there any other bounce-worthy OF calls? If so, apply handling
56 to all of them now
57 - consider method used by Solaris/OpenSolaris/Illumos (look for PROM_32BIT_ADDRS in
58 the Illumos codebase)
59 - platforms tested so far:
60 -- qemu sun4v/niagara - reaches the point where the kernel needs to mount a root fs
61 -- T2000 - mmu fault somewhere
62 -- T5 - stickcmpr is not properly initialized ???
63