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