e500 -bios/-kernel broken with big images

Bug #1596832 reported by Andrej Krutak on 2016-06-28
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Undecided
Unassigned

Bug Description

This is tested using qemu 2.4.1, but it looks like the code qemu/hw/ppc/e500.c has not changed since. This looks like the source of the problem: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=3812c71ffaa2cf733c3087792b859fef30b7545f

What works:
----------

Basic invocation qemu-system-ppc -machine ppce500 -monitor stdio -bios u-boot.e500 works, I get the uboot prompt and this:

(qemu) info roms
addr=0000000000f00000 size=0x044b8c mem=ram name="phdr #0: .../qemu/share/qemu/u-boot.e500"
addr=0000000000f81000 size=0x006b00 mem=ram name="phdr #1: .../qemu/share/qemu/u-boot.e500"

Passing u-boot.e500 image as kernel (-bios u-boot.e500 -kernel u-boot.e500) appears to work, $qemu_kernel_addr is filled in, though (as expected) uboot complains about the image format.

(qemu) info roms
addr=0000000000f00000 size=0x044b8c mem=ram name="phdr #0: .../qemu/share/qemu/u-boot.e500"
addr=0000000000f81000 size=0x006b00 mem=ram name="phdr #1: .../qemu/share/qemu/u-boot.e500"
addr=0000000002000000 size=0x054e8c mem=ram name=".../qemu/share/qemu/u-boot.e500

What doesn't work:
-----------------

However, once I try to load a big image (>=32 MiB), uboot doesn't even show anything:

qemu-system-ppc -machine ppce500 -monitor stdio -bios u-boot.e500 -kernel boot/vmlinux -m 1024

(qemu) info roms
addr=0000000000f00000 size=0x044b8c mem=ram name="phdr #0: .../qemu/share/qemu/u-boot.e500"
addr=0000000000f81000 size=0x006b00 mem=ram name="phdr #1: .../qemu/share/qemu/u-boot.e500"
addr=0000000002000000 size=0x27aeedc mem=ram name="boot/vmlinux"

...
(gdb) bt
#0 0x00f2efcc in ?? ()
#1 0x00f31554 in ?? ()
#2 0x00f03f4c in ?? ()
#3 0x00f04458 in ?? ()
#4 0x00f028dc in ?? ()
#5 0x00f01080 in ?? ()

The thing is, this used to work +- before the commit, where I'd just pass the image as -kernel option, and it booted.

If I do that now (w/o the -bios option, using the exact same image), the kernel gets loaded twice, only at different addresses (the cause is obvious from the commit), causing overlap error:

qemu-system-ppc -machine ppce500 -monitor stdio -kernel boot/vmlinux -m 1024
QEMU 2.4.1 monitor - type 'help' for more information
(qemu) rom: requested regions overlap (rom boot/vmlinux. free=0x00000000027492fc, addr=0x0000000002000000)

Tags: ppc Edit Tag help
Thomas Huth (th-huth) on 2016-06-28
tags: added: ppc
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers