Project

General

Profile

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:

  1. Ensure Jumper on J20 is shorting pins 1 and 2.
  2. Install preflashed microSD card into J5
  3. 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:

  1. Program via uBoot
  2. Program via Linux loaded in memory
  3. Program via Linux running from NFS server

Booting from eMMC

  1. Ensure Jumper on J20 is shorting pins 2 and 3.
  2. Power on the system

Go to top
Add picture from clipboard (Maximum size: 1 GB)