I'm developing on an ubuntu x86 machine, trying to run the u-boot hello_world standalone application which resides on an image sd.img
which contains a partition.
I've compiled u-boot (v2022.10
) with qemu-x86_64_defconfig
I run qemu with qemu-system-x86_64 -m 1024 -nographic -bios u-boot.rom -drive format=raw,file=sd.img
u-boot starts up, doesn't find a script, doesn't detect tftp, and awaits a command. If I type ext4ls ide 0:1
, I can clearly see hello_world.bin (3932704 hello_world.bin
).
When I do a ext4load ide 0:1 0x40000 hello_world.bin
(in preparation for go 40000 This is another test
), qemu/u-boot restarts.
0x40000 is the CONFIG_STANDALONE_LOAD_ADDR
for x86.
I have even tried making an image of hello_world mkimage -n "Hello stand alone" -A x86_64 -O u-boot -T standalone -C none -a 0x40000 -d hello_world.bin -v hello_world.img
and tried to load the image into 0x40000 with the intention of using bootm
in case of cache issues - qemu/u-boot still resets.
Could anyone possibly point out the basic mistake I'm making.
Cheers
The memory area 0xa0000-0xffffff is reserved and you are overwriting it when loading your 4 MiB file to 040000 due to the excessive size of the file.
If you build hello_world.bin correctly, it will be a few kilobytes.