Boot Media¶
This section outlines booting from different devices using the MitySBC-Agilex 5.
Configuring the QSPI flash.¶
The first stage boot process starts with loading the Secure Data Manager (SDM) module and FPGA bitstream from the on-board QSPI flash.
Booting u-Boot/Linux from MicroSD card¶
This is the default mechanism for booting, as delivered from factory.
Steps:
- Ensure Jumper on J20 is shorting pins 1 and 2.
- Install preflashed microSD card into J5
- Power on the system
Booting u-Boot from MiroSD card, linux from an NFS server¶
If you have a reference filesystem image, including the kernel, device tree, and relevant compiled kernel modules, you can setup an NFS server on any modern Linux system and boot to that filesystem from uBoot.
# adjust PHY SKEW settings on KSZ9131 (not supported in uBoot drivers) # mdio write 0xd 2 mdio write 0xe 4 mdio write 0xd 0x4002 mdio write 0xe 0x0070 mdio write 0xd 2 mdio write 0xe 5 mdio write 0xd 0x4002 mdio write 0xe 0x7777 mdio write 0xd 2 mdio write 0xe 6 mdio write 0xd 0x4002 mdio write 0xe 0x0000 mdio write 0xd 2 mdio write 0xe 8 mdio write 0xd 0x4002 mdio write 0xe 0x03FF # # request an IP address from a DHCP server # dhcp # # reset USB PHY # gpio clear 3; sleep 1; gpio set 3 # # if you want to use eMMC set gpio 10, for microSD clear it gpio set 10 # # point to our NFS server, load the code, and boot # setenv serverip 10.0.103.185 nfs 82000000 ${serverip}:/mnt/projects/nfs_share/a5_sbc/boot/Image nfs 86000000 ${serverip}:/mnt/projects/nfs_share/a5_sbc/boot/socfpga_agilex5_mitysbc.dtb setenv bootargs console=ttyS0,115200 root=/dev/nfs ip=dhcp nfsroot=${serverip}:/mnt/projects/nfs_share/a5_sbc,v3 rw rootwait booti 0x82000000 - 0x86000000
Notes and Tips
- Most modern linux NFS servers disable NFS Version 2. You need to either disable NFS V2 in your kernel or explicitly use version 3 or version 4. The bootargs nfsroot command above specifies v3. If the ARM attempts to use V2, it will quietly fail.
- To load the kernel and device tree from uBoot's "nfs" command, the linux server must support UDP mode of NFS version 2 or version 3. Most modern linux NFS servers disable UDP mode of NFS in favor of TCP. To enable UDP mode in typical linux distros, update the following in /etc/nfs.conf
[nfsd] udp=y
Booting u-Boot/Linux from eMMC¶
Programming the eMMC¶
Three techniques identified:
- Program via uBoot
- Program via Linux loaded in memory
- Program via Linux running from NFS server
Booting from eMMC¶
- Ensure Jumper on J20 is shorting pins 2 and 3.
- Power on the system
Go to top