[Bug 292494] powerpc64: booting qemu + mac99 results in crash (kernel DSI write trap) after panic: witness_save: witness_cold

[email protected] Sun, 18 Jan 2026 02:54:37 +0000
Newsgroups gmane.os.freebsd.devel.ppc
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292494

--- Comment #2 from Adrian Chadd <[email protected]> ---
ok, I had to cross the startup to direct map path, which required loading the
symbols into gdb in two places:

 (kgdb) add-symbol-file
../freebsd-obj-ppc64/data/1/adrian/freebsd/freebsd-src-ppc64/powerpc.powerpc64/sys/GENERIC64/kernel.debug
0xc000000000101000

and here's where I've gotten it just before it craps out:

```
(kgdb) bt
#0  ofw_sprg_prepare ()
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/ofw/ofw_machdep.c:135
         f
#1  openfirmware_core (args=0x1c0ea30 <ofw_real_map.emergency_buffer+8>)
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/ofw/ofw_machdep.c:719
#2  0xc000000000e46b34 in ofw_real_peer (ofw=<optimized out>, node=<optimized
out>)
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/ofw/ofw_real.c:452
#3  0xc00000000058dc20 in OFW_PEER (_ofw=0xc00000000193dd28, _node=26467624) at
./ofw_if.h:59
#4  OF_peer (node=0)
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/dev/ofw/openfirm.c:336
#5  0xc000000000e57d88 in powermac_smp_first_cpu (plat=<optimized out>,
cpuref=0xc00800000000c8a0)
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/powermac/platform_powermac.c:269
#6  0xc000000000e8126c in PLATFORM_SMP_FIRST_CPU (_plat=0xc000000001d188d8, 
    _cpuref=<optimized out>) at ./platform_if.h:176
#7  platform_smp_first_cpu (cpu=0xc00800000000c8a0)
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/powerpc/platform.c:271
#8  0xc000000000e7bf44 in cpu_mp_setmaxid ()
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/powerpc/mp_machdep.c:122
#9  0xc00000000091c24c in mp_setmaxid (dummy=<optimized out>)
    at /home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/kern/subr_smp.c:138
                   o
#10 0xc0000000007e3904 in mi_startup ()
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/kern/init_main.c:316
#11 0xc000000000101608 in __start ()
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/aim/locore64.S:201
(kgdb) step                                                                     
129             __asm __volatile("mtsprg1 %0\n\t"
(kgdb) 
openfirmware_core (args=0x1c0ea30 <ofw_real_map.emergency_buffer+8>)            
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/ofw/ofw_machdep.c:722
         f
722             ofw_save_trap_vec(save_trap_of);
(kgdb) 
ofw_save_trap_vec (save_trap_vec=<optimized out>)                              
                   f
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/ofw/ofw_machdep.c:94
94              if (!ofw_real_mode || !hw_direct_map)
(kgdb)                                                                         
                   f
openfirmware_core (args=<optimized out>)
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/powerpc/ofw/ofw_machdep.c:737
737             result = ofwcall(args);
(kgdb) 

Program received signal SIGINT, Interrupt.
ofwfb_bitblt_bitmap (vd=<optimized out>, vw=<optimized out>,
pattern=0xc0000000017b251a "00", 
    mask=0x0, width=<optimized out>, height=<optimized out>, x=<optimized out>, 
    y=<optimized out>, fg=0 '\000', bg=228 '\344')
    at
/home/adrian/work/freebsd/head/freebsd-src-ppc64/sys/dev/vt/hw/ofwfb/ofwfb.c:218
218                                             b <<= 1;
```

So it looks like it does the ofwcall() and gets an exception in there.

-- 
You are receiving this mail because:
You are the assignee for the bug.