From 46b07990fb84deb07dd2c0b559b0b97677f338ec Mon Sep 17 00:00:00 2001 From: gitgayhub Date: Wed, 30 Aug 2023 03:22:55 +0000 Subject: [PATCH] add ingenic t31 unbrick from SD card --- README.md | 1 + en/unbrick-ingenic-t31-with-sd-card.md | 47 +++++++++++++++++++++++++ images/t31_boot_sequence.png | Bin 0 -> 35738 bytes 3 files changed, 48 insertions(+) create mode 100755 en/unbrick-ingenic-t31-with-sd-card.md create mode 100755 images/t31_boot_sequence.png diff --git a/README.md b/README.md index cd2f6a5..4d8a2c7 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ OpenIPC Wiki - [Network does not work](en/trouble-network.md) - [Majestic does not work, camera reboots](en/trouble-majestic.md) - [Sigmastar unbrick instructions](en/sigmastar-unbrick.md) +- [Ingenic T31 unbrick with SD card](en/unbrick-ingenic-t31-with-sd-card.md) ### Equipment - [Equipment for flashing](en/equipment-flashing.md) diff --git a/en/unbrick-ingenic-t31-with-sd-card.md b/en/unbrick-ingenic-t31-with-sd-card.md new file mode 100755 index 0000000..0295d16 --- /dev/null +++ b/en/unbrick-ingenic-t31-with-sd-card.md @@ -0,0 +1,47 @@ +[Table of Content](../README.md) + +Unbrick Ingenic T31 with SD Card +--- + +## Ingenic T31 boot squence + + + +If failed to boot from uboot on flash memory, T31 will then try to boot from SD card, no matter what bootsel pin is set. So if the uboot on flash chip is somehow broken, we can burn uboot to a SD card and boot from it. The uboot file should be specially compiled for SD card boot, you can't use the one for normal flash boot. + +## Compile uboot for SD card boot + +``` +mkdir /opt/t31 +cd /opt/t31 +git clone https://github.com/cgrrty/Ingenic-SDK-T31-1.1.1-20200508.git +cd Ingenic-SDK-T31-1.1.1-20200508/toolchain +unrar e toolchain.part1.rar +7z x mips-gcc472-glibc216-64bit-r2.3.3.7z +export PATH="$PATH:/opt/t31/Ingenic-SDK-T31-1.1.1-20200508/toolchain/mips-gcc472-glibc216-64bit/bin" +cd ../opensource/uboot/ +make distclean +``` +Now choose the final `make` command according to your T31 chip type + +SoC | Command +------------ | ------------ +T31N | make isvp_t31_msc0 +T31L | make isvp_t31_msc0_lite +T31X | make isvp_t31_msc0_ddr128M +T31A | make isvp_t31a_msc0_ddr128M + +Now you will get the compiled uboot file `u-boot-with-spl.bin` + +## Burn uboot to SD card + +Insert SD card to your PC, run `fdisk -l` to check, you should see the device like in my case `Disk /dev/sdb: 29.72 GiB, 31914983424 bytes, 62333952 sectors`. Pay attention to the physical sector size, in my case it's 512 bytes + +``` +dd if=./u-boot-with-spl.bin of=/dev/sdb seek=34 +``` +This will burn the uboot file to SD card at 34*512bytes=17KBytes offset from 0x0, where 512 is my SD card's block size. If yours is 1024, change `seek=34` to `seek=17`, to make the offset to be 17KBytes + +## Boot from SD card + +If the original uboot on flash chip is broken or empty, it will choose to boot from SD card automatically, but if you just want to sideload your own uboot when there's working uboot on flash chip and camera PCB board's `bootsel` pin is set to 1, it will still boot from uboot on flash chip. To force booting from SD card, you can short circut pin 5 and 6 of the SOIC8 flash chip when powering up camera to block reading of the flash memory, details [here](https://github.com/gitgayhub/wiki/blob/master/en/help-uboot.md#shorting-pins-on-flash-chip). diff --git a/images/t31_boot_sequence.png b/images/t31_boot_sequence.png new file mode 100755 index 0000000000000000000000000000000000000000..e6f15fbafb1e094bbcb7833c234c7df6968e583e GIT binary patch literal 35738 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 z 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 ie}4b}