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@3400000: 1, sdhci@3460000: 0 Loading Environment from MMC... OK In: serial Out: serial Err: serial Net: eth0: ethernet@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@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@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@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@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@2490000 Waiting for PHY auto negotiation to complete........ done Using ethernet@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 sd...@3400000.blk... Disk sd...@3400000.blk not ready Scanning disk sd...@3460000.blk... Found 32 disks copying carveout for /host1x@13e00000/display-hub@15200000/display@15200000... copying carveout for /host1x@13e00000/display-hub@15200000/display@15210000... copying carveout for /host1x@13e00000/display-hub@15200000/display@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/ _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot