Hi, we try to test boot from tftp, but it always failed to download boot.img, no matter we
used linux tftpd or windows tftpd, the below is the log.
0009.525] I> tegrabl_get_boot_img_load_addr(): 1339, boot image load addr: 0xa43b0000
[0009.525] TFTP Client: Init
[0009.527] TFTP Client: Server IP: 192.168.0.1
[0009.531] TFTP Client: Send RRQ, file: tegra194-p2888-0001-p2822-0000.dtb
[0014.539] TFTP Client: Connection failed
[0014.549] TFTP Client: Send RRQ, file: tegra194-p2888-0001-p2822-0000.dtb
[0015.570] TFTP Client: Last packet received
[0015.571] I> Authenticate tftp downloaded tegra194-p2888-0001-p2822-0000.dtb, size 0x400000
[0015.571] I> >>pega TEGRABL_BINARY_KERNEL_DTB line=319
[0015.572] I> T19x: Authenticate tegra194-p2888-0001-p2822-0000.dtb (bin_type: 38), max size 0x400000
[0015.578] TFTP Client: Send RRQ, file: boot.img
#############################[0029.569] TFTP Client: Error received: code: 0, msg: Not defined
[0029.570] E> Failed to get boot.img
[0029.571] I> netif status changed 192.168.0.2
[0029.571] E> Error (1282) network load failed for kernel & kernel-dtb
kayccc
June 14, 2019, 3:32am
2
Hi kaycc:
I used boot_sigheader.img.encrypt and tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt for tftp
boot, but i found it will download boot.img and tegra194-p2888-0001-p2822-0000.dtb file name.
I just modify the file name, the files are signed and encrypted, but when download boot.img, it always failed. Is this a bug ?
boyi_liao,
Could you share your whole setup for tftp boot?
Hi WayneWWW:
Do you mean cbo.dts setting ?
patrick@patrick-X541UV:~/MHT/Linux_for_Tegra/bootloader$ cat cbo.dts
/*
Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
NVIDIA CORPORATION and its licensors retain all intellectual property
and proprietary rights in and to this software, related documentation
and any modifications thereto. Any use, reproduction, disclosure or
distribution of this software and related documentation without an express
license agreement from NVIDIA CORPORATION is strictly prohibited.
*/
/dts-v1/;
/*boot-order = "sd", "usb", "emmc", "net";*/
/ {
compatible = “nvidia,cboot-options-v1”;
boot-configuration {
boot-order = “net”, “usb”, “emmc”, “sd”;
tftp-server-ip = /bits/ 8 <192 168 0 1>;
/dhcp-enabled; /
/* remove dhcp-enabled if uncommenting static-ip configuration */
static-ip = /bits/ 8 <192 168 0 2>;
ip-netmask = /bits/ 8 <255 255 255 0>;
ip-gateway = /bits/ 8 <192 168 0 1>;
};
};
Hi boy_liao,
Are you sure the ethernet connection has no problem?
[0009.527] TFTP Client: Server IP: 192.168.0.1
[0009.531] TFTP Client: Send RRQ, file: tegra194-p2888-0001-p2822-0000.dtb
[0014.539] TFTP Client: Connection failed
Hi WayneWWW:
yes, because the second time, it download success, you can see the log
[0014.549] TFTP Client: Send RRQ, file: tegra194-p2888-0001-p2822-0000.dtb
But when it downloads system.img half of it will fail.
Hi WayneWWW:
In tftp boot, what files should we put on tftp server ? “boot.img”/“tegra194-p2888-0001-p2822-0000.dtb” or boot_sigheader.img.encrypt"/“tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt” ?
Hi boyi_liao,
Please use signed files, copy signed bins only otherwise it will result in authentication failure.
I trace the code and print the message, in tftp_client.c recv() function, i found it will fail in this condition.
Did it work on your side ?
if (blk_num != tftp_client.exptd_blk) {
#if TFTP_CLIENT_DEBUG && !PROGRESS_BAR
LWIP_DEBUGF(TFTP_DEBUG | LWIP_DBG_STATE,
(“Rcvd blk no: %u != expected blk no: %u\n”, blk_num, tftp_client.exptd_blk));
#endif
goto fail;
}
Hi boyi_liao,
We can success boot from Ethernet on r32.1/Xavier.
Please check below setting:
TFTP server is working on your host machine? (try to get file to confirm the function)
The kernel and kernel-dtb files are using signed bins and rename to boot.img and tegra194-p2888-0001-p2822-0000.dtb
Restart the xinetd service:
$ sudo service xinetd restart
The tftp-server-ip is correct in cbo.dts
Hi,
We can success boot from tftp, but downloading speed very slow, sometimes it will fail.
BR,
Patrick