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

Andreas Färber andreas.faerber at web.de
Thu May 19 08:00:53 CEST 2011


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
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR  
PURPOSE.

../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.
Expected: OpenBIOS banner and > prompt
Observed: DSI exception on mtmsrd, no serial output

(The regression on ppc32 AIX observed by Kenneth seems to be a  
different issue, introduced earlier.)

http://repo.or.cz/w/openbios/afaerber.git/blob/0a228f974d3325bcfb7c97d62bf69fd97908b764:/arch/ppc/qemu/ofmem.c#l494

Blob attached.

Andreas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: openbios-qemu.elf.nostrip.zip
Type: application/zip
Size: 354124 bytes
Desc: not available
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20110519/4265edd9/attachment-0001.zip>
-------------- next part --------------



More information about the OpenBIOS mailing list