Project

General

Profile

Network Boot

Tested on Ubuntu 24.04. MitySOM-AM62x/p tested with SDK 11.00.09.04. TI has yet to officially support network booting for the AM62a platform. Network boot for the MitySOM-AM62a is still a work in progress.

References

Prerequisites

Additional Hardware

  • USB Ethernet Adapter or an unused ethernet port
  • Ethernet Cable

Boot Pin and Hardware Configuration

Boot Pin Layout
B9 B8 B7 B6 B5 B4 B3
Clkout Off (0) 0 Link Info (0) 0 1 0 0

Hardware Setup
  • Using the USB eth adapter and ethernet cable, connect the devkit ethernet port J4 to the host computer

Build U-boot Binaries

  • Make the following changes to the 62x-build.sh, 62ax-build.sh, or 62px-build.sh script depending on the MitySOM-AM62 variant
    - make -j"$(nproc)" "$MV" ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- O="$R5_BUILDDIR" "${MACHINE}_r5_defconfig" 
    + make -j"$(nproc)" "$MV" ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- O="$R5_BUILDDIR" "${MACHINE}_r5_ethboot_defconfig" 
    - make -j"$(nproc)" "$MV" ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- O="$A53_BUILDDIR" "${MACHINE}_a53_defconfig" 
    + make -j"$(nproc)" "$MV" ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- O="$A53_BUILDDIR" "${MACHINE}_a53_defconfig" "${MACHINE}_a53_ethboot.config" 
    

Setting Up an isc-dhcp-server

  • Install isc-dhcp-server
    $ sudo apt install isc-dhcp-server
    
  • Immediately disable the isc-dhcp-server service prior to configuration
    $ sudo systemctl disable --now isc-dhcp-server.service isc-dhcp-server6.service
    
  • Find the host network interface connected to the devkit.
    WARNING: Do not use the host's main network connection, as connecting a rogue dhcp server to a company network is likely to create havoc for everyone else.
    To verify the correct network interface is selected, unplug the ethernet connect from port J4, run dmesg on the host PC and see which interface has gone down.
    $ sudo dmesg | tail
    ...
    [259587.393829] usb 3-1.4.3: USB disconnect, device number 22
    [259587.394088] ax88179_178a 3-1.4.3:1.0 enx0050b6b50627: unregister 'ax88179_178a' usb-0000:33:00.4-1.4.3, ASIX AX88179 USB 3.0 Gigabit Ethernet
    

    Note: enx0050b6b50627 would be the <ETH_INTERFACE>
  • Tell the isc-dhcp-server which interface and configuration to access
    $ sudo vim /etc/default/isc-dhcp-server
    DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
    INTERFACESv4="<ETH_INTERFACE>" 
    
  • Configure dhcp server subnet for the SOM
    WARNING: If your local network is using 192.168.0.x, its recommended to update these instructions to use a different subnet (192.168.10.x) for example.
    $ sudo vim /etc/dhcp/dhcpd.conf
    
    • MitySOM-AM62x
      subnet 192.168.0.0 netmask 255.255.254.0
      {
        range dynamic-bootp 192.168.0.2 192.168.0.50;
        if substring (option vendor-class-identifier, 0, 16) = "TI K3 Bootp Boot" 
        {
        filename "tiboot3.bin";
        } elsif substring (option vendor-class-identifier, 0, 28) = "MitySOM-AM62X U-Boot R5 SPL" 
        {
        filename "tispl.bin";
        } elsif substring (option vendor-class-identifier, 0, 29) = "MitySOM-AM62X U-Boot A53 SPL" 
        {
        filename "u-boot.img";
        }
        default-lease-time 60000;
        max-lease-time 720000;
        next-server 192.168.0.1;
      }
      
    • MitySOM-AM62a (Work In Progress)
      subnet 192.168.0.0 netmask 255.255.254.0
       { 
         range dynamic-bootp 192.168.0.2 192.168.0.50; 
         if substring (option vendor-class-identifier, 0, 16) = "TI K3 Bootp Boot" 
         { 
         filename "tiboot3.bin"; 
         } elsif substring (option vendor-class-identifier, 0, 29) = "MitySOM-AM62AX U-Boot R5 SPL" 
         { 
         filename "tispl.bin"; 
         } elsif substring (option vendor-class-identifier, 0, 30) = "MitySOM-AM62AX U-Boot A53 SPL" 
         { 
         filename "u-boot.img"; 
         } 
         default-lease-time 60000; 
         max-lease-time 720000; 
         next-server 192.168.0.1; 
       } 
      
    • MitySOM-AM62px
      subnet 192.168.0.0 netmask 255.255.254.0
      {
        range dynamic-bootp 192.168.0.2 192.168.0.50;
        if substring (option vendor-class-identifier, 0, 16) = "TI K3 Bootp Boot" 
        {
        filename "tiboot3.bin";
        } elsif substring (option vendor-class-identifier, 0, 29) = "MitySOM-AM62PX U-Boot R5 SPL" 
        {
        filename "tispl.bin";
        } elsif substring (option vendor-class-identifier, 0, 30) = "MitySOM-AM62PX U-Boot A53 SPL" 
        {
        filename "u-boot.img";
        }
        default-lease-time 60000;
        max-lease-time 720000;
        next-server 192.168.0.1;
      }
      
  • Set the ip address and netmask for the SOM's network interface
    $ sudo ifconfig <ETH_INTERFACE> 192.168.0.1 netmask 255.255.255.0
    
  • Start the isc-dhcp-server
    $ sudo systemctl start isc-dhcp-server
    
  • Check for configuration errors by checking isc-dhcp-service status
    $ sudo systemctl status isc-dhcp-server
    

Setting up a TFTP server

  • Install tftpd-hpa
    $ sudo apt install tftpd-hpa
    
  • Check if the tftp-hpa service is running
    $ sudo systemctl status tftpd-hpa
    
  • If the tftp server configuration needs modification, the file can be located in the directory below
    $ /etc/default/tftp-hpa
    
  • Copy the binaries created in Build U-boot Binaries to the TFTP_DIRECTORY
    $ cd build-mitysom_<am62x/p/a>_devkit/
    $ sudo cp a53/tispl.bin a53/u-boot.img r5/tiboot3.bin /srv/tftp/
    

Boot to U-boot

Power on the devkit and the network should fetch the u-boot binaries in the following sequence.

tiboot3.bin => tispl.bin => u-boot.img

Note: These steps only boot to the u-boot prompt. They do not program a filesystem onto an mmc device. To program the eMMC see Boot_emmc or Snagboot.

U-boot Logs...

Debugging

  • To check if the board sending dhcp requests to the isc-dhcp-server run the following command
    sudo tcpdump -i <ETH_INTERFACE> -v udp port 67
    
  • To check if the board if fetching files from the tftp server run the following command
    sudo tcpdump -v -i <ETH_INTERFACE> port 69
    
  • If multiple SOM's are being booted via the network the range dynamic-bootp ip address range in the subnet definition may need to be increased
    -range dynamic-bootp 192.168.0.2 192.168.0.50;
    +range dynamic-bootp 192.168.0.2 192.168.0.<num > 50>;
    

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