~~tag> VIM1S boot~~
====== VIM1S Boot flow ======
VIM1S have advanced and flexible booting sequence... WIP:
MCU => BROM => [[#u-boot-stage|U-Boot]] => OS target
Next information actual for MCU ver: 0x0005
====== Hardware buttons ======
WIP:
* ''FUNCTION'' + ''RESET'' - [[#oowow-mode]]
* ''FUNCTION'' x3 times - flash mode
More detail: [[./interfaces#hardware-buttons]]
====== OOWOW boot led indication ======
OOWOW boot makes a red LED indication on the first boot seconds, it's looks like a short RED blinking 1-3 sec in success,
Red blink or permanent red LED means OOWOW failed
This indication common for VIM4, Edge2 and VIM1S
```shell Preparing for oowow
# red led hb mode
i2c mw 0x18 0x89 3
```
```shell try to start
# red led off
i2c mw 0x18 0x89 0
```
```shell oowow fail
# red led on mode
i2c mw 0x18 0x89 1
```
=== dev-info ===
WIP: special pre-boot led indication
====== OOWOW mode ======
Exclusive special service mode: activated [[#hardware-buttons|by hardware buttons]] or [[#set-oowow-mode|by software request]]
Ignore all boot sources like: ''USB'' removable stores , ''eMMC'' internal storage ...
Boot fail service mode activated automatically as rescue mode for:
* internal eMMC storage is empty
* cant find any boot-able OS sources
* boot-up from other sources fail
Try at 1st boot from sources all sources: ''USB'' removable stores , ''eMMC'' internal storage ...
====== Boot modes oowow shell usage ======
WIP:
==== Set boot mode ====
```shell
~# bootmode
spi
~# bootmode mmc
[i] /opt/bootmode spi -> mmc(sd)
~# bootmode
mmc
~# bootmode spi
[i] /opt/bootmode mmc -> spi
```
==== Set oowow mode ====
Setup, check, or clean next OOWOW bootup...
```shell
~# mcu_oowow_mode set 1
[i] set with 1
~# mcu_oowow_mode clean
[i] set with 0
~# mcu_oowow_mode && echo activated
0x01
activated
~# mcu_oowow_mode clean
[i] set with 0
~# mcu_oowow_mode || echo disabled
disabled
~# i2cset -f -y 1 0x18 0x92 1
~# i2cget -f -y 1 0x18 0x92
0x01
```
==== Reboot by MCU ====
Forced hardware reboot
```shell
~# mcu_reboot
~# i2cset -f -y 1 0x18 0x91 2
```
====== U-Boot stage ======
Current u-boot can start OS from ''USB'' => ''SD'' => ''eMMC'' => ...
===== oowow spi uboot =====
```shell boot_targets
kvim1s# printenv boot_targets
boot_targets=wow usb0 mmc0 mmc1 storeboot rescue fail pxe dhcp
```
===== mmc uboot =====
default eMMC u-boot log for Ubuntu images
```shell boot_targets
kvim1s# printenv boot_targets
boot_targets=usb0 mmc0 mmc1 storeboot rescue fail pxe dhcp
```
===== MMC/SD boot areas =====
```txt MMC/SD boot areas
1STBLOB 0x00000200 0x0002a000
BL2E 0x0002a200 0x00013000
BL2X 0x0003d200 0x00011000
DDRFIP 0x0004e200 0x00040000
DEVFIP 0x0008e200 0x00300000
```
===== SPI-Flash boot areas =====
```txt SPI-Flash boot areas
1STBLOB 0x00000000 0x0002a000
BL2E 0x00054000 0x00013000
BL2X 0x0007a000 0x00011000
DDRFIP 0x0009c000 0x00040000
DEVFIP 0x0011c000 0x00300000
```