
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