CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Mon Jul 5 16:59:54 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update status on S7 systems To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.43 src/sys/arch/sparc64/doc/TODO:1.44 --- src/sys/arch/sparc64/doc/TODO:1.43 Fri Jun 25 19:13:12 2021 +++ src/sys/arch/sparc64/doc/TODO Mon Jul 5 16:59:54 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.43 2021/06/25 19:13:12 palle Exp $ */ +/* $NetBSD: TODO,v 1.44 2021/07/05 16:59:54 palle Exp $ */ Things to be done: @@ -12,7 +12,7 @@ sun4u: sun4v: - current status - T5 ldom with 2 VCPU and 4GB: + T5 ldom with 2 VCPU and 4GB (primary ldom is Solaris 11.4 SRU30):: - kernel boots from miniroot.fs via ldom fisk (vdsk) - ldom virtual network interface (vnet) is working (verified by exiting sysinst and issuing a ping command) @@ -24,9 +24,8 @@ sun4v: unpacked, but the system hangs afterwards when running the makedev script. T2000 ldom with 8 VCPU and 4GB: - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) - S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30): - - during autoconfiguration of vnet devices the call to hv_vintr_setenabled() - returns error code 7 (EBADTRAP?) + S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU33): + - same status as T5 ldom - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Fri Jun 25 19:13:12 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO file with current sun4v progress To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.42 src/sys/arch/sparc64/doc/TODO:1.43 --- src/sys/arch/sparc64/doc/TODO:1.42 Sun Jun 13 17:02:14 2021 +++ src/sys/arch/sparc64/doc/TODO Fri Jun 25 19:13:12 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.42 2021/06/13 17:02:14 palle Exp $ */ +/* $NetBSD: TODO,v 1.43 2021/06/25 19:13:12 palle Exp $ */ Things to be done: @@ -20,9 +20,8 @@ sun4v: but the process crashes when selecting network installation method. The %i,%l and %o registers are corrupted, after a call to the libcurses wrefresh() function. - If the sysinst insallation source is local directory, an error in the - ldsk device driver is triggered when a DATA/NACK/DRING_DATA event is received. - The current implementation does not hande this exception properly. + If the sysinst insallation source is local directory, the sets are properly + unpacked, but the system hangs afterwards when running the makedev script. T2000 ldom with 8 VCPU and 4GB: - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30):
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Jun 13 17:02:14 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO file with current sun4v state To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.41 src/sys/arch/sparc64/doc/TODO:1.42 --- src/sys/arch/sparc64/doc/TODO:1.41 Sat Apr 3 17:02:31 2021 +++ src/sys/arch/sparc64/doc/TODO Sun Jun 13 17:02:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.41 2021/04/03 17:02:31 palle Exp $ */ +/* $NetBSD: TODO,v 1.42 2021/06/13 17:02:14 palle Exp $ */ Things to be done: @@ -17,7 +17,12 @@ sun4v: - ldom virtual network interface (vnet) is working (verified by exiting sysinst and issuing a ping command) - the sysinst tool starts, disk setup is working, - but the process crashes when selecting network installation method (trap 0x34 ALIGN is received) + but the process crashes when selecting network installation method. + The %i,%l and %o registers are corrupted, after a call to the libcurses + wrefresh() function. + If the sysinst insallation source is local directory, an error in the + ldsk device driver is triggered when a DATA/NACK/DRING_DATA event is received. + The current implementation does not hande this exception properly. T2000 ldom with 8 VCPU and 4GB: - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30):
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Apr 3 17:02:32 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: update TODO after cpu_idle() has been improved (sun4v only for now) To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.40 src/sys/arch/sparc64/doc/TODO:1.41 --- src/sys/arch/sparc64/doc/TODO:1.40 Tue Mar 30 20:23:45 2021 +++ src/sys/arch/sparc64/doc/TODO Sat Apr 3 17:02:31 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.40 2021/03/30 20:23:45 palle Exp $ */ +/* $NetBSD: TODO,v 1.41 2021/04/03 17:02:31 palle Exp $ */ Things to be done: @@ -23,7 +23,6 @@ sun4v: S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30): - during autoconfiguration of vnet devices the call to hv_vintr_setenabled() returns error code 7 (EBADTRAP?) -- idle handling - call hypervisor trap (openbsd code...??) - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Tue Mar 30 20:23:45 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO after pcb spill improvements and status when running on a S7 host To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.39 src/sys/arch/sparc64/doc/TODO:1.40 --- src/sys/arch/sparc64/doc/TODO:1.39 Tue Mar 23 19:13:46 2021 +++ src/sys/arch/sparc64/doc/TODO Tue Mar 30 20:23:45 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.39 2021/03/23 19:13:46 palle Exp $ */ +/* $NetBSD: TODO,v 1.40 2021/03/30 20:23:45 palle Exp $ */ Things to be done: @@ -17,11 +17,12 @@ sun4v: - ldom virtual network interface (vnet) is working (verified by exiting sysinst and issuing a ping command) - the sysinst tool starts, disk setup is working, - but the process crashes when selecting network installation method - (the pcbspill function in locore.s incorrectly only spills one register - window even if more than one is are present) + but the process crashes when selecting network installation method (trap 0x34 ALIGN is received) T2000 ldom with 8 VCPU and 4GB: - On this platform it crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) + - crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) + S7 ldom with 8 VCPU and 16GB (primary ldom is Solaris 11.4 SRU30): + - during autoconfiguration of vnet devices the call to hv_vintr_setenabled() + returns error code 7 (EBADTRAP?) - idle handling - call hypervisor trap (openbsd code...??) - 64-bit kernel support - 32-bit kernel support
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Tue Mar 23 19:13:46 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO with findings related to crashes in user processes (pcbspill) To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.38 src/sys/arch/sparc64/doc/TODO:1.39 --- src/sys/arch/sparc64/doc/TODO:1.38 Tue Mar 16 20:11:30 2021 +++ src/sys/arch/sparc64/doc/TODO Tue Mar 23 19:13:46 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.38 2021/03/16 20:11:30 palle Exp $ */ +/* $NetBSD: TODO,v 1.39 2021/03/23 19:13:46 palle Exp $ */ Things to be done: @@ -17,8 +17,9 @@ sun4v: - ldom virtual network interface (vnet) is working (verified by exiting sysinst and issuing a ping command) - the sysinst tool starts, disk setup is working, - but the process crashes when selecting network installtion method - (probably due to trashing of user proces registers) + but the process crashes when selecting network installation method + (the pcbspill function in locore.s incorrectly only spills one register + window even if more than one is are present) T2000 ldom with 8 VCPU and 4GB: On this platform it crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) - idle handling - call hypervisor trap (openbsd code...??)
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Tue Mar 16 20:11:30 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO - update status after hacking on ldom virtual network interfaces To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.37 src/sys/arch/sparc64/doc/TODO:1.38 --- src/sys/arch/sparc64/doc/TODO:1.37 Thu Mar 4 20:00:51 2021 +++ src/sys/arch/sparc64/doc/TODO Tue Mar 16 20:11:30 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.37 2021/03/04 20:00:51 palle Exp $ */ +/* $NetBSD: TODO,v 1.38 2021/03/16 20:11:30 palle Exp $ */ Things to be done: @@ -13,11 +13,12 @@ sun4u: sun4v: - current status T5 ldom with 2 VCPU and 4GB: - The kernel boots and starts userland when booting miniroot.fs. - The sysinst tool starts properly and is functional. - Installation is not possible, since no driver currently exists - for the ldom network interfaces, but openbsd vnet and vsw drivers are - possible to integrate and this work is progressing. + - kernel boots from miniroot.fs via ldom fisk (vdsk) + - ldom virtual network interface (vnet) is working + (verified by exiting sysinst and issuing a ping command) + - the sysinst tool starts, disk setup is working, + but the process crashes when selecting network installtion method + (probably due to trashing of user proces registers) T2000 ldom with 8 VCPU and 4GB: On this platform it crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) - idle handling - call hypervisor trap (openbsd code...??)
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Thu Mar 4 20:00:51 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO - removed leftover OpenFirmware interface comment and add comment on idle handling To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.36 src/sys/arch/sparc64/doc/TODO:1.37 --- src/sys/arch/sparc64/doc/TODO:1.36 Sat Feb 27 18:29:38 2021 +++ src/sys/arch/sparc64/doc/TODO Thu Mar 4 20:00:51 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.36 2021/02/27 18:29:38 palle Exp $ */ +/* $NetBSD: TODO,v 1.37 2021/03/04 20:00:51 palle Exp $ */ Things to be done: @@ -18,9 +18,9 @@ sun4v: Installation is not possible, since no driver currently exists for the ldom network interfaces, but openbsd vnet and vsw drivers are possible to integrate and this work is progressing. - OpenBoot (properly trashed registers). T2000 ldom with 8 VCPU and 4GB: On this platform it crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) +- idle handling - call hypervisor trap (openbsd code...??) - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Feb 27 18:29:38 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO file with OpenFirmware interface related improvements To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.35 src/sys/arch/sparc64/doc/TODO:1.36 --- src/sys/arch/sparc64/doc/TODO:1.35 Sat Feb 27 18:19:57 2021 +++ src/sys/arch/sparc64/doc/TODO Sat Feb 27 18:29:38 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.35 2021/02/27 18:19:57 palle Exp $ */ +/* $NetBSD: TODO,v 1.36 2021/02/27 18:29:38 palle Exp $ */ Things to be done: @@ -41,6 +41,19 @@ sun4v: - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly - vbus.c: handle prom_getprop() memory leaks - locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? +- openfirmware interface +bounce handlng could need rework + - only #if __arch64__ independent for SUN4V, as OF for all ultrasparcs is +plain 32bit code too (and this #if only because the point below becomes +always false otherwise) + - only bounce if the address is >= 1UL<<32 + - perhaps apply the lock to OF calls in general, not only the bounce'd ones +(in other words: let's protect the OF context with the lock, not +only the bounce buffer contents). + - Are there any other bounce-worthy OF calls? If so, apply handling + to all of them now + - consider method used by Solaris/OpenSolaris/Illumos (look for PROM_32BIT_ADDRS in + the Illumos codebase) - platforms tested so far: -- qemu sun4v/niagara - reaches the point where the kernel needs to mount a root fs -- T2000 - mmu fault somewhere
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Feb 27 18:19:57 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO file with status on sun4v - kernel and userland runs without crashing now - next up is network interfaces To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.34 src/sys/arch/sparc64/doc/TODO:1.35 --- src/sys/arch/sparc64/doc/TODO:1.34 Mon Feb 22 10:30:57 2021 +++ src/sys/arch/sparc64/doc/TODO Sat Feb 27 18:19:57 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.34 2021/02/22 10:30:57 palle Exp $ */ +/* $NetBSD: TODO,v 1.35 2021/02/27 18:19:57 palle Exp $ */ Things to be done: @@ -14,8 +14,10 @@ sun4v: - current status T5 ldom with 2 VCPU and 4GB: The kernel boots and starts userland when booting miniroot.fs. - The sysinst tool starts properly and requests terminal type. - Upon entering characters on the console, a crash occurs inside + The sysinst tool starts properly and is functional. + Installation is not possible, since no driver currently exists + for the ldom network interfaces, but openbsd vnet and vsw drivers are + possible to integrate and this work is progressing. OpenBoot (properly trashed registers). T2000 ldom with 8 VCPU and 4GB: On this platform it crashes in /sbin/init doing an access() call where %o0 is corrupted (zero)
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Mon Feb 22 10:30:57 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update current status of sun4v To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.33 src/sys/arch/sparc64/doc/TODO:1.34 --- src/sys/arch/sparc64/doc/TODO:1.33 Sun Feb 14 20:30:31 2021 +++ src/sys/arch/sparc64/doc/TODO Mon Feb 22 10:30:57 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.33 2021/02/14 20:30:31 palle Exp $ */ +/* $NetBSD: TODO,v 1.34 2021/02/22 10:30:57 palle Exp $ */ Things to be done: @@ -11,23 +11,14 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - - current status (verified on T5 ldom with 2 VCPU and 4GB): - The kernel boots and starts userland. - During the execution of the sysinst process, a sub-process crashes. - The crash happens when a call to sysctl from /bin/sh causes a mmu trap. - Part of the TRAP_SETUP() call in sun4v_datatrap issues a 'save' instruction. - Since %cansave is 0 (%canrestore is 6 and %otherwin is 0) a SPILL trap is generated. - The current code ends up in the pcbspill codepath (which is based on code from openbsd). - This code assumes that it is the register window in the OTHERWIN window that must be spilled - to the pcb. - Since %otherwin in this scenario actually is zero, we end up putting incorrect register - window values to the pcb. - So - this code should not save data to the pcb when %otherwin is 0 - it should spill the - values to the stack of the user process. Special care should be taken here, since we - may end up with a mmu fault again if the stack address is not present in the mmu, so - perhaps spilling to the physical address of the stack will work. - Time will show if this is correct... - Status on T2000 ldom with 8 VCPU and 4GB is that is crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) + - current status + T5 ldom with 2 VCPU and 4GB: + The kernel boots and starts userland when booting miniroot.fs. + The sysinst tool starts properly and requests terminal type. + Upon entering characters on the console, a crash occurs inside + OpenBoot (properly trashed registers). + T2000 ldom with 8 VCPU and 4GB: + On this platform it crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Feb 14 20:30:31 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO with status of verified systems(T2000, T5 and qemu) To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.32 src/sys/arch/sparc64/doc/TODO:1.33 --- src/sys/arch/sparc64/doc/TODO:1.32 Sun Jan 31 19:08:05 2021 +++ src/sys/arch/sparc64/doc/TODO Sun Feb 14 20:30:31 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.32 2021/01/31 19:08:05 palle Exp $ */ +/* $NetBSD: TODO,v 1.33 2021/02/14 20:30:31 palle Exp $ */ Things to be done: @@ -11,7 +11,7 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - - current status: + - current status (verified on T5 ldom with 2 VCPU and 4GB): The kernel boots and starts userland. During the execution of the sysinst process, a sub-process crashes. The crash happens when a call to sysctl from /bin/sh causes a mmu trap. @@ -27,6 +27,7 @@ sun4v: may end up with a mmu fault again if the stack address is not present in the mmu, so perhaps spilling to the physical address of the stack will work. Time will show if this is correct... + Status on T2000 ldom with 8 VCPU and 4GB is that is crashes in /sbin/init doing an access() call where %o0 is corrupted (zero) - 64-bit kernel support - 32-bit kernel support - libkvm @@ -48,6 +49,6 @@ sun4v: - vbus.c: handle prom_getprop() memory leaks - locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? - platforms tested so far: - -- qemu sun4v/niagara - crash in init process relaed to fork (stack?) + -- qemu sun4v/niagara - reaches the point where the kernel needs to mount a root fs -- T2000 - mmu fault somewhere -- T5 - stickcmpr is not properly initialized ???
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Jan 31 19:08:05 UTC 2021 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO with analysis of sun4v crashes To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.31 src/sys/arch/sparc64/doc/TODO:1.32 --- src/sys/arch/sparc64/doc/TODO:1.31 Mon Jan 4 15:13:50 2021 +++ src/sys/arch/sparc64/doc/TODO Sun Jan 31 19:08:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO,v 1.31 2021/01/04 15:13:50 skrll Exp $ */ +/* $NetBSD: TODO,v 1.32 2021/01/31 19:08:05 palle Exp $ */ Things to be done: @@ -11,9 +11,22 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - - current status: The kernel boots and starts the init process. - The following processes seem to crash on and on so more debugging to be done... - + - current status: + The kernel boots and starts userland. + During the execution of the sysinst process, a sub-process crashes. + The crash happens when a call to sysctl from /bin/sh causes a mmu trap. + Part of the TRAP_SETUP() call in sun4v_datatrap issues a 'save' instruction. + Since %cansave is 0 (%canrestore is 6 and %otherwin is 0) a SPILL trap is generated. + The current code ends up in the pcbspill codepath (which is based on code from openbsd). + This code assumes that it is the register window in the OTHERWIN window that must be spilled + to the pcb. + Since %otherwin in this scenario actually is zero, we end up putting incorrect register + window values to the pcb. + So - this code should not save data to the pcb when %otherwin is 0 - it should spill the + values to the stack of the user process. Special care should be taken here, since we + may end up with a mmu fault again if the stack address is not present in the mmu, so + perhaps spilling to the physical address of the stack will work. + Time will show if this is correct... - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: macallan Date: Fri Jan 31 06:05:00 UTC 2020 Added Files: src/sys/arch/sparc64/doc: SunFire_v210.txt Log Message: document what I found out about the v210's i2c GPIOs. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/sparc64/doc/SunFire_v210.txt Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/sys/arch/sparc64/doc/SunFire_v210.txt diff -u /dev/null src/sys/arch/sparc64/doc/SunFire_v210.txt:1.1 --- /dev/null Fri Jan 31 06:05:00 2020 +++ src/sys/arch/sparc64/doc/SunFire_v210.txt Fri Jan 31 06:05:00 2020 @@ -0,0 +1,47 @@ +This is about the i2c GPIO chips found in the Sun Fire v210, starting at +/pci/isa@7/i2c@0,320/gpio@0,44 +Input/Output assignments and levels are what the firmware leaves us with - +all LEDs off except the power one. + +All known pin functions were determined by experiment. No idea what the +undocumented pins do, if anything. + +[ 1.00] pcagpio0 at iic0 addr 0x22: PCA9555 +[ 1.00] dir: I-II +[ 1.00] lvl: X XXX +[ 1.00] dir: -O-- +[ 1.00] lvl: X + ^ +0x0400 clears when the case is open + +[ 1.00] pcagpio1 at iic0 addr 0x23: PCA9555 +[ 1.00] dir: --II +[ 1.00] lvl: +[ 1.00] dir: OO-- +[ 1.00] lvl: XX +Bit 0x0002 gets set when bay 1 is empty, I would assume 0x0001 is for bay 0. +The output bits seem to control the drive bay LEDs +0x2000 - bay 1, blue LED +0x1000 - bay 0, blue LED +0x0800 - bay 1, both LEDs orange +0x0400 - bay 0, both LEDs orange +all low active, the remaining outputs don't seem to do anything. + +[ 1.00] pcagpio2 at iic0 addr 0x34: PCA9555 +[ 1.00] dir: --II +[ 1.00] lvl: X +[ 1.00] dir: OO-- +[ 1.00] lvl: XX +clearing 0x0300 reset the machine +probably controls redundant / hot-swappable power supplies on v240. + +[ 1.00] pcagpio3 at iic0 addr 0x38: PCA9556 +[ 1.00] dir: +[ 1.00] lvl: +[ 1.00] dir: +[ 1.00] lvl: XXX +This controls the front panel LEDs +0x80 - indicator LED +0x20 - fault LED +0x10 - power LED +all low active, the remaining outputs don't seem to do anything.
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Fri Feb 8 19:55:40 UTC 2019 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update the TODO file noting (at least) some progess with sun4v To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.28 src/sys/arch/sparc64/doc/TODO:1.29 --- src/sys/arch/sparc64/doc/TODO:1.28 Mon Dec 17 20:13:46 2018 +++ src/sys/arch/sparc64/doc/TODO Fri Feb 8 19:55:40 2019 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.28 2018/12/17 20:13:46 palle Exp $ */ + /* $NetBSD: TODO,v 1.29 2019/02/08 19:55:40 palle Exp $ */ Things to be done: @@ -11,14 +11,9 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - - current status: The kernel boots and starts the init process (pid 1) - which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3) - which crashes, probably due to MMU DPROT issues. - Looks like the user process tries to write to the stack as part of a save - instruction since cansave is zero. This causes a DMMU PROT trap (0x6c) which - calls sun4v_tl0_dtsb_prot which calls sun4v_datatrap which calls TRAP_SETUP(). - This macro has code that does a save instruction, again to the user stack, - which again causes a MMU DPROT trap... + - current status: The kernel boots and starts the init process. + The following processes seem to crash on and on so more debugging to be done... + - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Mon Dec 17 20:13:46 UTC 2018 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: note what causes the kernel to crash To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.27 src/sys/arch/sparc64/doc/TODO:1.28 --- src/sys/arch/sparc64/doc/TODO:1.27 Fri Oct 5 19:53:47 2018 +++ src/sys/arch/sparc64/doc/TODO Mon Dec 17 20:13:46 2018 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.27 2018/10/05 19:53:47 palle Exp $ */ + /* $NetBSD: TODO,v 1.28 2018/12/17 20:13:46 palle Exp $ */ Things to be done: @@ -12,7 +12,13 @@ sun4u: sun4v: - current status: The kernel boots and starts the init process (pid 1) - which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3) which crashes, probably due to MMU DPROT issues. + which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3) + which crashes, probably due to MMU DPROT issues. + Looks like the user process tries to write to the stack as part of a save + instruction since cansave is zero. This causes a DMMU PROT trap (0x6c) which + calls sun4v_tl0_dtsb_prot which calls sun4v_datatrap which calls TRAP_SETUP(). + This macro has code that does a save instruction, again to the user stack, + which again causes a MMU DPROT trap... - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Fri Oct 5 19:53:47 UTC 2018 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO with proper path to sh + list tested platforms so far To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.26 src/sys/arch/sparc64/doc/TODO:1.27 --- src/sys/arch/sparc64/doc/TODO:1.26 Wed Apr 11 19:44:47 2018 +++ src/sys/arch/sparc64/doc/TODO Fri Oct 5 19:53:47 2018 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.26 2018/04/11 19:44:47 palle Exp $ */ + /* $NetBSD: TODO,v 1.27 2018/10/05 19:53:47 palle Exp $ */ Things to be done: @@ -12,7 +12,7 @@ sun4u: sun4v: - current status: The kernel boots and starts the init process (pid 1) - which spawns /bin/sh (pid 2). This is forked as a new/bin/sh (pid 3) which crashes, probably due to MMU DPROT issues. + which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3) which crashes, probably due to MMU DPROT issues. - 64-bit kernel support - 32-bit kernel support - libkvm @@ -33,4 +33,7 @@ sun4v: - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly - vbus.c: handle prom_getprop() memory leaks - locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? - + - platforms tested so far: + -- qemu sun4v/niagara - crash in init process relaed to fork (stack?) + -- T2000 - mmu fault somewhere + -- T5 - stickcmpr is not properly initialized ???
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Wed Apr 11 19:44:47 UTC 2018 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: Update TODO file with current state of sun4v support To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.25 src/sys/arch/sparc64/doc/TODO:1.26 --- src/sys/arch/sparc64/doc/TODO:1.25 Sat Feb 3 21:45:54 2018 +++ src/sys/arch/sparc64/doc/TODO Wed Apr 11 19:44:47 2018 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.25 2018/02/03 21:45:54 palle Exp $ */ + /* $NetBSD: TODO,v 1.26 2018/04/11 19:44:47 palle Exp $ */ Things to be done: @@ -11,7 +11,8 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - - current status: The kernel boots and starts the init process (syscalls are done, but crashes...) (*) + - current status: The kernel boots and starts the init process (pid 1) + which spawns /bin/sh (pid 2). This is forked as a new/bin/sh (pid 3) which crashes, probably due to MMU DPROT issues. - 64-bit kernel support - 32-bit kernel support - libkvm @@ -33,39 +34,3 @@ sun4v: - vbus.c: handle prom_getprop() memory leaks - locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? - -(*) -The current state of the code crashes in the code path after the init process -(pid 1) does a fork(), starting pid 2. -A new lwp is created and lwp_trampoline() is called which in turn calls -return_from_trap(). Here the code path continues to rft_user(). -A trap (0x68 - this is a Hyper-Priv trap...) occurs in rft_user_fault_start() -where the FILL() macro causes the trap trying to load the local register %l0 -from the stack using ASI AIUS (%o6 contains 0xcd91). -The Hyper-Priv trap 0x68 is transformed to a Priv trap 0x31, causing -sun4v_dtsb_miss() to be called, continuing to sun4v_datatrap(). -Here TRAP_SETUP() is called, -The windows registers are now: %otherwin=0, %cansave=6, canrestore=0. -Part of the TRAP_SETUP() code will do a 'save %g6, 0, %sp', -The windows registers are now: %otherwin=0, %cansave=5, canrestore=1. -TRAP_SETUP() now updates %otherwin with the values of %canrestore and clears -%canrestore, so the windows registers are now: %otherwin=1, %cansave=5, -canrestore=0. -The execution continues to data_access_fault() and further down the call stack -with function calls until %cansave reaches 0 causing a spill trap -(0xa8 - spill_2_other). The contents of the %sp register is 0xe00x. -%wstate is (octal) 26. -The windows registers are now: %otherwin=1, %cansave=0, canrestore=5. -The spill code is using ASI AIUS. spill_2_other is selected since %otherwin is -non-zero, so the index in wstate.other is 2 (spill_2_other). -SPILLBOTH() is invoked, using ASI AIUS. While storing %l0 to %sp+0x7ff -(%sp is 0xcd91) a new trap occurs, 0x68 (Hyper-priv, e.g. 0x31 Priv) -at trap level 2 causing the trap level to go to 3. This is above the mx trap -level for sun4v which is 2... -So... the first access to 0xcd91 causes a cyclic access to -0xcd91 again causing the max trap level to exceed. -hmhow to fix this.. - - - -
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Feb 3 21:45:54 UTC 2018 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: Update TODO with a detailed description of why the kernel crashes when running on sun4v systems. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.24 src/sys/arch/sparc64/doc/TODO:1.25 --- src/sys/arch/sparc64/doc/TODO:1.24 Sun Feb 19 18:30:05 2017 +++ src/sys/arch/sparc64/doc/TODO Sat Feb 3 21:45:54 2018 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.24 2017/02/19 18:30:05 palle Exp $ */ + /* $NetBSD: TODO,v 1.25 2018/02/03 21:45:54 palle Exp $ */ Things to be done: @@ -11,7 +11,7 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - - current status: The kernel boots and starts the init process (syscalls are done, but crashes...) + - current status: The kernel boots and starts the init process (syscalls are done, but crashes...) (*) - 64-bit kernel support - 32-bit kernel support - libkvm @@ -31,5 +31,41 @@ sun4v: - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly - vbus.c: handle prom_getprop() memory leaks -- locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user +- locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user? + + +(*) +The current state of the code crashes in the code path after the init process +(pid 1) does a fork(), starting pid 2. +A new lwp is created and lwp_trampoline() is called which in turn calls +return_from_trap(). Here the code path continues to rft_user(). +A trap (0x68 - this is a Hyper-Priv trap...) occurs in rft_user_fault_start() +where the FILL() macro causes the trap trying to load the local register %l0 +from the stack using ASI AIUS (%o6 contains 0xcd91). +The Hyper-Priv trap 0x68 is transformed to a Priv trap 0x31, causing +sun4v_dtsb_miss() to be called, continuing to sun4v_datatrap(). +Here TRAP_SETUP() is called, +The windows registers are now: %otherwin=0, %cansave=6, canrestore=0. +Part of the TRAP_SETUP() code will do a 'save %g6, 0, %sp', +The windows registers are now: %otherwin=0, %cansave=5, canrestore=1. +TRAP_SETUP() now updates %otherwin with the values of %canrestore and clears +%canrestore, so the windows registers are now: %otherwin=1, %cansave=5, +canrestore=0. +The execution continues to data_access_fault() and further down the call stack +with function calls until %cansave reaches 0 causing a spill trap +(0xa8 - spill_2_other). The contents of the %sp register is 0xe00x. +%wstate is (octal) 26. +The windows registers are now: %otherwin=1, %cansave=0, canrestore=5. +The spill code is using ASI AIUS. spill_2_other is selected since %otherwin is +non-zero, so the index in wstate.other is 2 (spill_2_other). +SPILLBOTH() is invoked, using ASI AIUS. While storing %l0 to %sp+0x7ff +(%sp is 0xcd91) a new trap occurs, 0x68 (Hyper-priv, e.g. 0x31 Priv) +at trap level 2 causing the trap level to go to 3. This is above the mx trap +level for sun4v which is 2... +So... the first access to 0xcd91 causes a cyclic access to +0xcd91 again causing the max trap level to exceed. +hmhow to fix this.. + + +
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Feb 19 18:30:05 UTC 2017 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: Update TODO with the status of the sun4v work so far To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.23 src/sys/arch/sparc64/doc/TODO:1.24 --- src/sys/arch/sparc64/doc/TODO:1.23 Sun Feb 19 18:27:12 2017 +++ src/sys/arch/sparc64/doc/TODO Sun Feb 19 18:30:05 2017 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.23 2017/02/19 18:27:12 palle Exp $ */ + /* $NetBSD: TODO,v 1.24 2017/02/19 18:30:05 palle Exp $ */ Things to be done: @@ -11,6 +11,7 @@ sun4u: - GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: + - current status: The kernel boots and starts the init process (syscalls are done, but crashes...) - 64-bit kernel support - 32-bit kernel support - libkvm
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Feb 19 18:27:13 UTC 2017 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: Note that the code recently added to locore.s rft_user may not be enough to make things work properly To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.22 src/sys/arch/sparc64/doc/TODO:1.23 --- src/sys/arch/sparc64/doc/TODO:1.22 Sun Feb 19 18:07:12 2017 +++ src/sys/arch/sparc64/doc/TODO Sun Feb 19 18:27:12 2017 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.22 2017/02/19 18:07:12 palle Exp $ */ + /* $NetBSD: TODO,v 1.23 2017/02/19 18:27:12 palle Exp $ */ Things to be done: @@ -30,3 +30,5 @@ sun4v: - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly - vbus.c: handle prom_getprop() memory leaks +- locore.s: rft_user (sun4v specific manaul fill) - seems to work, but is it good enough (compared to openbsds rft_user +
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Feb 19 18:07:12 UTC 2017 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: Note that prom_getprop() leaks memory in vbus.c To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.21 src/sys/arch/sparc64/doc/TODO:1.22 --- src/sys/arch/sparc64/doc/TODO:1.21 Sun Feb 5 20:08:35 2017 +++ src/sys/arch/sparc64/doc/TODO Sun Feb 19 18:07:12 2017 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.21 2017/02/05 20:08:35 palle Exp $ */ + /* $NetBSD: TODO,v 1.22 2017/02/19 18:07:12 palle Exp $ */ Things to be done: @@ -29,4 +29,4 @@ sun4v: - mpt(4) complains: mpt0: Phy 0: Link Status Unknown - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly - +- vbus.c: handle prom_getprop() memory leaks
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Feb 5 20:08:35 UTC 2017 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO list to reflect the current state - TRAP_SETUP() was adapted to handle both sun4u and sun4v systems in version 1.404 of locore.s To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.20 src/sys/arch/sparc64/doc/TODO:1.21 --- src/sys/arch/sparc64/doc/TODO:1.20 Fri Aug 19 19:02:07 2016 +++ src/sys/arch/sparc64/doc/TODO Sun Feb 5 20:08:35 2017 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.20 2016/08/19 19:02:07 palle Exp $ */ + /* $NetBSD: TODO,v 1.21 2017/02/05 20:08:35 palle Exp $ */ Things to be done: @@ -27,7 +27,6 @@ sun4v: - vpci.c/vpcivar.h: cleanup FIXMEs - interrups not handled properly (com at ebus only...) - mpt(4) complains: mpt0: Phy 0: Link Status Unknown -- locore.s: TRAP_SETUP() - sun4u specific ASI_DMMU - man pages for drivers imported from OpenBSD lke vpci, vbus, cbus, vdsk, ldc etc. - vdsk and ldc drivers: code maked with OPENBSD_BUSDMA - make the bus_dma stuff work properly
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Fri Jun 17 21:52:27 UTC 2016 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update sparc64 TODO: sun4u specfic code in TRAP_SETUP() + make a note about importing the man pages for the sun4v specific drivers To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.18 src/sys/arch/sparc64/doc/TODO:1.19 --- src/sys/arch/sparc64/doc/TODO:1.18 Sat Jun 4 21:26:26 2016 +++ src/sys/arch/sparc64/doc/TODO Fri Jun 17 21:52:27 2016 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.18 2016/06/04 21:26:26 palle Exp $ */ + /* $NetBSD: TODO,v 1.19 2016/06/17 21:52:27 palle Exp $ */ Things to be done: @@ -27,4 +27,6 @@ sun4v: - vpci.c/vpcivar.h: cleanup FIXMEs - interrups not handled properly (com at ebus only...) - mpt(4) complains: mpt0: Phy 0: Link Status Unknown -- locore.s: TRAP_SETUP() - sun4u specific ASI_DMMU \ No newline at end of file +- locore.s: TRAP_SETUP() - sun4u specific ASI_DMMU +- man pages for drivers imported from OpenBSD lke vpci, vbus etc. +
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Jun 4 21:26:26 UTC 2016 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update TODO: note that TRAP_SETUP() is stil sun4u-specific To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.17 src/sys/arch/sparc64/doc/TODO:1.18 --- src/sys/arch/sparc64/doc/TODO:1.17 Tue May 17 19:39:44 2016 +++ src/sys/arch/sparc64/doc/TODO Sat Jun 4 21:26:26 2016 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.17 2016/05/17 19:39:44 palle Exp $ */ + /* $NetBSD: TODO,v 1.18 2016/06/04 21:26:26 palle Exp $ */ Things to be done: @@ -26,4 +26,5 @@ sun4v: - MP support - currently bypassed in pmap_bootstrap() for sun4v - vpci.c/vpcivar.h: cleanup FIXMEs - interrups not handled properly (com at ebus only...) -- mpt(4) complains: mpt0: Phy 0: Link Status Unknown \ No newline at end of file +- mpt(4) complains: mpt0: Phy 0: Link Status Unknown +- locore.s: TRAP_SETUP() - sun4u specific ASI_DMMU \ No newline at end of file
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Tue May 17 19:39:44 UTC 2016 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update TODO: sun4v_datatrap handling for trap level 0 is working To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.16 src/sys/arch/sparc64/doc/TODO:1.17 --- src/sys/arch/sparc64/doc/TODO:1.16 Tue May 10 19:35:08 2016 +++ src/sys/arch/sparc64/doc/TODO Tue May 17 19:39:44 2016 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.16 2016/05/10 19:35:08 palle Exp $ */ + /* $NetBSD: TODO,v 1.17 2016/05/17 19:39:44 palle Exp $ */ Things to be done: @@ -15,7 +15,7 @@ sun4v: - 32-bit kernel support - libkvm - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 -- locore.s: sun4v_datatrap missing implementation for trap levels 0 and 1 +- locore.s: sun4v_datatrap missing implementation for trap level 1 - check build without SUN4V defined - replace relevant references to %ver with GET_MAXCWP - pmap_mp_init(): sun4v missing handling
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Tue May 10 19:35:08 UTC 2016 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update TODO: sun4v interrupts works (mostly) + note issue with mpt(4) on sun4v systems To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.15 src/sys/arch/sparc64/doc/TODO:1.16 --- src/sys/arch/sparc64/doc/TODO:1.15 Sun May 1 19:41:01 2016 +++ src/sys/arch/sparc64/doc/TODO Tue May 10 19:35:08 2016 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.15 2016/05/01 19:41:01 palle Exp $ */ + /* $NetBSD: TODO,v 1.16 2016/05/10 19:35:08 palle Exp $ */ Things to be done: @@ -25,4 +25,5 @@ sun4v: - ci_tsb_desc->td_ctxidx: -1 or 1? - MP support - currently bypassed in pmap_bootstrap() for sun4v - vpci.c/vpcivar.h: cleanup FIXMEs -- interrups not handled properly \ No newline at end of file +- interrups not handled properly (com at ebus only...) +- mpt(4) complains: mpt0: Phy 0: Link Status Unknown \ No newline at end of file
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun May 1 19:41:01 UTC 2016 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update TODO: booting from a ISO image on a sun4v system works To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.14 src/sys/arch/sparc64/doc/TODO:1.15 --- src/sys/arch/sparc64/doc/TODO:1.14 Sun Apr 17 19:54:32 2016 +++ src/sys/arch/sparc64/doc/TODO Sun May 1 19:41:01 2016 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.14 2016/04/17 19:54:32 palle Exp $ */ + /* $NetBSD: TODO,v 1.15 2016/05/01 19:41:01 palle Exp $ */ Things to be done: @@ -25,5 +25,4 @@ sun4v: - ci_tsb_desc->td_ctxidx: -1 or 1? - MP support - currently bypassed in pmap_bootstrap() for sun4v - vpci.c/vpcivar.h: cleanup FIXMEs -- "bad magic number in disk label" when booting from an .iso image - interrups not handled properly \ No newline at end of file
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Apr 17 19:54:32 UTC 2016 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update sparc64 TODO file: note issue with interrupt handling + issue when booting from iso image To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.13 src/sys/arch/sparc64/doc/TODO:1.14 --- src/sys/arch/sparc64/doc/TODO:1.13 Sun Sep 6 18:41:34 2015 +++ src/sys/arch/sparc64/doc/TODO Sun Apr 17 19:54:32 2016 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.13 2015/09/06 18:41:34 palle Exp $ */ + /* $NetBSD: TODO,v 1.14 2016/04/17 19:54:32 palle Exp $ */ Things to be done: @@ -23,5 +23,7 @@ sun4v: - replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS - sun4v tsb no need to lock... per cpu... anyway... - ci_tsb_desc->td_ctxidx: -1 or 1? -- MP support - currently bypassed in cpu_boot_secondary_processors() for sun4v +- MP support - currently bypassed in pmap_bootstrap() for sun4v - vpci.c/vpcivar.h: cleanup FIXMEs +- "bad magic number in disk label" when booting from an .iso image +- interrups not handled properly \ No newline at end of file
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Sep 6 18:41:34 UTC 2015 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Update sparc64 TODO list: pmap_calculate_colors() is now working on sun4v planforms (fixed by martin@) To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.12 src/sys/arch/sparc64/doc/TODO:1.13 --- src/sys/arch/sparc64/doc/TODO:1.12 Sat Sep 5 21:08:40 2015 +++ src/sys/arch/sparc64/doc/TODO Sun Sep 6 18:41:34 2015 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.12 2015/09/05 21:08:40 palle Exp $ */ + /* $NetBSD: TODO,v 1.13 2015/09/06 18:41:34 palle Exp $ */ Things to be done: @@ -16,9 +16,8 @@ sun4v: - libkvm - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 - locore.s: sun4v_datatrap missing implementation for trap levels 0 and 1 -- pmap.c: pmap_calculate_colors() should known about sun4v - check build without SUN4V defined -- replace relevant references til %ver with GET_MAXCWP +- replace relevant references to %ver with GET_MAXCWP - pmap_mp_init(): sun4v missing handling - replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS - replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Sep 5 21:08:40 UTC 2015 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Note that the FIXMEs in vpci.c/vpcivar.h should be cleaned up To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.11 src/sys/arch/sparc64/doc/TODO:1.12 --- src/sys/arch/sparc64/doc/TODO:1.11 Thu May 7 04:03:38 2015 +++ src/sys/arch/sparc64/doc/TODO Sat Sep 5 21:08:40 2015 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.11 2015/05/07 04:03:38 palle Exp $ */ + /* $NetBSD: TODO,v 1.12 2015/09/05 21:08:40 palle Exp $ */ Things to be done: @@ -25,3 +25,4 @@ sun4v: - sun4v tsb no need to lock... per cpu... anyway... - ci_tsb_desc->td_ctxidx: -1 or 1? - MP support - currently bypassed in cpu_boot_secondary_processors() for sun4v +- vpci.c/vpcivar.h: cleanup FIXMEs
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Wed Feb 11 04:47:11 UTC 2015 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Updated todo list with item about v445 and GENERIC.UP kernel that hangs To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.9 src/sys/arch/sparc64/doc/TODO:1.10 --- src/sys/arch/sparc64/doc/TODO:1.9 Sat Jan 24 20:17:22 2015 +++ src/sys/arch/sparc64/doc/TODO Wed Feb 11 04:47:11 2015 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.9 2015/01/24 20:17:22 palle Exp $ */ + /* $NetBSD: TODO,v 1.10 2015/02/11 04:47:11 palle Exp $ */ Things to be done: @@ -8,6 +8,7 @@ common: - change run-time checks for cpu type to function pointers sun4u: +- GENERIC.UP kernel hangs on v445 (missing interrupt?) sun4v: - 64-bit kernel support
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Mon Jan 5 11:42:19 UTC 2015 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Add reminder to change run-time cpu type checks To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.7 src/sys/arch/sparc64/doc/TODO:1.8 --- src/sys/arch/sparc64/doc/TODO:1.7 Thu Sep 4 18:55:03 2014 +++ src/sys/arch/sparc64/doc/TODO Mon Jan 5 11:42:19 2015 @@ -1,10 +1,11 @@ - /* $NetBSD: TODO,v 1.7 2014/09/04 18:55:03 palle Exp $ */ + /* $NetBSD: TODO,v 1.8 2015/01/05 11:42:19 palle Exp $ */ Things to be done: common: - make %g6 point to curcpu - make %g7 point to curlwp +- change run-time checks for cpu type to function pointers sun4u:
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Thu Sep 4 18:55:03 UTC 2014 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: update TODO list To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.6 src/sys/arch/sparc64/doc/TODO:1.7 --- src/sys/arch/sparc64/doc/TODO:1.6 Sun Jul 27 17:46:43 2014 +++ src/sys/arch/sparc64/doc/TODO Thu Sep 4 18:55:03 2014 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.6 2014/07/27 17:46:43 palle Exp $ */ + /* $NetBSD: TODO,v 1.7 2014/09/04 18:55:03 palle Exp $ */ Things to be done: @@ -19,6 +19,7 @@ sun4v: - check build without SUN4V defined - replace relevant references til %ver with GET_MAXCWP - pmap_mp_init(): sun4v missing handling -- cpu_pmap_prepare: sun4v multi??? - replace constructs like wrpr %g0, PSTATE_KERN, %pstate with NORMAL_GLOBALS - replace constructs line wrpr %g0, PSTATE_INTR, %pstate with ALTERNATE_GOBALS +- sun4v tsb no need to lock... per cpu... anyway... +- ci_tsb_desc-td_ctxidx: -1 or 1?
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sun Jul 27 17:46:43 UTC 2014 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: Update TODO list with relevant sun4v stuff To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.5 src/sys/arch/sparc64/doc/TODO:1.6 --- src/sys/arch/sparc64/doc/TODO:1.5 Mon Jun 30 12:59:48 2014 +++ src/sys/arch/sparc64/doc/TODO Sun Jul 27 17:46:43 2014 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.5 2014/06/30 12:59:48 palle Exp $ */ + /* $NetBSD: TODO,v 1.6 2014/07/27 17:46:43 palle Exp $ */ Things to be done: @@ -18,3 +18,7 @@ sun4v: - cpu.c: cpu_attach() does not emit cache info on sun4v - check build without SUN4V defined - replace relevant references til %ver with GET_MAXCWP +- pmap_mp_init(): sun4v missing handling +- cpu_pmap_prepare: sun4v multi??? +- replace constructs like wrpr %g0, PSTATE_KERN, %pstate with NORMAL_GLOBALS +- replace constructs line wrpr %g0, PSTATE_INTR, %pstate with ALTERNATE_GOBALS
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Thu Jun 5 19:49:04 UTC 2014 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: sun4v: note missing handling in cpu_match() To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.3 src/sys/arch/sparc64/doc/TODO:1.4 --- src/sys/arch/sparc64/doc/TODO:1.3 Sat May 31 18:27:03 2014 +++ src/sys/arch/sparc64/doc/TODO Thu Jun 5 19:49:04 2014 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.3 2014/05/31 18:27:03 palle Exp $ */ + /* $NetBSD: TODO,v 1.4 2014/06/05 19:49:04 palle Exp $ */ Things to be done: @@ -11,3 +11,4 @@ sun4v: - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 - locore.s: sun4v_datatrap missing implementation for trap levels 0 and 1 - pmap.c: pmap_calculate_colors() should known about sun4v +- cpu.c: cpu_attach() does not emit cache info on sun4v
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat May 31 18:27:03 UTC 2014 Modified Files: src/sys/arch/sparc64/doc: TODO Log Message: Updated TODO with relevant things to fix on sun4v To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/doc/TODO diff -u src/sys/arch/sparc64/doc/TODO:1.2 src/sys/arch/sparc64/doc/TODO:1.3 --- src/sys/arch/sparc64/doc/TODO:1.2 Fri Feb 21 18:00:09 2014 +++ src/sys/arch/sparc64/doc/TODO Sat May 31 18:27:03 2014 @@ -1,4 +1,4 @@ - /* $NetBSD: TODO,v 1.2 2014/02/21 18:00:09 palle Exp $ */ + /* $NetBSD: TODO,v 1.3 2014/05/31 18:27:03 palle Exp $ */ Things to be done: @@ -9,4 +9,5 @@ sun4v: - 32-bit kernel support - libkvm - ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 -- sun4v_datatrap: missing implementation +- locore.s: sun4v_datatrap missing implementation for trap levels 0 and 1 +- pmap.c: pmap_calculate_colors() should known about sun4v
CVS commit: src/sys/arch/sparc64/doc
Module Name:src Committed By: palle Date: Sat Jan 25 19:07:25 UTC 2014 Added Files: src/sys/arch/sparc64/doc: TODO Log Message: Add a TODO file to document things to be done for the sparc64 port To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/sparc64/doc/TODO Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/sys/arch/sparc64/doc/TODO diff -u /dev/null src/sys/arch/sparc64/doc/TODO:1.1 --- /dev/null Sat Jan 25 19:07:25 2014 +++ src/sys/arch/sparc64/doc/TODO Sat Jan 25 19:07:25 2014 @@ -0,0 +1,9 @@ + /* $NetBSD: TODO,v 1.1 2014/01/25 19:07:25 palle Exp $ */ + +Things to be done: + +sun4u: + +sun4v: +- 64-bit kernel support +- 32-bit kernel support