-
Notifications
You must be signed in to change notification settings - Fork 66
Boot: MMC SD
Most Ingenic-based devices will attempt to boot from alternative sources if the SoC chip fails to load the bootloader from the onboard flash memory (NOR or NAND).
This means that if your device's bootloader is damaged, you may be able to recover it using an SD card. Ingenic SoC devices are designed to search for a bootloader at a specific offset on the SD card. If a valid bootloader is found, it will load it automatically.
Important
On certain devices, including Wyze and Atom models, the SD card is powered via a GPIO switch. This requires activating a specific GPIO in U-Boot or the Linux system to supply power to the SD card. Without this step, you cannot use the SD card for recovery unless you make physical modifications to the hardware. If your device is configured this way, consider using an alternative recovery method.
To boot your device from an SD card, you'll need a U-Boot binary specifically built for your SoC using the msc
profile. Prebuilt U-Boot binaries for Ingenic devices are available at u-boot-ingenic GitHub repository.
-
Insert the SD card into your PC.
-
Run
fdisk -l
to identify the SD card. For example, you might see something like this:Disk /dev/sdb: 29.72 GiB, 31914983424 bytes, 62333952 sectors
-
Ensure you have selected the correct device (
/dev/sdX
) to avoid data loss on other drives. -
Use the following command to write the U-Boot binary to the SD card:
sudo dd if=./u-boot-isvp_t31_msc0_ddr128M.bin of=/dev/sdb bs=512 seek=34
This command writes the bootloader to the SD card at an offset of 34 KB from the start (0x0).
Caution
Double-check that /dev/sdX
corresponds to your SD card to avoid overwriting data on other devices.
- Insert the prepared SD card into your device.
- Power on the device.
- The device should attempt to boot from the SD card. If successful, it will load the bootloader from the card.
This method provides a recovery path for devices with damaged onboard bootloaders. If it does not work, verify the GPIO power requirements or try alternative recovery methods.