How to boot direct from network, download kernel dtb ramdisk using tftp cmd?

Now we are bring up our board, Uboot reads kernel and dtb from sd card.
But the kernel always hangs up during starting, so we need debug and reflash the kernel to sd card
We want to download the kernel dtb ramdisk to ddr direct from network, it’s will be more efficiently.
So how to set the bootargs in uboot and download these image to which address?
And the uboot prints No ethernet found. Did the uboot of Nano support network?

  1. Set up a PXELINUX config file on the TFTP server (see PXELINUX - Syslinux Wiki for more info):
  1. mkdir /var/lib/tftpboot/pxelinux.cfg
  2. create a ‘default’ boot config file in pxelinux.cfg/, with the following in it: (similar to your current extlinux.conf)
PROMPT 0
TIMEOUT 30
DEFAULT primary

MENU TITLE PXELinux boot options

LABEL primary
      MENU LABEL primary kernel on TFTP
      LINUX Image
      FDT tegra210-p3448-0000-p3449-0000-b00.dtb
      APPEND ${cbootargs}
  1. In U-Boot, set up your serverip, and then either ‘run bootcmd_pxe’ to test this directly, or change the boot_targets to ‘pxe dhcp mmc1’, and run ‘boot’. PXE boot should be attempted first, followed by DHCP and then SD-card.

Some actual logs when running:

U-Boot 2020.04-g4001373de5 (May 11 2020 - 14:37:37 -0700)

SoC: tegra210
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM:  4 GiB
MMC:   sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash... SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB
OK
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
Tegra210 (P3450-0000) # 
Tegra210 (P3450-0000) # printenv ipaddr serverip bootdelay
ipaddr=10.24.238.112
serverip=10.24.238.139
bootdelay=20
Tegra210 (P3450-0000) # pci enum
Tegra210 (P3450-0000) # pci
Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
00.02.00   0x10de     0x0faf     Bridge device           0x04
Tegra210 (P3450-0000) # dhcp

Warning: eth_rtl8169 using MAC address from ROM
BOOTP broadcast 1
DHCP client bound to address 10.24.238.14 (240 ms)
Tegra210 (P3450-0000) # ping 10.24.238.139
Using eth_rtl8169 device
host 10.24.238.139 is alive
Tegra210 (P3450-0000) # run bootcmd_pxe
starting USB...
Bus usb@7d000000: scanning bus usb@7d000000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
BOOTP broadcast 1
DHCP client bound to address 10.24.238.14 (18 ms)
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-00-04-4b-e3-f8-68
Using eth_rtl8169 device
TFTP from server 10.24.238.139; our IP address is 10.24.238.14
Filename 'pxelinux.cfg/01-00-04-4b-e3-f8-68'.
Load address: 0x90100000
Loading: #
         12.7 KiB/s
done
Bytes transferred = 240 (f0 hex)
Config file found
1:      primary kernel on TFTP
Retrieving file: Image
Using eth_rtl8169 device
TFTP from server 10.24.238.139; our IP address is 10.24.238.14
Filename 'Image'.
Load address: 0x80080000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #######################################################################################################################
         #################################################################
         ######################
         2 MiB/s
done
Bytes transferred = 34330632 (20bd808 hex)
append: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_d
vfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0
x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1075 core_edp_ma=4000 gpt  root=/dev/mmcblk0p
1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0    root=/dev/mmcblk0p1 rw rootwait roo
tfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 this-is-a-bogus-arg=1
Retrieving file: tegra210-p3448-0000-p3449-0000-a02.dtb
Using eth_rtl8169 device
TFTP from server 10.24.238.139; our IP address is 10.24.238.14
Filename 'tegra210-p3448-0000-p3449-0000-a02.dtb'.
Load address: 0x83000000
Loading: ###########################################
         1.8 MiB/s
done
Bytes transferred = 215042 (34802 hex)
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
ERROR: reserving fdt memory region failed (addr=0 size=0)
ERROR: reserving fdt memory region failed (addr=0 size=0)
   Using Device Tree in place at 0000000083000000, end 0000000083037801
copying carveout for /host1x@50000000/dc@54200000...
copying carveout for /host1x@50000000/dc@54240000...

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.140-tegra (buildbrain@mobile-u64-3342-d4000) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revi
sion d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Mon May 11 14:44:05 PDT 2020
[    0.000000] Boot CPU: AArch64 Processor [411fd071]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 32,
[    0.000000] OF: fdt: - 80000000 ,  7ee00000

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.