[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