On Tue, Mar 26, 2019 at 04:06:46PM +0000, Peter Robinson wrote: > > > > This set of patches move some code from the Tegra186 SoC specific > > > > directory to a common location so that it can be more easily shared. > > > > Since the differences between Tegra186 and earlier generations are > > > > now very small, the builds are unified to avoid duplication of code. > > > > > > > > We also add support for accessing the PMC on systems where it can only > > > > be accessed from TrustZone. > > > > > > > > Finally, all of this is used to implement support for the recently > > > > announced NVIDIA Jetson Nano Developer Kit. > > > > > > > > These patches, along with patches to enable network booting[0], can also > > > > be found in the p3450 branch of the following repository: > > > > > > > > https://github.com/thierryreding/u-boot > > > > > > I've tested this on both the Jetson TX1 and TX2 and I've very pleased > > > to see this series. Overall it works fine with the 28.x SDK I've > > > tested with in the past. I have one problem, which I also saw with my > > > previous hacked up version of the NV patches I had to boot the TX1 > > > with cboot, when booting with UEFI I get the early boot crash below > > > (earlyprintk cmd line args need) but if I put a line in the grub.cfg > > > for grub to load the devicetree it boots fine. I suspect, but aren't > > > entirely sure, that the fdt_addr_r is getting stomped on somewhere, or > > > is inaccessible, when booted with UEFI where it's fine with extlinux > > > booting. > > > > I'm not sure I understand exactly how UEFI boot works in conjunction > > with U-Boot. Where does the FDT come from in that set up? Does U-Boot > > It's similar to the extlinux support in that it loads it off the disk > if it can find it from the kernel. In my case I tried loading it from > one provided by the kernel on the U-Boot cmd line and running it > manually: > > load mmc 1:1 ${kernel_addr_r} efi/fedora/grubaa64.efi > load mmc 1:2 ${fdt_addr_r} /dtb/nvidia/tegra186-p2771-0000.dtb > bootefi ${kernel_addr_r} ${fdt_addr_r} > > The above crashed with the one below, if I load it by adding the line > below to the grub config it boots fine. > devicetree ($root)/dtb/nvidia/tegra186-p2771-0000.dtb > > > already load it from somewhere and pass it to Linux via UEFI? Or does > > U-Boot pass on its builtin FDT? If the latter, that's not something > > that we currently support, so I'm not surprised that it doesn't work. > > So if U-Boot can't fine it on disk it will fail back to the one > provided by U-Boot but in the above that's not the case.
I think it is. If you look at the following line from the log you posted: [ 0.000000] Machine model: NVIDIA P2771-0000-500 that string matches exactly what's in the DTB that ships with U-Boot, whereas upstream Linux uses this model string: NVIDIA Tegra186 P2771-0000 Development Board > > Given the error message before the crash, I think you might get a little > > further if you copy the "timer" node from Linux's tegra186.dtsi to that > > in U-Boot. > > Possibly but I don't believe it's using the U-Boot DT, at least based > on my experience from all the other platforms we support it should be > loading the kernel provided one off disk, unless the U-Boot it > stomping on that one some how later in the process. Given the above I don't think it's using the U-Boot that you've loaded from disk, unless the version you have on disk is not the one installed by Linux. Thierry > > > EFI stub: Booting Linux Kernel... > > > EFI stub: EFI_RNG_PROTOCOL unavailable, no randomness supplied > > > EFI stub: Using DTB from configuration table > > > EFI stub: Exiting boot services and installing virtual address map... > > > [ 0.000000] Booting Linux on physical CPU 0x0000000100 [0x411fd073] > > > [ 0.000000] Linux version 5.1.0-0.rc1.git0.1.fc29.aarch64 > > > (perob...@morpheus.roving-it.com) (gcc version 8.1.1 20180626 (Red Hat > > > Cross 8.1.1-3) (GCC)) #1 SMP Tue Mar 19 16:05:25 GMT 2019 > > > [ 0.000000] Machine model: NVIDIA P2771-0000-500 > > > [ 0.000000] efi: Getting EFI parameters from FDT: > > > [ 0.000000] efi: EFI v2.70 by Das U-Boot > > > [ 0.000000] efi: SMBIOS=0xefffb000 MEMRESERVE=0xd0915040 > > > [ 0.000000] cma: Reserved 64 MiB at 0x00000000fc000000 > > > [ 0.000000] earlycon: uart0 at MMIO 0x0000000003100000 (options '') > > > [ 0.000000] printk: bootconsole [uart0] enabled > > > [ 0.000000] NUMA: No NUMA configuration found > > > [ 0.000000] NUMA: Faking a node at [mem > > > 0x0000000080000000-0x00000002767fffff] > > > [ 0.000000] NUMA: NODE_DATA [mem 0x2751f1780-0x2751fefff] > > > [ 0.000000] Zone ranges: > > > [ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000ffffffff] > > > [ 0.000000] Normal [mem 0x0000000100000000-0x00000002767fffff] > > > [ 0.000000] Movable zone start for each node > > > [ 0.000000] Early memory node ranges > > > [ 0.000000] node 0: [mem 0x0000000080000000-0x0000000087efafff] > > > [ 0.000000] node 0: [mem 0x0000000087efb000-0x0000000087f04fff] > > > [ 0.000000] node 0: [mem 0x0000000087f05000-0x00000000efff7fff] > > > [ 0.000000] node 0: [mem 0x00000000efff8000-0x00000000efffffff] > > > [ 0.000000] node 0: [mem 0x00000000f0200000-0x0000000275ffffff] > > > [ 0.000000] node 0: [mem 0x0000000276600000-0x00000002767fffff] > > > [ 0.000000] Zeroed struct page in unavailable ranges: 18 pages > > > [ 0.000000] Initmem setup node 0 [mem > > > 0x0000000080000000-0x00000002767fffff] > > > [ 0.000000] On node 0 totalpages: 2056192 > > > [ 0.000000] DMA32 zone: 8192 pages used for memmap > > > [ 0.000000] DMA32 zone: 0 pages reserved > > > [ 0.000000] DMA32 zone: 523776 pages, LIFO batch:63 > > > [ 0.000000] Normal zone: 23968 pages used for memmap > > > [ 0.000000] Normal zone: 1532416 pages, LIFO batch:63 > > > [ 0.000000] Failed to find device node for boot cpu > > > [ 0.000000] missing boot CPU MPIDR, not enabling secondaries > > > [ 0.000000] percpu: Embedded 23 pages/cpu @(____ptrval____) s55064 > > > r8192 d30952 u94208 > > > [ 0.000000] pcpu-alloc: s55064 r8192 d30952 u94208 alloc=23*4096 > > > [ 0.000000] pcpu-alloc: [0] 0 > > > [ 0.000000] Detected PIPT I-cache on CPU0 > > > [ 0.000000] CPU features: detected: EL2 vector hardening > > > [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: > > > 2024032 > > > [ 0.000000] Policy zone: Normal > > > [ 0.000000] Kernel command line: > > > BOOT_IMAGE=(hd0,msdos2)/vmlinuz-5.1.0-0.rc1.git0.1.fc29.aarch64 > > > root=UUID=fe563825-bdab-461d-9cbf-e340a971fa61 ro console=ttyS0,115200 > > > earlycon uefi_debug earlyprintk=serial,ttyS0,115200 debug > > > [ 0.000000] software IO TLB: mapped [mem 0xf7fff000-0xfbfff000] (64MB) > > > [ 0.000000] Memory: 7889768K/8224768K available (11068K kernel > > > code, 2032K rwdata, 4808K rodata, 5952K init, 935K bss, 269464K > > > reserved, 65536K cma-reserved) > > > [ 0.000000] random: get_random_u64 called from > > > kmem_cache_open+0x3c/0x4c0 with crng_init=0 > > > [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > > > [ 0.000000] ftrace: allocating 40204 entries in 158 pages > > > [ 0.000000] rcu: Hierarchical RCU implementation. > > > [ 0.000000] rcu:RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=1. > > > [ 0.000000] Tasks RCU enabled. > > > [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay > > > is 10 jiffies. > > > [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, > > > nr_cpu_ids=1 > > > [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 > > > [ 0.000000] GIC: Using split EOI/Deactivate mode > > > [ 0.000000] timer_probe: no matching timers found > > > [ 0.000000] Kernel panic - not syncing: Unable to initialise > > > architected timer. > > > [ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted > > > 5.1.0-0.rc1.git0.1.fc29.aarch64 #1 > > > [ 0.000000] Hardware name: NVIDIA P2771-0000-500 (DT) > > > [ 0.000000] Call trace: > > > [ 0.000000] dump_backtrace+0x0/0x128 > > > [ 0.000000] show_stack+0x24/0x30 > > > [ 0.000000] dump_stack+0xa8/0xcc > > > [ 0.000000] panic+0x12c/0x2dc > > > [ 0.000000] time_init+0x34/0x4c > > > [ 0.000000] start_kernel+0x354/0x4c0 > > > [ 0.000000] ---[ end Kernel panic - not syncing: Unable to > > > initialise architected timer. ]--- > > > > > > > > > > Thanks, > > > > Thierry > > > > > > > > [0]: http://patchwork.ozlabs.org/project/uboot/list/?series=96153 > > > > > > > > Thierry Reding (15): > > > > ARM: tegra: Use common header for PMU declarations > > > > ARM: tegra: Guard clock code with a Kconfig symbol > > > > ARM: tegra: Guard GP pad control code with a Kconfig symbol > > > > ARM: tegra: Guard memory controller code with a Kconfig symbol > > > > ARM: tegra: Guard pin controller code with a Kconfig symbol > > > > ARM: tegra: Guard powergate code with a Kconfig symbol > > > > ARM: tegra: Fix save_boot_params() prototype > > > > ARM: tegra: Allow boards to override boot target devices > > > > ARM: tegra: Support TZ-only access to PMC > > > > ARM: tegra: Workaround UDC boot issues only if necessary > > > > ARM: tegra: Restore DRAM bank count > > > > ARM: tegra: Unify Tegra186 builds > > > > ARM: tegra: Implement cboot_save_boot_params() in C > > > > ARM: tegra: Implement cboot_get_ethaddr() > > > > ARM: tegra: Add NVIDIA Jetson Nano Developer Kit support > > > > > > > > arch/arm/dts/tegra210-p3450-0000.dts | 130 ++++++++ > > > > arch/arm/include/asm/arch-tegra/cboot.h | 45 +++ > > > > arch/arm/include/asm/arch-tegra/pmc.h | 20 +- > > > > .../asm/{arch-tegra20 => arch-tegra}/pmu.h | 6 +- > > > > arch/arm/include/asm/arch-tegra/tegra.h | 6 + > > > > arch/arm/include/asm/arch-tegra114/pmu.h | 12 - > > > > arch/arm/include/asm/arch-tegra124/pmu.h | 13 - > > > > arch/arm/include/asm/arch-tegra210/pmu.h | 13 - > > > > arch/arm/include/asm/arch-tegra30/pmu.h | 12 - > > > > arch/arm/mach-tegra/Kconfig | 31 ++ > > > > arch/arm/mach-tegra/Makefile | 16 +- > > > > arch/arm/mach-tegra/board.c | 41 ++- > > > > arch/arm/mach-tegra/board186.c | 32 -- > > > > arch/arm/mach-tegra/board2.c | 37 ++- > > > > arch/arm/mach-tegra/cache.c | 2 + > > > > .../{tegra186/nvtboot_board.c => cboot.c} | 280 ++++++++++++++++-- > > > > arch/arm/mach-tegra/clock.c | 13 +- > > > > arch/arm/mach-tegra/cmd_enterrcm.c | 6 +- > > > > arch/arm/mach-tegra/cpu.c | 20 +- > > > > arch/arm/mach-tegra/emc.c | 2 +- > > > > arch/arm/mach-tegra/lowlevel_init.S | 39 --- > > > > arch/arm/mach-tegra/pmc.c | 92 ++++++ > > > > arch/arm/mach-tegra/powergate.c | 11 +- > > > > arch/arm/mach-tegra/tegra186/Makefile | 4 - > > > > arch/arm/mach-tegra/tegra186/nvtboot_ll.S | 20 -- > > > > arch/arm/mach-tegra/tegra186/nvtboot_mem.c | 172 ----------- > > > > arch/arm/mach-tegra/tegra210/Kconfig | 7 + > > > > board/nvidia/p2771-0000/p2771-0000.c | 10 +- > > > > board/nvidia/p3450-0000/Kconfig | 12 + > > > > board/nvidia/p3450-0000/MAINTAINERS | 6 + > > > > board/nvidia/p3450-0000/Makefile | 8 + > > > > board/nvidia/p3450-0000/p3450-0000.c | 143 +++++++++ > > > > .../p3450-0000/pinmux-config-p3450-0000.h | 257 ++++++++++++++++ > > > > configs/p2771-0000-000_defconfig | 2 +- > > > > configs/p2771-0000-500_defconfig | 2 +- > > > > configs/p3450-0000_defconfig | 54 ++++ > > > > include/configs/p3450-0000.h | 44 +++ > > > > include/configs/tegra-common-post.h | 2 + > > > > 38 files changed, 1230 insertions(+), 392 deletions(-) > > > > create mode 100644 arch/arm/dts/tegra210-p3450-0000.dts > > > > create mode 100644 arch/arm/include/asm/arch-tegra/cboot.h > > > > rename arch/arm/include/asm/{arch-tegra20 => arch-tegra}/pmu.h (73%) > > > > delete mode 100644 arch/arm/include/asm/arch-tegra114/pmu.h > > > > delete mode 100644 arch/arm/include/asm/arch-tegra124/pmu.h > > > > delete mode 100644 arch/arm/include/asm/arch-tegra210/pmu.h > > > > delete mode 100644 arch/arm/include/asm/arch-tegra30/pmu.h > > > > delete mode 100644 arch/arm/mach-tegra/board186.c > > > > rename arch/arm/mach-tegra/{tegra186/nvtboot_board.c => cboot.c} (50%) > > > > delete mode 100644 arch/arm/mach-tegra/lowlevel_init.S > > > > create mode 100644 arch/arm/mach-tegra/pmc.c > > > > delete mode 100644 arch/arm/mach-tegra/tegra186/nvtboot_ll.S > > > > delete mode 100644 arch/arm/mach-tegra/tegra186/nvtboot_mem.c > > > > create mode 100644 board/nvidia/p3450-0000/Kconfig > > > > create mode 100644 board/nvidia/p3450-0000/MAINTAINERS > > > > create mode 100644 board/nvidia/p3450-0000/Makefile > > > > create mode 100644 board/nvidia/p3450-0000/p3450-0000.c > > > > create mode 100644 board/nvidia/p3450-0000/pinmux-config-p3450-0000.h > > > > create mode 100644 configs/p3450-0000_defconfig > > > > create mode 100644 include/configs/p3450-0000.h > > > > > > > > -- > > > > 2.21.0 > > > > > > > > _______________________________________________ > > > > U-Boot mailing list > > > > U-Boot@lists.denx.de > > > > https://lists.denx.de/listinfo/u-boot
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot