I try to run coreboot + opensbi + linux kernel on HiFive Unleashed and separate 
hardware-initiated code for a simpler upgrade. To do this, a loader called 
riscv-gptl was added to load opensbi and linux from the sdcard and run as a 
coreboot payload.

However, I have encountered a strange problem. After running the specific 
firmware, I ran the normal firmware again (without re-powering) and the normal 
firmware could run. The button reset has no effect and cannot be runned after 
power-on again.

normal firmware, please refer to 
https://github.com/hardenedlinux/embedded-iot_profile/blob/master/docs/riscv/coreboot_opensbi_test_debug.md

Specific firmware (coreboot which payload is opensbi FW_JUMP) create by the 
following command
```
# get source code
git clone [email protected]:hardenedlinux/coreboot-HiFiveUnleashed.git -b gptl 
coreboot
git clone [email protected]:wxjstz/opensbi.git -b gptl

# build opensbi
cd opensbi
make CROSS_COMPILE=riscv64-elf- PLATFORM=sifive/fu540
cd -

# build coreboot
cd coreboot
make menuconfig
# Mainboard->Mainboard vendor, select **SiFive**
# Mainboard->Mainboard model, select **HiFive Unleashed**
# Payload->Add a payload, select **An ELF executable payload**
# Payload->Payload path and filename, Use default value **payload.elf**
cp ../opensbi/build/platform/sifive/fu540/firmware/fw_jump.elf ./payload.elf
make
cd -

# Burn
sudo dd if=coreboot/build/coreboot.rom of=/dev/sdX; sync
```
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to