Bare metal on VIM1S board

Hello khadas community,

I was trying for a while now to run a custom u-boot.bin (include go cmd) on the vim1s board but without success. here is what I tried until now with the board in ‘upgrade mode’.

  • In the u-boot installed initially there is no go command. so i can’t jump to my code that I downloaded throught tftp at default address 0x20000.
  • I flashed the last official android image through adnl_burn_pkg. but this one, not only does not contain go command but also tftp so i tried tftpboot (even though the binary is not executed, it is at least written to memory).
  • Since I already flashed a new image with adnl_burn_pkg, I decided to upacked the same image and packed again with only my binary in. But there is a little documentation about how all this work and I was just changing things blindly.
  • adnl -p bootloader -r 1 and many other partition names , all gives me “unknown command” error message.

Is there a way to just copy my binary.bin to memory and jump to it.

Hello @pawfi

You can try the u-boot commands below to upgrade the u-boot. But we suggest you to use the Ubuntu images:

setenv ipaddr x.x.x.x
setenv serverip x.x.x.x
tftp 1080000 u-boot.bin.signed
store boot_write bootloader 1080000 $filesize

Hi numbqq
glad you mentioned “.signed” postfix in your command. Because that what the documentation recommended without saying how to generate a signed u-boot anywhere. But since my first goal was not security, I skipped looking into it.

I think that my attempt for flashing unsigned img failed because of that.
do you have any reference on how I could easily generate this signed u-boot blob before trying the example you give me ?

NB:I am browsing the source code right now trying to figure out how efuse is used and where the public key used for verification is stored

Check here about how the u-boot is generated: