Hi!
I downloaded and compiled openwrt 23 main snapshot (kernel 6.6.52 date 27-9-2024) and after booting my MT7981-rfb router it hangs on "Waiting for root device /dev/fit0..."
When I compile and flash openwrt 23-main snapshot (kernel 6.6.44 data 8-8-2024) it works fine, no waiting for root on /dev/fit0 issue.
Here is a kernel log:
Jump to BL
NOTICE: BL2: v2.9(release):OpenWrt v2023-07-24-00ac6db3-2 (mt7981-spim-nand-ddr3)
NOTICE: BL2: Built : 22:09:42, Mar 22 2024
NOTICE: WDT: Cold boot
NOTICE: WDT: disabled
NOTICE: EMI: Using DDR3 settings
NOTICE: EMI: Detected DRAM size: 256MB
NOTICE: EMI: complex R/W mem test passed
NOTICE: CPU: MT7981 (1300MHz)
NOTICE: SPI_NAND parses attributes from parameter page.
NOTICE: SPI_NAND Detected ID 0xc2
NOTICE: Page size 2048, Block size 131072, size 134217728
NOTICE: BL2: Booting BL31
NOTICE: BL31: v2.9(release):OpenWrt v2023-07-24-00ac6db3-2 (mt7981-spim-nand-ddr3)
NOTICE: BL31: Built : 22:09:42, Mar 22 2024
U-Boot 2023.07.02-OpenWrt-r23809-234f1a2efa (Mar 22 2024 - 22:09:42 +0000)
CPU: MediaTek MT7981
Model: mt7981-rfb
DRAM: 256 MiB
Core: 38 devices, 12 uclasses, devicetree: separate
spi-nand: spi_nand spi_nand@0: Macronix SPI NAND was found.
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
Loading Environment from UBI... jedec_spi_nor spi_nor@0: unrecognized JEDEC id bytes: ff, ff, ff
Read 126976 bytes from volume ubootenv to 000000004f7bf180
Read 126976 bytes from volume ubootenv2 to 000000004f7de1c0
OK
In: serial@11002000
Out: serial@11002000
Err: serial@11002000
Loading Environment from UBI... UBI partition 'ubi' already selected
Read 126976 bytes from volume ubootenv to 000000004f7bf180
Read 126976 bytes from volume ubootenv2 to 000000004f7de1c0
OK
Net: eth0: ethernet@15100000
Hit any key to stop autoboot: 0
No size specified -> Using max size (12697600)
Read 12697600 bytes from volume fit to 0000000046000000
## Loading kernel from FIT Image at 46000000 ...
Using 'config-1' configuration
Trying 'kernel-1' kernel subimage
Description: ARM64 OpenWrt Linux-6.6.52
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x46001000
Data Size: 5771711 Bytes = 5.5 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x44000000
Entry Point: 0x44000000
Hash algo: crc32
Hash value: 6f3da2ea
Hash algo: sha1
Hash value: 9a0523f6be861a5276ee961b06b5485f01862b58
Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 46000000 ...
Using 'config-1' configuration
Trying 'fdt-1' fdt subimage
Description: ARM64 OpenWrt mediatek_mt7981-rfb device tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x46583000
Data Size: 25189 Bytes = 24.6 KiB
Architecture: AArch64
Load Address: 0x43f00000
Hash algo: crc32
Hash value: 48e4cf96
Hash algo: sha1
Hash value: 2be6e9ecd506c214a6048b9dedd05706b6af670c
Verifying Hash Integrity ... crc32+ sha1+ OK
Loading fdt from 0x46583000 to 0x43f00000
## Loading fdt from FIT Image at 46000000 ...
Using 'mt7981-rfb-spim-nand' configuration
Trying 'fdt-mt7981-rfb-spim-nand' fdt subimage
Description: ARM64 OpenWrt mediatek_mt7981-rfb device tree overlay mt7981-rfb-spim-nand
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x4658a000
Data Size: 1782 Bytes = 1.7 KiB
Architecture: AArch64
Hash algo: crc32
Hash value: 9a40fd1d
Hash algo: sha1
Hash value: 981d328a22aa0352b26fa3eaf2e0342bb9e2dce5
Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 46000000 ...
Could not find configuration node
load of <NULL> failed
Booting using the fdt blob at 0x43f00000
Working FDT set to 43f00000
## Loading loadables from FIT Image at 46000000 ...
Trying 'rootfs-1' loadables subimage
Description: ARM64 OpenWrt mediatek_mt7981-rfb rootfs
Type: Filesystem Image
Compression: uncompressed
Data Start: 0x4658d000
Data Size: 6709248 Bytes = 6.4 MiB
Hash algo: crc32
Hash value: 04a5e50a
Hash algo: sha1
Hash value: c7584ca8b99d669fab6f4551b9962a86d8cdf883
Verifying Hash Integrity ... crc32+ sha1+ OK
Uncompressing Kernel Image
Loading Device Tree to 000000004f7f0000, end 000000004f7f8668 ... OK
Working FDT set to 4f7f0000
Add 'ramoops@42ff0000' node failed: FDT_ERR_EXISTS
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 6.6.52 (neo@goliath) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r27593-7ea086bb89) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Fri Sep 27 06:19:19 2024
[ 0.000000] Machine model: MediaTek MT7981 RFB
[ 0.000000] OF: reserved mem: 0x0000000042ff0000..0x0000000042ffffff (64 KiB) map non-reusable ramoops@42ff0000
[ 0.000000] OF: reserved mem: 0x0000000043000000..0x000000004302ffff (192 KiB) nomap non-reusable secmon@43000000
[ 0.000000] OF: reserved mem: 0x0000000047c80000..0x0000000047d7ffff (1024 KiB) nomap non-reusable wmcpu-reserved@47c80000
[ 0.000000] OF: reserved mem: 0x0000000047d80000..0x0000000047dbffff (256 KiB) nomap non-reusable wo-emi@47d80000
[ 0.000000] OF: reserved mem: 0x0000000047dc0000..0x0000000047ffffff (2304 KiB) nomap non-reusable wo-data@47dc0000
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000040000000-0x000000004fffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x0000000042ffffff]
[ 0.000000] node 0: [mem 0x0000000043000000-0x000000004302ffff]
[ 0.000000] node 0: [mem 0x0000000043030000-0x0000000047c7ffff]
[ 0.000000] node 0: [mem 0x0000000047c80000-0x0000000047ffffff]
[ 0.000000] node 0: [mem 0x0000000048000000-0x000000004fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000004fffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 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.4
[ 0.000000] percpu: Embedded 18 pages/cpu s34600 r8192 d30936 u73728
[ 0.000000] pcpu-alloc: s34600 r8192 d30936 u73728 alloc=18*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] CPU features: kernel page table isolation disabled by kernel configuration
[ 0.000000] alternatives: applying boot alternatives
[ 0.000000] Kernel command line: root=/dev/fit0 rootwait
[ 0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 64512
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 0MB
[ 0.000000] software IO TLB: area num 2.
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size roundup to 0MB
[ 0.000000] software IO TLB: mapped [mem 0x000000004fe48000-0x000000004fec8000] (0MB)
[ 0.000000] Memory: 239440K/262144K available (8704K kernel code, 898K rwdata, 2544K rodata, 448K init, 287K bss, 22704K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[ 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=2
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[ 0.000000] GICv3: 640 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GICv3: GICv3 features: 16 PPIs
[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x000000000c080000
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] arch_timer: cp15 timer(s) running at 13.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2ff89eacb, max_idle_ns: 440795202429 ns
[ 0.000001] sched_clock: 56 bits at 13MHz, resolution 76ns, wraps every 4398046511101ns
[ 0.000068] Calibrating delay loop (skipped), value calculated using timer frequency.. 26.00 BogoMIPS (lpj=130000)
[ 0.000076] pid_max: default: 32768 minimum: 301
[ 0.003033] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.003040] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.005202] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.005733] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[ 0.005883] rcu: Hierarchical SRCU implementation.
[ 0.005886] rcu: Max phase no-delay instances is 1000.
[ 0.006278] smp: Bringing up secondary CPUs ...
[ 0.006637] Detected VIPT I-cache on CPU1
[ 0.006680] GICv3: CPU1: found redistributor 1 region 0:0x000000000c0a0000
[ 0.006708] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.006775] smp: Brought up 1 node, 2 CPUs
[ 0.006781] SMP: Total of 2 processors activated.
[ 0.006784] CPU features: detected: 32-bit EL0 Support
[ 0.006787] CPU features: detected: CRC32 instructions
[ 0.006819] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[ 0.006822] CPU: All CPU(s) started at EL2
[ 0.006824] alternatives: applying system-wide alternatives
[ 0.010287] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.010304] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.011570] pinctrl core: initialized pinctrl subsystem
[ 0.012426] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.013022] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[ 0.013054] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.013075] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.013438] thermal_sys: Registered thermal governor 'fair_share'
[ 0.013443] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.013445] thermal_sys: Registered thermal governor 'step_wise'
[ 0.013447] thermal_sys: Registered thermal governor 'user_space'
[ 0.013522] ASID allocator initialised with 65536 entries
[ 0.014594] pstore: Using crash dump compression: deflate
[ 0.014598] pstore: Registered ramoops as persistent store backend
[ 0.014601] ramoops: using 0x10000@0x42ff0000, ecc: 0
[ 0.021729] Modules: 29504 pages in range for non-PLT usage
[ 0.021736] Modules: 521024 pages in range for PLT usage
[ 0.022694] cryptd: max_cpu_qlen set to 1000
[ 0.024758] SCSI subsystem initialized
[ 0.025280] libata version 3.00 loaded.
[ 0.026756] clocksource: Switched to clocksource arch_sys_counter
[ 0.029093] NET: Registered PF_INET protocol family
[ 0.029190] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.030333] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.030346] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.030356] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.030373] TCP bind hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.030424] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.030493] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.030509] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.030707] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.030743] PCI: CLS 0 bytes, default 64
[ 0.032291] workingset: timestamp_bits=46 max_order=16 bucket_order=0
[ 0.037098] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.037106] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.081104] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[ 0.082336] printk: console [ttyS0] disabled
[ 0.102701] 11002000.serial: ttyS0 at MMIO 0x11002000 (irq = 72, base_baud = 2500000) is a ST16650V2
[ 0.102741] printk: console [ttyS0] enabled
[ 0.840129] loop: module loaded
[ 0.845187] spi-nand spi0.1: Macronix SPI NAND was found.
[ 0.850629] spi-nand spi0.1: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[ 0.859113] 5 fixed-partitions partitions found on MTD device spi0.1
[ 0.865739] Creating 5 MTD partitions on "spi0.1":
[ 0.870628] 0x000000580000-0x000004580000 : "ubi"
[ 0.912174] ubi0: default fastmap pool size: 25
[ 0.916705] ubi0: default fastmap WL pool size: 12
[ 0.921516] ubi0: attaching mtd0
[ 1.476844] ubi0: scanning is finished
[ 1.493694] ubi0: attached mtd0 (name "ubi", size 64 MiB)
[ 1.499117] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[ 1.505980] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[ 1.512758] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 1.519709] ubi0: good PEBs: 511, bad PEBs: 1, corrupted PEBs: 0
[ 1.525702] ubi0: user volume: 4, internal volumes: 1, max. volumes count: 128
[ 1.532912] ubi0: max/mean erase counter: 3/1, WL threshold: 4096, image sequence number: 0
[ 1.541251] ubi0: available PEBs: 0, total reserved PEBs: 511, PEBs reserved for bad PEB handling: 19
[ 1.550464] ubi0: background thread "ubi_bgt0d" started, PID 170
[ 1.557490] block ubiblock0_2: created from ubi0:2(fit)
[ 1.562981] 0x000000380000-0x000000580000 : "FIP"
[ 1.569417] 0x000000180000-0x000000380000 : "Factory"
[ 1.576103] 0x000000100000-0x000000180000 : "u-boot-env"
[ 1.582183] 0x000000000000-0x000000100000 : "BL2"
[ 1.718041] mtk_soc_eth 15100000.ethernet: generated random MAC address 65:74:68:25:64:00
[ 1.726231] mtk_soc_eth 15100000.ethernet: generated random MAC address 65:74:68:25:64:00
[ 1.749829] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0xffffffc081400000, irq 75
[ 1.759750] mtk_soc_eth 15100000.ethernet eth1: mediatek frame engine at 0xffffffc081400000, irq 75
[ 1.769490] i2c_dev: i2c /dev entries driver
[ 1.775519] mtk-wdt 1001c000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)
[ 1.784593] NET: Registered PF_INET6 protocol family
[ 1.790538] Segment Routing with IPv6
[ 1.794234] In-situ OAM (IOAM) with IPv6
[ 1.798225] NET: Registered PF_PACKET protocol family
[ 1.803413] 8021q: 802.1Q VLAN Support v1.8
[ 1.830620] phy phy-soc:usb-phy@11e10000.1: type_sw - reg 0x218, index 0
[ 1.891248] mt7530-mdio mdio-bus:1f: configuring for fixed/2500base-x link mode
[ 1.907859] mt7530-mdio mdio-bus:1f: Link is Up - 2.5Gbps/Full - flow control rx/tx
[ 1.910929] mt7530-mdio mdio-bus:1f lan1 (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7531 PHY] (irq=79)
[ 1.937887] mt7530-mdio mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7531 PHY] (irq=80)
[ 1.959940] mt7530-mdio mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7531 PHY] (irq=81)
[ 1.982006] mt7530-mdio mdio-bus:1f lan4 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7531 PHY] (irq=82)
[ 1.993560] mtk_soc_eth 15100000.ethernet eth0: entered promiscuous mode
[ 2.000325] DSA: tree 0 setup
[ 2.003612] clk: Disabling unused clocks
[ 2.008050] Waiting for root device /dev/fit0...
Does anyone know why it does that and how to fix it?
Also I saw a new line in mt7981-rfb.dts:
chosen: chosen {
stdout-path = "serial0:115200n8";
bootargs-append = " root=/dev/fit0 rootwait";
};
That bootargs line is new since recent snapshots. I believe the developpers added that line for a reason so instead of trying to remove that line, what do I have to do to make the firmware fully booting again?