Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:vim1s:development:erase-emmc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
products:sbc:vim1s:development:erase-emmc [2022/07/17 21:51]
nick
products:sbc:vim1s:development:erase-emmc [2022/08/24 01:59]
hyphop [How-to check boot loaders content]
Line 1: Line 1:
-====== VIM1S Erase eMMC ======+====== VIM1S Erase eMMC bootloader ======
  
-There are 3 ways to erase the eMMC:+We have several different ways to erase bootloader. 
 +=====U-Boot console======
  
-  * Serial Mode (Developers+ 
-  * Interrupt Mode +  - Connect your PC to the SBC using a [[products:sbc:vim1s:development:setup-serial-tool|Serial Debug Tool]]. 
-  * CLI Mode+  - As the SBC is booting-up, press ''SPACE''on the keyboard to enter the U-Boot mode. 
 +  - Type ''store boot_erase bootloader'' into the U-Boot console, and wait for the erasure process to complete. 
 +  - After erasure is completed, type ''reboot'' or press the ''RESET'' button on your SBC. 
 + 
 +Use the following serial Terminal print-out as a reference: 
 + 
 +```shell 
 +kvim1s# store boot_erase bootloader 
 +GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645 
 +GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645 
 +gpt is invalid 
 + 
 + 
 +Caution! Your devices Erase group is 0x400 
 +The erase range would be change to 0x0~0x23ff 
 + 
 +8191 blocks erased: OK 
 + 
 + 
 +Caution! Your devices Erase group is 0x400 
 +The erase range would be change to 0x0~0x23ff 
 + 
 +8191 blocks erased: OK 
 + 
 + 
 +Caution! Your devices Erase group is 0x400 
 +The erase range would be change to 0x0~0x23ff 
 + 
 +8191 blocks erased: OK 
 +kvim1s# reboot 
 +``` 
 + 
 +If the eMMC has been erased, the serial Terminal should show this print-out when your SBC powers-on: 
 + 
 +```txt 
 +S4:BL:25dcde;ID:00D9C31D04901F08;FEAT:30F:1FFF0000:B002F:1;POC:DD;RCY:0;OVD:0;DFU:0;USB:ADFU�S4:BL:25dcde;ID:00D9C31D04901F08;FEAT:30F:1FFF0000:B002F:1;POC:DD;RCY:0;OVD:0;DFU:1;USB:0;RD-00:0; 
 +``` 
 + 
 +===== Interrupt Mode ===== 
 + 
 +This erasure method is suitable for all products that use the Amlogic SoC: 
 + 
 +  - Carry out eMMC flashing via a [[products:sbc:vim1s:install-os:install-os-into-emmc-via-usb-tool|USB-C cable]]. 
 +  - Manually interrupt the upgrading process (forcefully disconnect after 15% is recommended). For example, unplug the USB-C cable or eject the TF card. 
 +  - Power on your SBC again, and you'll find that all the data on the eMMC has been erased. 
 + 
 +===== Linux command-line ===== 
 + 
 +eMMC boot-loader can be stored on ''/dev/mmcblk0'' and special areas ''/dev/mmcblk0boot0'' or ''/dev/mmcblk0boot0''
 + 
 +==== Cleanup eMMC boot loaders ==== 
 + 
 +Cleanup special eMMC boot areas.  
 + 
 +```sh 
 +dd if=/dev/zero count=8192 | sudo tee /dev/mmcblk?boot? >/dev/null 
 +``` 
 + 
 +Also need cleanup eMMC common boot area.  
 + 
 +```sh 
 +sudo dd if=/dev/zero count=2000 seek=1 of=/dev/mmcblk0 
 +``` 
 + 
 +<WRAP important > 
 +''/dev/mmcblk0'' eMMC device block name maybe different, please check how-to [[#get-block-device-names-for-boot-loaders]] 
 +</WRAP> 
 + 
 +==== Universal method for cleanup all eMMC boot-areas ==== 
 + 
 +```sh 
 +sudo dd if=/dev/zero count=8192 | sudo tee /dev/mmcblk?boot? >/dev/null 
 +sudo dd if=/dev/zero count=2000 seek=1 of=$(ls /dev/mmcblk?boot?|grep -m1 -o /dev/mmcblk.) 
 + 
 +``` 
 + 
 +==== Get block device names for boot loaders ==== 
 + 
 +Get block-device names for special boot areas. 
 + 
 +```shell 
 +~$ ls -1 /dev/mmcblk?boot? /dev/bootloader? 
 +/dev/bootloader0 
 +/dev/bootloader1 
 +/dev/mmcblk0boot0 
 +/dev/mmcblk0boot1 
 +``` 
 +<WRAP important > 
 +''/dev/bootloader?'' same areas as ''/dev/mmcblk?boot?'', but shifted by 512 bytes 
 +</WRAP> 
 + 
 +Get eMMC block-device name. 
 + 
 +```shell 
 +~$ ls -1 $(ls /dev/mmcblk?boot?|grep -m1 -o /dev/mmcblk.) 
 +/dev/mmcblk0 
 +``` 
 + 
 +==== How to check boot loaders content ==== 
 + 
 +This example display empty content for special boot-loaders areas. 
 + 
 +```shell 
 +~$ for m in /dev/bootloader?;do echo $m; dd if=$m count=1 2>/dev/null | hexdump -C ;done  
 + 
 +/dev/bootloader0 
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| 
 +
 +00000200 
 +/dev/bootloader1 
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| 
 +* 
 +00000200 
 + 
 +``` 
 + 
 +Display same but for other boot areas names. 
 + 
 +```shell 
 +~$ for m in /dev/mmcblk?boot?;do echo $m; dd if=$m skip=1 count=1 2>/dev/null | hexdump -C ;done  
 + 
 +/dev/mmcblk2boot0 
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| 
 +
 +00000200 
 +/dev/mmcblk2boot1 
 +00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| 
 +
 +00000200 
 +``` 
 + 
 +Next example display valid boot loader header ''@ML''
 + 
 +```shell 
 +~$ dd if=/dev/mmcblk0 count=1 skip=1 2>/dev/null | hexdump -C | head -n1 
 +00000000  40 4d 4c 20 8d 66 31 ed  00 00 00 00 80 05 00 00  |@ML .f1.........| 
 +``` 
 + 
 +/* 
 +This erasure method is suitable for the SBC with Linux installed: 
 + 
 +  - Power on and boot up. 
 +  - Open a Terminal, and run ''dd'' to fill your bootloader partition with zeros: 
 + 
 + 
 +```shell 
 +khadas@Khadas:~$ sudo dd if=/dev/zero of=/dev/bootloader 
 +dd: writing to '/dev/bootloader': No space left on device 
 +8193+0 records in 
 +8192+0 records out 
 +4194304 bytes (4.2 MB, 4.0 MiB) copied, 1.1226 s, 3.7 MB/s 
 +root@Khadas:~# reboot 
 +``` 
 +*/
Last modified: 2022/08/24 02:00 by hyphop