Support Nano on OpenWRT

Early test:

U-Boot 2020.04-g6b630d64fd (Feb 19 2021 - 08:37:46 -0800)

SoC: tegra210
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM:  4 GiB
MMC:   sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash... SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
835 bytes read in 27 ms (29.3 KiB/s)
L4T boot options
1:      primary kernel
2:      OpenWRT kernel
Enter choice: 2
2:      OpenWRT kernel
Retrieving file: /boot/initrd
7159624 bytes read in 333 ms (20.5 MiB/s)
Retrieving file: /boot/Image2
13357064 bytes read in 619 ms (20.6 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 max0
## Flattened Device Tree blob at 83100000
   Booting using the fdt blob at 0x83100000
ERROR: reserving fdt memory region failed (addr=0 size=0)
ERROR: reserving fdt memory region failed (addr=0 size=0)
   Using Device Tree in place at 0000000083100000, end 000000008317e68d
copying carveout for /host1x@50000000/dc@54200000...
copying carveout for /host1x@50000000/dc@54240000...

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd071]
[    0.000000] Linux version 5.15.50 (koen@koen-nuc11) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 11.3.0 r0+20012-0781fb22fa) 11.3.0, GNU ld (GNU Binutils) 2.37) #0 SMP Thu Jul 7 15:02:25 2022
[    0.000000] Machine model: NVIDIA Jetson Nano Developer Kit
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb0_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb0_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb1_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb1_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000017f1fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000afffffff]
[    0.000000]   node   0: [mem 0x00000000b0000000-0x00000000b01fffff]
[    0.000000]   node   0: [mem 0x00000000b0200000-0x00000000fedfffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000017f1fffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000017f1fffff]
[    0.000000] On node 0, zone Normal: 4608 pages in unavailable ranges
[    0.000000] On node 0, zone Normal: 3584 pages in unavailable ranges
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 17 pages/cpu s31000 r8192 d30440 u69632
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-BHB
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1024056
[    0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=u0
[    0.000000] Unknown kernel command line parameters "vpr_resize tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 lp0_vec=0x1000.
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000fae00000-0x00000000fee00000] (64MB)
[    0.000000] Memory: 3581744K/4161536K available (8832K kernel code, 1012K rwdata, 2556K rodata, 512K init, 311K bss, 579792K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000]  Tracing variant of 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=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] /interrupt-controller@60004000: 192 interrupts forwarded to /interrupt-controller
[    0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000000] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.008311] tegra-timer: failed to map irq for cpu0
[    0.013348] Failed to initialize '/timer@60005000': -22
[    0.019859] Console: colour dummy device 80x25
[    0.024452] printk: console [tty0] enabled
[    0.028673] printk: bootconsole [uart8250] disabled
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd071]
[    0.000000] Linux version 5.15.50 (koen@koen-nuc11) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 11.3.0 r0+20012-0781fb22fa) 11.3.0, GNU ld (GNU Binutils) 2.37) #0 SMP Thu Jul 7 15:02:25 2022
[    0.000000] Machine model: NVIDIA Jetson Nano Developer Kit
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb0_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb0_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb1_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'fb1_carveout': base 0x0000000000000000, size 0 MiB
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000017f1fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000afffffff]
[    0.000000]   node   0: [mem 0x00000000b0000000-0x00000000b01fffff]
[    0.000000]   node   0: [mem 0x00000000b0200000-0x00000000fedfffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000017f1fffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000017f1fffff]
[    0.000000] On node 0, zone Normal: 4608 pages in unavailable ranges
[    0.000000] On node 0, zone Normal: 3584 pages in unavailable ranges
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 17 pages/cpu s31000 r8192 d30440 u69632
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-BHB
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1024056
[    0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=u0
[    0.000000] Unknown kernel command line parameters "vpr_resize tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 lp0_vec=0x1000.
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000fae00000-0x00000000fee00000] (64MB)
[    0.000000] Memory: 3581744K/4161536K available (8832K kernel code, 1012K rwdata, 2556K rodata, 512K init, 311K bss, 579792K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000]  Tracing variant of 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=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] /interrupt-controller@60004000: 192 interrupts forwarded to /interrupt-controller
[    0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000000] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.008311] tegra-timer: failed to map irq for cpu0
[    0.013348] Failed to initialize '/timer@60005000': -22
[    0.019859] Console: colour dummy device 80x25
[    0.024452] printk: console [tty0] enabled
[    0.028673] printk: bootconsole [uart8250] disabled
[    0.033742] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.033763] pid_max: default: 32768 minimum: 301
[    0.033993] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.034060] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.035764] rcu: Hierarchical SRCU implementation.
[    0.035933] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.039303] Speedo Revision 4
[    0.039318] Tegra210: unknown SKU 0x8f
[    0.039338] Tegra Revision: A02 SKU: 143 CPU Process: 0 SoC Process: 0
[    0.040272] tegra-pmc: access to PMC is restricted to TZ
[    0.040623] smp: Bringing up secondary CPUs ...
[    0.041196] Detected PIPT I-cache on CPU1
[    0.041284] CPU1: Booted secondary processor 0x0000000001 [0x411fd071]
[    0.041900] Detected PIPT I-cache on CPU2
[    0.041936] CPU2: Booted secondary processor 0x0000000002 [0x411fd071]
[    0.042513] Detected PIPT I-cache on CPU3
[    0.042547] CPU3: Booted secondary processor 0x0000000003 [0x411fd071]
[    0.042606] smp: Brought up 1 node, 4 CPUs
[    0.042653] SMP: Total of 4 processors activated.
[    0.042669] CPU features: detected: 32-bit EL0 Support
[    0.042679] CPU features: detected: CRC32 instructions
[    0.042735] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.042751] CPU: All CPU(s) started at EL2
[    0.042774] alternatives: patching kernel code
[    0.063925] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.063987] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.064198] pinctrl core: initialized pinctrl subsystem
[    0.065416] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.066061] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.066167] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.066251] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.066636] thermal_sys: Registered thermal governor 'step_wise'
[    0.068574] ASID allocator initialised with 65536 entries
[    0.079793] tegra210-pinctrl 700008d4.pinmux: there is not valid maps for state drive
[    0.097348] tegra-mc 70019000.memory-controller: no memory timings for RAM code 0 registered
[    0.112958] cryptd: max_cpu_qlen set to 1000
[    0.115030] vdd-5v0-hdmi: supplied by vdd-5v0-sys
[    0.115303] vdd-fan: supplied by vdd-5v0-sys
[    0.115495] vdd-usb-vbus: supplied by vdd-5v0-sys
[    0.115848] iommu: Default domain type: Translated 
[    0.115858] iommu: DMA domain TLB invalidation policy: strict mode 
[    0.116128] SCSI subsystem initialized
[    0.116482] usbcore: registered new interface driver usbfs
[    0.116524] usbcore: registered new interface driver hub
[    0.116556] usbcore: registered new device driver usb
[    0.116817] pps_core: LinuxPPS API ver. 1 registered
[    0.116830] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.116849] PTP clock support registered
[    0.117189] Advanced Linux Sound Architecture Driver Initialized.
[    0.118066] clocksource: Switched to clocksource arch_sys_counter
[    0.121009] NET: Registered PF_INET protocol family
[    0.121558] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.123354] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.123429] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.123449] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.123667] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.124236] TCP: Hash tables configured (established 32768 bind 32768)
[    0.124472] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.124573] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.124840] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.124890] PCI: CLS 0 bytes, default 64
[    0.125538] Unpacking initramfs...
[    0.406921] Freeing initrd memory: 6988K
[    0.409456] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.412658] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.412741] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.422457] tegra-apbdma 60020000.dma: Tegra20 APB DMA driver registered 32 channels
[    0.425921] tegra-pmc 7000e400.pmc: i2c-thermtrip node not found, emergency thermal reset disabled.
[    0.427413] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.436510] loop: module loaded
[    0.440446] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.440493] ehci-platform: EHCI generic platform driver
[    0.440729] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.440759] ohci-platform: OHCI generic platform driver
[    0.441233] usbcore: registered new interface driver usb-storage
[    0.442053] mousedev: PS/2 mouse device common for all mice
[    0.442180] i2c_dev: i2c /dev entries driver
[    0.443691] tegra-wdt 60005000.timer: initialized (heartbeat = 120 sec, nowayout = 0)
[    0.445516] sdhci: Secure Digital Host Controller Interface driver
[    0.445545] sdhci: Copyright(c) Pierre Ossman
[    0.445553] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.446586] tegra210-emc: probe of 7001b000.external-memory-controller failed with error -2
[    0.450447] NET: Registered PF_INET6 protocol family
[    0.451764] Segment Routing with IPv6
[    0.451813] In-situ OAM (IOAM) with IPv6
[    0.451873] NET: Registered PF_PACKET protocol family
[    0.451929] can: controller area network core
[    0.452036] NET: Registered PF_CAN protocol family
[    0.452050] 8021q: 802.1Q VLAN Support v1.8
[    0.469163] gpio-151 (camera-control-output-low): hogged as output/low
[    0.469224] gpio-152 (camera-control-output-low): hogged as output/low
[    0.469251] gpio-6 (system-suspend-gpio): hogged as output/high
[    0.472390] tegra-uart 70006000.serial: deferred probe timeout, ignoring dependency
[    0.472769] printk: console [ttyS0] disabled
[    0.472840] 70006000.serial: ttyS0 at MMIO 0x70006000 (irq = 67, base_baud = 25500000) is a Tegra
[    1.471766] printk: console [ttyS0] enabled
[    1.476418] tegra-qspi 70410000.spi: deferred probe timeout, ignoring dependency
[    1.485034] tegra-i2c 7000c000.i2c: deferred probe timeout, ignoring dependency
[    1.493061] tegra-i2c 7000c400.i2c: deferred probe timeout, ignoring dependency
[    1.500958] tegra-i2c 7000c500.i2c: deferred probe timeout, ignoring dependency
[    1.508814] tegra-i2c 7000c700.i2c: deferred probe timeout, ignoring dependency
[    1.516630] tegra-i2c 7000d000.i2c: deferred probe timeout, ignoring dependency
[    1.525655] tegra-i2c 7000d100.i2c: deferred probe timeout, ignoring dependency
[    1.537380] ALSA device list:
[    1.540432]   No soundcards found.
[    1.544466] Freeing unused kernel memory: 512K
[    1.618180] Run /init as init process
[   31.848093] vdd-5v0-sys: disabling
[   31.851528] vdd-5v0-hdmi: disabling
[   31.855014] vdd-fan: disabling
[   31.858081] vdd-usb-vbus: disabling