[U-Boot] Jetson TX2 hangs during dhcp boot
Mian Yousaf Kaukab
ykaukab at suse.de
Fri Jun 14 17:09:34 UTC 2019
Hi,
I am seeing a hang with dhcp boot on Jetson TX2. Its running firmware from
L4T 32.1 with U-Boot from master branch (c2ea87883e) with [1] applied.
I use following command sequence at u-boot prompt to boot:
Tegra186 (P2771-0000-500) # setenv ftdfile tegra186-p2771-0000.dtb
Tegra186 (P2771-0000-500) # setenv boot_targets dhcp
Tegra186 (P2771-0000-500) # boot
Last thing I see is the following error from TF-A and the board hangs:
ERROR: ARI request timed out: req 89 on CPU 4
ASSERT: plat/nvidia/tegra/soc/t186/drivers/mce/ari.c <127> : retries != 0U
Here is the complete log:
U-Boot 2019.07-rc4-00137-g6fefd9c475 (Jun 14 2019 - 16:27:34 +0200)
TEGRA186
Model: NVIDIA P2771-0000-500
Board: NVIDIA P2771-0000
DRAM: 7.8 GiB
MMC: sdhci at 3400000: 1, sdhci at 3460000: 0
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net: eth0: ethernet at 2490000
Hit any key to stop autoboot: 0
Tegra186 (P2771-0000-500) # setenv boot_targets dhcp
Tegra186 (P2771-0000-500) # boot
starting USB...
No working controllers found
maximum number of regions parsed, aborting
ethernet at 2490000 Waiting for PHY auto negotiation to complete...... done
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
DHCP client bound to address xx.xx.xx.xx (1259 ms)
Using ethernet at 2490000 device
TFTP from server xx.xx.xx.xx; our IP address is xx.xx.xx.xx
Filename 'boot.scr.uimg'.
Load address: 0x82600000
Loading: *
TFTP error: 'File not found' (1)
Not retrying...
ethernet at 2490000 Waiting for PHY auto negotiation to complete........ done
BOOTP broadcast 1
DHCP client bound to address xx.xx.xx.xx (5 ms)
Using ethernet at 2490000 device
TFTP from server xx.xx.xx.xx; our IP address is xx.xx.xx.xx
Filename 'aarch64/grub.efi'.
Load address: 0x80280000
Loading: T #######T ##########################################################
#################################################################
##
181.6 KiB/s
done
Bytes transferred = 1936896 (1d8e00 hex)
ethernet at 2490000 Waiting for PHY auto negotiation to complete........ done
Using ethernet at 2490000 device
TFTP from server xx.xx.xx.xx; our IP address is xx.xx.xx.xx
Filename 'dtb/tegra186-p2771-0000.dtb'.
Load address: 0x82400000
Loading: ###
2.6 MiB/s
done
Bytes transferred = 30196 (75f4 hex)
MMC: no card present
Scanning disk sdhci at 3400000.blk...
Disk sdhci at 3400000.blk not ready
Scanning disk sdhci at 3460000.blk...
Found 32 disks
copying carveout for /host1x at 13e00000/display-hub at 15200000/display at 15200000...
copying carveout for /host1x at 13e00000/display-hub at 15200000/display at 15210000...
copying carveout for /host1x at 13e00000/display-hub at 15200000/display at 15220000...
ERROR: ARI request timed out: req 89 on CPU 4
ASSERT: plat/nvidia/tegra/soc/t186/drivers/mce/ari.c <127> : retries != 0U
It turned out that the last call to TF-A was from __asm_invalidate_l3_icache().
Following is the call trace:
efi_load_image()
efi_load_pe()
invalidate_icache_all()
__asm_invalidate_l3_icache()
__asm_invalidate_l3_icache() has been called a couple of times before this point
without any issues.
If I boot the same EFI binary manually with bootefi it works fine. I can see that
__asm_invalidate_l3_icache() returns without the hang. Following is the working
command sequence:
Tegra186 (P2771-0000-500) # dhcp
Tegra186 (P2771-0000-500) # tftpboot $fdt_addr_r dtb/tegra186-p2771-0000.dtb
Tegra186 (P2771-0000-500) # tftpboot $kernel_addr_r aarch64/grub.efi
Tegra186 (P2771-0000-500) # bootefi $kernel_addr_r $fdt_addr_r
This issue is 100% reproducible.
Any thoughts on what could be wrong or how to debug it further?
Thanks,
Yousaf
[1]: https://patchwork.ozlabs.org/patch/1115052/
More information about the U-Boot
mailing list