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/08/22 02:56]
hyphop [CLI Mode]
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 
-  * CLI Mode 
- 
-<tabbox Serial Mode (Developers)> 
  
   - Connect your PC to the SBC using a [[products:sbc:vim1s:development:setup-serial-tool|Serial Debug Tool]].   - Connect your PC to the SBC using a [[products:sbc:vim1s:development:setup-serial-tool|Serial Debug Tool]].
Line 48: Line 44:
 ``` ```
  
-<tabbox Interrupt Mode>+===== Interrupt Mode =====
  
 This erasure method is suitable for all products that use the Amlogic SoC: This erasure method is suitable for all products that use the Amlogic SoC:
Line 56: Line 52:
   - Power on your SBC again, and you'll find that all the data on the eMMC has been erased.   - Power on your SBC again, and you'll find that all the data on the eMMC has been erased.
  
-<tabbox CLI Mode>+===== 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: This erasure method is suitable for the SBC with Linux installed:
  
   - Power on and boot up.   - Power on and boot up.
   - Open a Terminal, and run ''dd'' to fill your bootloader partition with zeros:   - Open a Terminal, and run ''dd'' to fill your bootloader partition with zeros:
 +
  
 ```shell ```shell
Line 71: Line 159:
 root@Khadas:~# reboot root@Khadas:~# reboot
 ``` ```
-</tabbox>+*/
Last modified: 2022/08/24 02:00 by hyphop