~~tag>Edge2 boot-sequence~~ ====== Edge2 boot sequence ====== Edge2 have advanced and flexible boot possibilities ===== Common boot process ===== [[#SPL-loader]] => [[#U-Boot-loader]] => [[#OOWOW-special-mode]] => [[#U-Boot-OS-boot-sequence]] => [[#OOWOW-rescue-mode]] ===== SPL loader ===== * SPL-loader is a 1st boot-loader which can start from ''SPI-Flash'' => ''eMMC'' => ''SD'' card. By default its start from ''SPI-flash''. * SPL-loader scan special areas for next [[#U-Boot-loader]] by ''SD'' => ''eMMC'' => ''SPI-FLash'' ```log spl-boot-example.log U-Boot SPL board init U-Boot SPL 2017.09 (Aug 26 2022 - 15:50:37) MCU: bootmode: 1, oowow 0 board_boot_order: /chosen found, using spl_boot_device() !!! same-as-spl: !!! /mmc@fe2c0000: !!! /mmc@fe2e0000: !!! /spi@fe2b0000/flash@1: Trying to boot from MMC2 :: 0 Card did not respond to voltage select! Trying to boot from MMC1 :: 1 Trying fit image at 0x4000 sector Not fit magic Trying fit image at 0x5000 sector Not fit magic Trying to boot from MTD2 :: 2 Trying fit image at 0x300 sector ... ``` ```log log spl-boot-oowow-mode-example.log U-Boot SPL board init U-Boot SPL 2017.09 (Aug 26 2022 - 15:50:37) MCU: bootmode: 1, oowow 1 MCU: oowow 2 board_boot_order: /chosen found, using spl_boot_device() !!! same-as-spl: +++ /spi@fe2b0000/flash@1: !!! /mmc@fe2c0000: !!! /mmc@fe2e0000: !!! /spi@fe2b0000/flash@1: Trying to boot from MTD2 :: 0 Trying fit image at 0x300 sector ... Jumping to U-Boot(0x00200000) via ARM Trusted Firmware(0x00040000) ... ``` ===== U-Boot loader ===== WIP: ==== U-Boot OS boot sequence ==== We discribe only about SPI-flash u-boot, for other custom U-boots which can stored at eMMC or SD its will be different OS booting follow by ''distro_bootcmd'' which use ''boot_targets'' priority for scanning bootable OS. Step by step scan all available storage's and partitions for [[#os-boot-configuration-extlinux-config]] ```shell kedge2# printenv boot_targets boot_targets=usb0 mmc1 mmc0 pxe dhcp fail ``` WIP: ==== OS boot configuration - extlinux config ==== Basic example: ```conf extlinux/extlinux.conf menu background /logo.bmp LABEL Default LINUX /Image INITRD /initrd.img FDTDIR /dtb APPEND ${bootargs} earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 console=tty0 irqchip.gicv3_pseudo_nmi=0 root=LABEL=ROOTFS rootflags=data=writeback rw rootfstype=ext4 timeout 10 default Default ``` ===== OOWOW mode ===== OOWOW mode can be activated by * special on board short-cuts ''FUNCTION'' + ''RESET'' * under running OS via special [[#MCU-register-for-start-oowow]] - software way WIP: ==== OOWOW special mode ==== WIP: ==== OOWOW rescue mode ==== WIP: ==== MCU register for start oowow ==== WIP: