====== VIM1S Erase eMMC bootloader ======
We have several different ways to erase bootloader.
=====U-Boot console======
- Connect your PC to the SBC using a [[products:sbc:vim1s:development:setup-serial-tool|Serial Debug Tool]].
- 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
```
''/dev/mmcblk0'' maybe different, please check how-to [[#get-block-device-names-for-boot-loaders]]
==== 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
```
''/dev/bootloader?'' same areas as ''/dev/mmcblk?boot?'', but shifted by 512 bytes
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
```
*/