summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/kvm/1596832
blob: e2d4858f405226b293ff0148278a6140ce2b13e2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
e500 -bios/-kernel broken with big images

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)