PCI range checking under qemu-system-sparc64

Alexey Dokuchaev danfe at FreeBSD.org
Sun Sep 6 11:03:08 UTC 2015

On Sun, Jun 14, 2015 at 10:56:23PM +0100, Mark Cave-Ayland wrote:
> Got it. The module name was geom_part_vtoc8 and that was enough to
> enable me to generate a valid ISO, apply your patch and verify that the
> build works. Thank you for your help so far!
> A quick test with QEMU debugging enabled shows the following on the
> console just before the freeze:
> IN:
> 0x00000000c0590188:  st  %g1, [ %l3 + 0x8c ]
> 0x00000000c059018c:  membar  #MemIssue
> 0x00000000c0590190:  sll  %l0, 2, %g2
> 0x00000000c0590194:  ld  [ %i3 + 0x88 ], %g1
> 0x00000000c0590198:  cmp  %g2, %g1
> 0x00000000c059019c:  clr  %o0
> 0x00000000c05901a0:  movg  %icc, 1, %o0
> 0x00000000c05901a4:  call  0xc08aaee0
> (hangs)
> Examining the kernel symbols show that 0xc08aaee0 is the address of the
> cpu_idle() function which is being called from sched_idletd(). My next
> job will be to step through cpu_idle() and see if we're getting stuck in
> a loop or disappearing somewhere else.

Applying the patch (extended version in D2791) fixed the panic for me as
well (on qemu v2.4.0 built from emulators/qemu-devel port).  Kernel keeps
booting and hangs after printing "IPsec: Initialized Security Association
Processing." line, however last assembly lines in the log are different:

0x00000000c06183b8:  ldsh  [ %l3 + 0x9a ], %g1
0x00000000c06183bc:  ldsh  [ %l3 + 0x98 ], %g2
0x00000000c06183c0:  add  %g1, %g2, %l0
0x00000000c06183c4:  ld  [ %l3 + 0x88 ], %g1
0x00000000c06183c8:  cmp  %g1, 0
0x00000000c06183cc:  bne  %icc, 0xc061812c
0x00000000c06183d0:  cmp  %l0, %l1

Mark did you have any success with getting the boot process further?


More information about the freebsd-sparc64 mailing list