Running u-boot standalone hello_world on an image partition with qemu

Lists Nick Betteridge lists.nick.betteridge at gmail.com
Fri Nov 4 11:26:19 CET 2022


Hi Simon,

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?
> 
> Is the app linked to start at that address. Could you try 'dcache off'
> before the 'go'? Do you have a debugger?
> 

The standalone Makefile sets up the start address at 0x40000 
(CONFIG_STANDALONE_LOAD_ADDR), so I'm assuming that hello_world.bin is 
correctly linked to that address.

I'm unable to even try 'dcache off' before 'go' as the 'ext4load' at 
CONFIG_STANDALONE_LOAD_ADDR causes a restart.

As I mentioned to Tom Rini, all I'm trying to do at the moment is 
develop a standalone program using u-boot and qemu on my x86 ubuntu 
machine and then target a platform (riscv or arm) at a later date.

Thanks again for your reply

Nick



More information about the U-Boot mailing list