OpenWrt on a old D-Link DSL2640B E1 HW

Man, I feel so newbie... The error message is even telling me the property is missing... Please forgive me. :slight_smile:
I'll post the dts as soon as I'm back home.

The current DTB:

#include "bcm6338.dtsi"

#include <dt-bindings/input/input.h>

/ {
	model = "D-Link DSL-2640U/BRU/C";
	compatible = "d-link,dsl-2640u", "brcm,bcm6338";

	chosen {
		bootargs = "root=1f01 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200";
		stdout-path = "serial0:115200n8";
	};

	leds {
		compatible = "gpio-leds";

		green_power {
			label = "green:power";
			gpios = <&gpio0 0 1>;
			default-state = "on";
		};

		green_stop {
			label = "green:ppp";
			gpios = <&gpio0 4 1>;
		};

		green_adsl {
			label = "green:ppp-fail";
			gpios = <&gpio0 5 1>;
		};
	};
};

&lsspi {
	status = "okay";

    flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <781000>;

        #address-cells = <1>;
        #size-cells = <1>;

        partitions {
            //compatible = "brcm,bcm963xx-cfe-nor-partitions";

            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            cfe@0 {
                label = "CFE";
                reg = <0x000000 0x010000>;
                read-only;
            };

            linux@10000 {
                label = "linux";
                reg = <0x010000 0x3e0000>;
                compatible = "brcm,bcm963xx-imagetag";
            };

            nvram@0 {
                label = "nvram";
                reg = <0x000000 0x010000>;
            };
        };
    };
};

&uart0 {
	status = "okay";
};

bcm6338.dtsi is unmodified, as in https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/bcm63xx/dts/bcm6338.dtsi

The current boot log is this:

CFE version 1.0.37-10.3 for BCM96338 (32bit,SP,BE)
Build Date: Tue May 31 14:36:37 EDT 2011 (root@localhost.localdomain)
Copyright (C) 2000-2006 Broadcom Corporation.

Boot Address 0xbfc00000

Initializing Arena.
Initializing Devices.
max_op_len=63
flash=W25X32 size=4MB id=0xef3016  sector=64k
st_reg1_3c|Serial flash device: name W25X32, id 0xef3016, size 4096KB
Flash Layout: Boot[63,0xbfff0000] Kern[1,0xbfc10000]
              AuxFS[61,0xbffd0000] Misc[61,0xbffd0000] PSI[63,0xbfff0000]
Flash RootFS Partition Length: 3932160
100 MB Full-Duplex (auto-neg)
CPU type 0x29010: 240MHz
Total memory: 16777216 bytes (16MB)

Total memory used by CFE:  0x80401000 - 0x80526390 (1201040)
Initialized Data:          0x8041DB60 - 0x8041FB90 (8240)
BSS Area:                  0x8041FB90 - 0x80424390 (18432)
Local Heap:                0x80424390 - 0x80524390 (1048576)
Stack Area:                0x80524390 - 0x80526390 (8192)
Text (code) segment:       0x80401000 - 0x8041DB5C (117596)
Boot area (physical):      0x00527000 - 0x00567000
Relocation Factor:         I:00000000 - D:00000000


Board IP address                  : 192.168.1.1:ffffff00  
Host IP address                   : 192.168.1.3  
Gateway IP address                :   
Run from flash/host (f/h)         : f  
Default host run file name        : vmlinux  
Default host flash file name      : bcm963xx_fs_kernel  
Boot delay (0-9 seconds)          : 1  
Board Id (0-9)                    : 96333W  
Number of MAC Addresses (1-32)    : 11  
Base MAC Address                  : 00:26:5a:54:8a:95  
PSI Size (1-64) KBytes            : 24  
Flash Block Size (1-128) in KBytes: 1  
Auxillary File System Size Percent: 0  

udp_send finished
No answer .auto boot ...
*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Booting from only image (0xbfc10000) ...
Code Address: 0x80A00000, Entry Address: 0x80a00000
Decompression OK!
Entry at 0x80a00000
Closing network.
Starting program at 0x80a00000
[    0.000000] Linux version 5.4.117 (alexsmith@xps13) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16708-e7249669d2)) #0 Wed May 12 16:32:03 2021
[    0.000000] Detected Broadcom 0x6338 CPU revision a2
[    0.000000] CPU frequency is 240 MHz
[    0.000000] 16MB of RAM installed
[    0.000000] board_bcm963xx: Boot address 0xbfc00000
[    0.000000] board_bcm963xx: CFE version: unknown
[    0.000000] bcm63xx_nvram: nvram checksum failed, contents may be invalid (expected 00000000, got 189e4e90)
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00029010 (Broadcom BCM6338)
[    0.000000] board: board name: 96338W2_E7T
[    0.000000] MIPS: machine is D-Link DSL-2640U/BRU/C
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
[    0.000000] Primary data cache 8kB, 2-way, VIPT, no aliases, linesize 16 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000000ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000000ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000000ffffff]
[    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 4060
[    0.000000] Kernel command line: root=1f01 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
[    0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 9896K/16384K available (4123K kernel code, 203K rwdata, 460K rodata, 1284K init, 194K bss, 6488K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] random: get_random_bytes called from 0x804bfa20 with crng_init=0
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 15927170388 ns
[    0.000048] sched_clock: 32 bits at 120MHz, resolution 8ns, wraps every 17895697403ns
[    0.008400] Calibrating delay loop... 239.61 BogoMIPS (lpj=1198080)
[    0.085103] pid_max: default: 32768 minimum: 301
[    0.091358] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.098998] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.132975] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.143408] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.151144] pinctrl core: initialized pinctrl subsystem
[    0.160134] NET: Registered protocol family 16
[    0.174419] bcm63xx_nvram: not enough mac addresses
[    0.328364] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[    0.357472] clocksource: Switched to clocksource MIPS
[    0.372655] NET: Registered protocol family 2
[    0.381463] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.390628] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.398945] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.406345] TCP: Hash tables configured (established 1024 bind 1024)
[    0.414382] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.421574] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.430964] NET: Registered protocol family 1
[    0.435676] PCI: CLS 0 bytes, default 16
[    0.480552] workingset: timestamp_bits=14 max_order=12 bucket_order=0
[    0.537259] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.543539] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.695279] fffe0300.serial: ttyS0 at MMIO 0xfffe0300 (irq = 10, base_baud = 1562500) is a bcm63xx_uart
[    0.705362] printk: console [ttyS0] enabled
[    0.705362] printk: console [ttyS0] enabled
[    0.714175] printk: bootconsole [early0] disabled
[    0.714175] printk: bootconsole [early0] disabled
[    0.777718] spi-nor spi0.0: w25x32 (4096 Kbytes)
[    0.784598] 3 fixed-partitions partitions found on MTD device spi0.0
[    0.791483] Creating 3 MTD partitions on "spi0.0":
[    0.796467] 0x000000000000-0x000000010000 : "CFE"
[    0.807872] 0x000000010000-0x0000003f0000 : "linux"
[    0.836963] parser_imagetag: rootfs: CFE image tag at 0x0 CRC invalid (expected 00000029, actual 23171510)
[    0.847353] 0x000000000000-0x000000010000 : "nvram"
[    0.859712] bcm63xx-spi fffe0c00.spi: at [mem 0xfffe0c00-0xfffe0c3f flags 0x200] (irq 9, FIFOs size 63)
[    0.875727] libphy: Fixed MDIO Bus: probed
[    0.882247] bcm63xx-wdt bcm63xx-wdt:  started, timer margin: 30 sec
[    0.894133] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    0.901672] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    0.909131] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    0.916341] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    0.923793] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    0.933496] NET: Registered protocol family 17
[    0.938723] 8021q: 802.1Q VLAN Support v1.8
[    1.016285] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x2a3b instead
.
.
.
[   30.870152] jffs2: Further such events for this erase block will not be printed
[   31.255660] jffs2: Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
[   31.264629] jffs2: empty_blocks 0, bad_blocks 0, c->nr_blocks 62
[   31.271304] VFS: Cannot open root device "1f01" or unknown-block(31,1): error -5
[   31.279140] Please append a correct "root=" boot option; here are the available partitions:
[   31.287969] 1f00              64 mtdblock0 
[   31.287997]  (driver?)
[   31.294718] 1f01            3968 mtdblock1 
[   31.294737]  (driver?)
[   31.301617] 1f02              64 mtdblock2 
[   31.301642]  (driver?)
[   31.308551] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,1)
[   31.317166] Rebooting in 1 seconds..
�   32.319380] triggering watchdog soft-reset...

You may notice I used root=1f01 in the Kernel command line. I also tried 1f00 and 1f02 with no success. I understand it is trying to mount a partition at an invalid address due to misconfiguration in the dts partitions.

I think the values are wrong and should somehow match this:

Flash Layout: Boot[63,0xbfff0000] Kern[1,0xbfc10000]
              AuxFS[61,0xbffd0000] Misc[61,0xbffd0000] PSI[63,0xbfff0000]

But I don't know how to specify them in the dts... I'm confused with physical and logical addresses. :roll_eyes:

As I've said previously, the SPI driver has a bug in BCM6338/48 related with the SPI FIFO size. I found the old openwrt thread with the patch to solve the issue

https://forum.archive.openwrt.org/viewtopic.php?id=50322

You'll need to adapt the patch for your kernel.

Your nvram partition isn't correctly defined, the lsspi node should be:

&lsspi {
	status = "okay";

    flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <781000>;

        partitions {

            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            cfe@0 {
                label = "CFE";
                reg = <0x000000 0x010000>;
                read-only;
            };

            linux@10000 {
                label = "linux";
                reg = <0x010000 0x3e0000>;
                compatible = "brcm,bcm963xx-imagetag";
            };

		nvram@3f0000 {
			label = "nvram";
			reg = <0x3f0000 0x010000>;
            };
        };
    };
};

Regards

Great. I'll change it and try to find out how to apply that patch to current openwrt kernel. I'm recompiling it right now, but I found this (line 39 seems to need changing as well):

This is where the following log line is getting the FIFO value from:

[    0.859712] bcm63xx-spi fffe0c00.spi: at [mem 0xfffe0c00-0xfffe0c3f flags 0x200] (irq 9, FIFOs size 63)

I'll keep trying.

So here's the new bootlog:

CFE version 1.0.37-10.3 for BCM96338 (32bit,SP,BE)
Build Date: Tue May 31 14:36:37 EDT 2011 (root@localhost.localdomain)
Copyright (C) 2000-2006 Broadcom Corporation.

Boot Address 0xbfc00000

Initializing Arena.
Initializing Devices.
max_op_len=63
flash=W25X32 size=4MB id=0xef3016  sector=64k
st_reg1_3c|Serial flash device: name W25X32, id 0xef3016, size 4096KB
Flash Layout: Boot[63,0xbfff0000] Kern[1,0xbfc10000]
              AuxFS[61,0xbffd0000] Misc[61,0xbffd0000] PSI[63,0xbfff0000]
Flash RootFS Partition Length: 3932160
100 MB Full-Duplex (auto-neg)
CPU type 0x29010: 240MHz
Total memory: 16777216 bytes (16MB)

Total memory used by CFE:  0x80401000 - 0x80526390 (1201040)
Initialized Data:          0x8041DB60 - 0x8041FB90 (8240)
BSS Area:                  0x8041FB90 - 0x80424390 (18432)
Local Heap:                0x80424390 - 0x80524390 (1048576)
Stack Area:                0x80524390 - 0x80526390 (8192)
Text (code) segment:       0x80401000 - 0x8041DB5C (117596)
Boot area (physical):      0x00527000 - 0x00567000
Relocation Factor:         I:00000000 - D:00000000


Board IP address                  : 192.168.1.1:ffffff00  
Host IP address                   : 192.168.1.3  
Gateway IP address                :   
Run from flash/host (f/h)         : f  
Default host run file name        : vmlinux  
Default host flash file name      : bcm963xx_fs_kernel  
Boot delay (0-9 seconds)          : 1  
Board Id (0-9)                    : 96333W  
Number of MAC Addresses (1-32)    : 11  
Base MAC Address                  : 00:26:5a:54:8a:95  
PSI Size (1-64) KBytes            : 24  
Flash Block Size (1-128) in KBytes: 1  
Auxillary File System Size Percent: 0  

udp_send finished
No answer .auto boot ...
*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Booting from only image (0xbfc10000) ...
Code Address: 0x80A00000, Entry Address: 0x80a00000
Decompression OK!
Entry at 0x80a00000
Closing network.
Starting program at 0x80a00000
[    0.000000] Linux version 5.4.117 (alexsmith@xps13) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16750-f716c30241)) #0 Tue May 18 18:07:56 2021
[    0.000000] Detected Broadcom 0x6338 CPU revision a2
[    0.000000] CPU frequency is 240 MHz
[    0.000000] 16MB of RAM installed
[    0.000000] board_bcm963xx: Boot address 0xbfc00000
[    0.000000] board_bcm963xx: CFE version: unknown
[    0.000000] bcm63xx_nvram: nvram checksum failed, contents may be invalid (expected 00000000, got 189e4e90)
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00029010 (Broadcom BCM6338)
[    0.000000] board: board name: 96338W2_E7T
[    0.000000] MIPS: machine is D-Link DSL-2640U/BRU/C
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
[    0.000000] Primary data cache 8kB, 2-way, VIPT, no aliases, linesize 16 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000000ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000000ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000000ffffff]
[    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 4060
[    0.000000] Kernel command line: root=1f01 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
[    0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 10088K/16384K available (3523K kernel code, 204K rwdata, 860K rodata, 1292K init, 194K bss, 6296K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] random: get_random_bytes called from start_kernel+0x370/0x56c with crng_init=0
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 15927170388 ns
[    0.000049] sched_clock: 32 bits at 120MHz, resolution 8ns, wraps every 17895697403ns
[    0.008428] Calibrating delay loop... 238.38 BogoMIPS (lpj=1191936)
[    0.085248] pid_max: default: 32768 minimum: 301
[    0.091609] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.099271] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.139307] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.149781] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.157630] pinctrl core: initialized pinctrl subsystem
[    0.167034] NET: Registered protocol family 16
[    0.183065] bcm63xx_nvram: not enough mac addresses
[    0.373124] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[    0.405856] clocksource: Switched to clocksource MIPS
[    0.422943] NET: Registered protocol family 2
[    0.432116] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.441321] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.449674] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.457330] TCP: Hash tables configured (established 1024 bind 1024)
[    0.465206] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.472429] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.482028] NET: Registered protocol family 1
[    0.487041] PCI: CLS 0 bytes, default 16
[    0.537043] workingset: timestamp_bits=14 max_order=12 bucket_order=0
[    0.626856] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.632884] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.801005] fffe0300.serial: ttyS0 at MMIO 0xfffe0300 (irq = 10, base_baud = 1562500) is a bcm63xx_uart
[    0.811167] printk: console [ttyS0] enabled
[    0.811167] printk: console [ttyS0] enabled
[    0.820012] printk: bootconsole [early0] disabled
[    0.820012] printk: bootconsole [early0] disabled
[    0.891245] spi-nor spi0.0: w25x32 (4096 Kbytes)
[    0.898873] 3 fixed-partitions partitions found on MTD device spi0.0
[    0.905433] Creating 3 MTD partitions on "spi0.0":
[    0.910711] 0x000000000000-0x000000010000 : "CFE"
[    0.924371] 0x000000010000-0x0000003f0000 : "linux"
[    0.958117] parser_imagetag: rootfs: CFE image tag at 0x0 CRC invalid (expected 3e5c4dd7, actual 540789ee)
[    0.968878] 0x0000003f0000-0x000000400000 : "nvram"
[    0.983326] bcm63xx-spi fffe0c00.spi: at [mem 0xfffe0c00-0xfffe0c3f flags 0x200] (irq 9, FIFOs size 56)
[    1.000955] libphy: Fixed MDIO Bus: probed
[    1.008019] bcm63xx-wdt bcm63xx-wdt:  started, timer margin: 30 sec
[    1.020909] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    1.028479] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    1.035693] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    1.043185] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    1.050680] leds-gpio leds-gpio.0: Skipping unavailable LED gpio 0 ((null))
[    1.060691] NET: Registered protocol family 17
[    1.065705] 8021q: 802.1Q VLAN Support v1.8
[    1.151354] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0xc32d instead
[    1.161729] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0x4a03 instead
[    1.171766] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000000c: 0xea01 instead
[    1.181776] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000010: 0xc548 instead
[    1.191783] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014: 0xc70b instead
[    1.201791] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000018: 0xdb6e instead
[    1.211798] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000001c: 0x3e5c instead
[    1.221808] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000020: 0xce26 instead
[    1.231815] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000024: 0x85a4 instead
[    1.241823] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000028: 0x5252 instead
[    1.251777] jffs2: Further such events for this erase block will not be printed
[    1.295992] random: fast init done
[    1.774241] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010004: 0xc32d instead
[    1.784306] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010008: 0x4a03 instead
[    1.794315] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001000c: 0xea01 instead
[    1.804322] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010010: 0xc548 instead
[    1.814321] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010014: 0xc70b instead
[    1.824319] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010018: 0xdb6e instead
[    1.834319] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001001c: 0x3e5c instead
[    1.844319] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010020: 0xce26 instead
[    1.854319] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010024: 0x85a4 instead
[    1.864318] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00010028: 0x5252 instead
.
.
.
[   37.088561] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0004: 0xc32d instead
[   37.098626] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0008: 0x4a03 instead
[   37.108633] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d000c: 0xea01 instead
[   37.118640] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0010: 0xc548 instead
[   37.128648] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0014: 0xc70b instead
[   37.138647] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0018: 0xdb6e instead
[   37.148646] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d001c: 0x3e5c instead
[   37.158645] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0020: 0xce26 instead
[   37.168643] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0024: 0x85a4 instead
[   37.178643] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003d0028: 0x5252 instead
[   37.188600] jffs2: Further such events for this erase block will not be printed
[   37.690413] jffs2: Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
[   37.699396] jffs2: empty_blocks 0, bad_blocks 0, c->nr_blocks 62
[   37.706195] VFS: Cannot open root device "1f01" or unknown-block(31,1): error -5
[   37.713824] Please append a correct "root=" boot option; here are the available partitions:
[   37.722697] 1f00              64 mtdblock0 
[   37.722724]  (driver?)
[   37.729634] 1f01            3968 mtdblock1 
[   37.729659]  (driver?)
[   37.736604] 1f02              64 mtdblock2 
[   37.736630]  (driver?)
[   37.743369] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,1)
[   37.751971] Rebooting in 1 seconds..
�   38.749044] triggering watchdog soft-reset...

You can notice FIFO is now 56:

[    0.983326] bcm63xx-spi fffe0c00.spi: at [mem 0xfffe0c00-0xfffe0c3f flags 0x200] (irq 9, FIFOs size 56)

From the log, I see jffs2 reads the entire linux partition and the same value is returned all the time.

Also this is not ideal, I think:

[    0.000000] bcm63xx_nvram: nvram checksum failed, contents may be invalid (expected 00000000, got 189e4e90)

:roll_eyes:

I'm pretty sure that the firmware partition (kernel+rootfs+rootfs_data) must be named exactly 'firmware'. Then it will be scanned to automatically partition out rootfs and rootfs_data.

Thanks for your help, @mk24, but it didn't work. :frowning: