[OpenBIOS] [Qemu-devel] [PATCH 01/27] Clean up PowerPC SLB handling code

Andreas Färber andreas.faerber at web.de
Thu May 19 10:25:04 CEST 2011

QEMU HEAD still uses a 32-bit binary for both 32-bit and 64-bit. That one uses mtsrin so will need the compatibility, it seemed affected, too.

OpenBIOS SVN HEAD (blob) uses slb* as linked to. We're in the preparation of 1.1 and I need to test it before we can update the QEMU binary. ;)

Sorry for top-posting, Android sucks.


David Gibson <david at gibson.dropbear.id.au> schrieb:

>On Thu, May 19, 2011 at 08:00:53AM +0200, Andreas Färber wrote:
>> Am 19.05.2011 um 07:39 schrieb David Gibson:
>> >On Thu, May 19, 2011 at 07:35:30AM +0200, Andreas Färber wrote:
>> >>Am 25.03.2011 um 04:21 schrieb David Gibson:
>> >>
>> >>>Currently the SLB information when emulating a PowerPC 970 is
>> >>>storeed in a structure with the unhelpfully named fields 'tmp'
>> >>>and 'tmp64'.  While the layout in these fields does match the
>> >>>description of the SLB in the architecture document, it is not
>> >>>convenient either for looking up the SLB, or for emulating the
>> >>>slbmte instruction.
>> >>>
>> >>>This patch, therefore, reorganizes the SLB entry structure to be
>> >>>divided in the the "ESID related" and "VSID related" fields as
>> >>>they are divided in instructions accessing the SLB.
>> >>>
>> >>>In addition to making the code smaller and more readable, this will
>> >>>make it easier to implement for the 1TB segments used in more
>> >>>recent PowerPC chips.
>> >>>
>> >>>Signed-off-by: David Gibson <dwg at au1.ibm.com>
>> >>
>> >>According to my bisect, this patch broke ppc64 OpenBIOS.
>> >>
>> >>David, would you please take a look?
>> >
>> >Uh, sure.  can you describe the symptoms of the breakage, and the
>> >exact qemu setup you've observed the problem with?
>> $ uname -a
>> Darwin PMG5-3.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15
>> 16:57:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh
>> # Mac OS X 10.5.8 on dual-core G5
>> $ gcc-4.2 --version
>> powerpc-apple-darwin9-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5577)
>> Copyright (C) 2007 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.  There
>> is NO
>> ../qemu/configure --prefix=/Users/andreas/QEMU/latest64 \
>> --target-list=ppc-softmmu,ppc64-softmmu \
>> --extra-cflags="-arch ppc64" --extra-ldflags="-arch ppc64" --cc=gcc-4.2
>> --host-cc=gcc-4.2 \
>> --enable-cocoa --disable-kvm --disable-strip --disable-docs
>> --enable-io-thread $*
>> # I/O thread doesn't matter
>> /Users/andreas/QEMU/qemu64/ppc64-softmmu/qemu-system-ppc64 -boot d -cdrom
>> /Users/andreas/QEMU/AIX/dvd.1022A4_OBETA_710.iso \
>> -bios /Users/andreas/QEMU/OpenBIOS/openbios/obj-ppc64/openbios-qemu.elf
>> -m 1024 \
>> -M mac99 -prom-env 'auto-boot?=false' -nographic
>> CD should be irrelevant, -boot c -hda /dev/null should work the same.
>Um, yeah, I thought putting an AIX dvd into a Mac was a bit odd.
>> Expected: OpenBIOS banner and > prompt
>> Observed: DSI exception on mtmsrd, no serial output
>Does this happen only with your openbios image, or does it also happen
>with the one included in qemu?
>My working theory is that openbios is using the old 32-64 bridge stuff
>where segment register accesses are emulated to populate certain SLB
>slots.  I have a vague recollection that I saw the code implementing
>that when I was doing the cleanup and convinced myself it was not
>necessary.  More information as I investigate further.
>> (The regression on ppc32 AIX observed by Kenneth seems to be a
>> different issue, introduced earlier.)
>I don't know what that regression is; I don't read qemu-devel
>exhaustively.  If you want my attention, best to CC me directly.
>David Gibson			| I'll have my music baroque, and my code
>david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
>				| _way_ _around_!

More information about the OpenBIOS mailing list