Recovery
Intro
The following documentation describes the process of recovering hardware from the brick state using an RTE and Dasharo open-source firmware.
Dual BIOS
The ODROID H4+ and ODROID-H4 Ultra devices both have the Dual BIOS feature. If the device does not boot properly, the backup flash chip can be selected using the flash selector jumper.
First bios chip selected using the flash selector
- Move the flash selector jumper to select the backup flash chip. If the device does not boot from any of the flash chips, an external flashing needs to be performed. In that case continue with the External flashing section.
- If the device boots, boot to an OS.
- Move the flash selector jumper back to it's original position selecting the previous flash chip, from which the device does not boot.
-
With the device working, an OS booted and the flash chip selector moved back, the firmware can be flashed using the command:
flashrom -p internal -w [path_to_binary]
-
After the flashing finishes reboot the device. If the platform does not boot a CMOS reset and boot from G3 state may be needed:
- Unplug the CMOS battery and the power supply
- Wait for 10 seconds
- Plug the CMOS battery and power supply back in
- Press the power button
Additional methods
Additional methods for flashing the firmware on Windows and using the UEFI Shell can be found on the ODROID Wiki.
External flashing
Prerequisites
- Prepared RTE
- 6x female-female wire cables
Connections
To prepare the stand for flashing follow the steps described in the Generic test stand setup
Firmware flashing
To flash firmware follow the steps described below:
- Login to RTE via
ssh
orminicom
. - Turn on the platform by connecting the power supply.
- Wait at least 5 seconds.
- Turn off the platform by using the power button.
- Wait at least 3 seconds.
-
Set the proper state of the SPI by using the following commands on RTE:
# set SPI Vcc to 3.3V echo 1 > /sys/class/gpio/gpio405/value # SPI Vcc on echo 1 > /sys/class/gpio/gpio406/value # SPI lines ON echo 1 > /sys/class/gpio/gpio404/value
-
Wait at least 2 seconds.
- Disconnect the power supply from the platform.
- Wait at least 2 seconds.
-
Check if the flash chip is connected properly
flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000
-
Flash the platform by using the following command:
flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -w [path_to_binary]
Flashing with flashrom takes about 1 minute.
-
Change back the state of the SPI by using the following commands:
echo 0 > /sys/class/gpio/gpio404/value echo 0 > /sys/class/gpio/gpio405/value echo 0 > /sys/class/gpio/gpio406/value
-
Turn on the platform by connecting the power supply.
The first boot of the platform after proceeding with the above procedure can take much longer than normal.
For instructions on how to perform a recovery using the CH341A external programmer refer to the ODROID Wiki .