dtb and initrd on Jetson TX2

Hi every one,
I bought Jetson TX2 and I want to load Linux kernel over the network using tftp and mount the root file system from nfs server.
Last time, when I setup uboot environment with Jetson TX1, on /boot/extlinux/extlinux.conf

TIMEOUT 30
DEFAULT primary

MENU TITLE p2371-2180 NFS boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      FDT /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
      APPEND fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid=21.1.2.0.0 ddr_die=2048M@2048M ddr_die=2048M@4096M section=256M memtype=0 usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=${lp0_vec} nvdumper_reserved=${nvdumper_reserved} core_edp_mv=1125 core_edp_ma=4000 gpt android.kerneltype=normal androidboot.touch_vendor_id=0 androidboot.touch_panel_id=63 androidboot.touch_feature=0 androidboot.bootreason=pmc:software_reset,pmic:0x0 net.ifnames=0 root=/dev/nfs rw netdevwait ip=:::::eth0:on nfsroot=10.3.1.72:/home/openstack/Jetpack3.0/64_TX1/Linux_for_Tegra_64_tx1/rootfs rootwait

So on Jetson Tx1, it require dtb and initrd file.
But with Jetson TX2, the /boot/extlinux/extlinux.conf

TIMEOUT 30
DEFAULT primary

MENU TITLE p2771-0000 eMMC boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

it does not define dtb and initrd.
Are there any one can give some information about dtb and initrd so that I can setup uboot environment correctly and successfully booting from TFTP and NFS server?
Thank in advance.

Hi,
I compile kernel (with tegra18_defconfig) by the instruction in

https://developer.ridgerun.com/wiki/index.php?title=Compiling_Tegra_X2_source_code

and then I setup uboot environment to load kernel from tftp server and root file system from nfs server. I use dtb file, “tegra186-quill-p3310-1000-c03-00-base.dtb”, and without using initrd file.
However, I got error and can not finish booting.
The attached file is from serial console (it shows uboot environment and also booting process); I think i got error because of Ethernet problem, it show this message when booting and can not reach to mount rootfs

[    4.026106] IP-Config: Failed to open eth0
[    4.026108] IP-Config: No network devices available

Are there any one who can give me any suggestion to solve this problem?
Thank so much
booting_error.docx (46.8 KB)

I have not set up the TFTP/NFS you are using, but if I go to serial console on my TX2 (R28.1) I see this if I use the dhcp command (my PC host responds to DHCP, the addresses below show valid behavior):

Tegra186 (P2771-0000-500) # <b>dhcp</b>
ethernet@2490000 Waiting for PHY auto negotiation to complete...... done
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.2.32 (251 ms)
*** Warning: no boot file name; using 'C0A80220.img'
Using ethernet@2490000 device
TFTP from server 0.0.0.0; our IP address is 192.168.2.32; sending through gateway 192.168.2.2
Filename 'C0A80220.img'.
Load address: 0x80080000
Loading: T T T T T T T T T T 
Retry count exceeded; starting again

Basically this is the output from a successful DHCP request where the DHCP server is not configured to provide anything else (failure is expected). Does your “dhcp” command have a similar result?

Dear linuxdev,
I use dhcp comand, the result is different with you

Tegra186 (P2771-0000-500) # dhcp
ethernet@2490000 Waiting for PHY auto negotiation to complete.... done
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 10.0.0.155 (300 ms)
Using ethernet@2490000 device
TFTP from server 10.3.1.72; our IP address is 10.0.0.155
Filename 'Image'.
Load address: 0x80080000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ####
         509.8 KiB/s
done
Bytes transferred = 19655176 (12bea08 hex)
Tegra186 (P2771-0000-500) #

After get “Image”, uboot do nothing more
Thank.

All that command is doing is loading a file, it isn’t telling it to execute anything. It has been many years since I worked on anything PXE/TFTP/NFS boot, so I have not attempted to remote boot a Jetson as you are doing. If you were to just continue “normal” boot you would enter the command “boot”, but I don’t know if this would end up loading default files and overwriting your current files…try it and see if it works (type “boot” and test to see if it works after the “dhcp” command loads your files).

FYI, if you run the U-Boot command “printenv” you’ll see many environment variables. Several of those have “boot” in their name (pay special attention to “bootcmd”…see also “help env” for editing values). If just “boot” does something which overwrites your data simply look at the chain of boot macros saved as environment variables and edit to do only the parts you want. Unless you saveenv the changes will only be for the one boot. If you do save something be sure to write down the original value in case you need to change it back after a saveenv.

Hi,
I success booting from NFS server; this is done by not loading dtb file from TFTP server.
It seems that dtb file “tegra186-quill-p3310-1000-c03-00-base.dtb” that was built from source code has problem. I think it does not have definition about ethernet because I tried to re-flash dtb file

sudo ./flash -k -r kernel-dtb jetson-tx2 mmcblk0p1

and after booting, it also does not start Ethernet eth0 as normal.
Thank

hello Quang_OpenStack,

after booting, it also does not start Ethernet eth0 as normal.
please run ifconfig -a command to check whether you’re losing eth0 or it was not enable by default.
thanks

Dear JerryChang,
As far as I remember, the Ethernet was lost.
I have to re-flash Jetson TX2 as by original Jetpack 3.1.
Note that,on the serial console when booting it showed this bug

[    4.026106] IP-Config: Failed to open eth0
[    4.026108] IP-Config: No network devices available

Thank

hello Quang_OpenStack,

may i have your confirmation, is there still an issue about losing ethernet?
thanks

Dear JerryChang,
Now I am working with kernel source code in

https://github.com/InES-HPMM/linux-l4t-4.4

It working well on Ethernet now.
Thank.