System-On-Module used by Helios4 provide an SPI NOR flash [Winbond W25Q32](https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&selected=32Mb#Density) connected to SPI bus 1 Chip Select 0.
By default, Helios4 configured to boot from microSD card. To boot from SPI NOR flash (after [writing U-Boot into SPI NOR flash](#write-u-boot-to-spi-nor-flash)), please change Boot Mode DIP switch SW1 to:
![Boot from SPI](/img/hardware/dipswitch_boot_spinor.png)
## Build U-Boot for SPI NOR flash
Refer to [U-Boot](/uboot) page to build the image.
Concurrent access on SPI NOR and SATA drive can lead to unstable SATA. The following instructions has taken this issue into consideration and workaround it by disabling the SATA temporary.
1) Open /boot/armbianEnv.txt and modify *spi_workaround="on"*
2) Reboot the system to apply the change
3) Login to the system and run
```
sudo nand-sata-install
```
4) Select option **5 Install the bootloader to SPI Flash**
## Set Up U-Boot Environment
!!! info
The prebuilt SPI image has been configured to automatically run /boot/boot.scr and /boot.scr on microSD or USB drive. There is no need to set up u-boot environment to boot Armbian.
Add U-Boot ENV variables to prevent U-Boot to relocate fdt and initrd into RAM address that is not accessible by kernel, and set the correct device tree name for Helios4 board