Hi Tom,

Thanks for getting back to me

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 also 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?
Using the standalone API on platforms where we support UEFI applications
is strongly discouraged. If some part of the UEFI support in U-Boot is
lacking for your use case we strongly encourage patches adding support
for that (as we're doing right now for enhancing SPI support).


All I'm trying to do at the moment is develop a standalone program usingqemu (with -kvm) on my x86 ubuntu machineĀ  and then target a platform (riscv or arm) at a later date.

The instructions in Readme.standalone, loading at a load address of 0x40000, cause a restart of the boot process - mind you saying that, loading to a higher address (say 0x1000000) works but I'm unable to perform a 'go' as the non-relocatable standalone needs to be at 0x40000 (CONFIG_STANDALONE_LOAD_ADDR)

If you can suggest a way forward for developing a u-boot standalone on an x86 machine, I would be hugely grateful!
Thanks again

Nick


Reply via email to