~~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 ```