[bcm63xx] help in adding Netgear D6400 support

Enrico Mioso mrkiko.rs at gmail.com
Tue Jan 5 18:46:02 EST 2021


Hello all!

I am trying this time around to port OpenWRt to a Netgear D6400 router. It seems to be pretty similar to the SKY SR102, even tough some important differences should be kept into account, like the fact it has NAND flash.

What I did so far:
1 - I took a backup of my whole flash, and the MTD regions layout, and dmesg:
http://www.gstorm.eu/bcm_stuff.zip

2 - Extracted the CFERAM file from my device: to read the dumped JFFS2 partition, I had to modify linux-5.10.1/fs/jffs2/nodelist.h around line 30, changing it to look like
#define JFFS2_BIG_ENDIAN
3 - Trying to add some entries to the build system:

define Device/netgear_d6400
   $(Device/bcm63xx-nand)
   DEVICE_VENDOR := NETGEAR
   DEVICE_MODEL := D6400
   CHIP_ID := 63268
   SOC := bcm63168
   CFE_RAM_FILE := netgear,d6400/cferam.001
   CFE_RAM_JFFS2_NAME := cferam.001
   BLOCKSIZE := 128k
   PAGESIZE := 2048
   SUBPAGESIZE := 512
   VID_HDR_OFFSET := 2048
   DEVICE_PACKAGES += $(USB2_PACKAGES)
   CFE_WFI_VERSION := 0x5732
   CFE_WFI_FLASH_TYPE := 3
   KERNEL_SIZE := 5120k
endef
TARGET_DEVICES += netgear_d6400


Note: CFE says something like this during boot ...

NAND ECC BCH-8, page size 0x800 bytes, spare size used 64 bytes
NAND flash device: Spansion S34ML01G1, id 0x01f1 block 128KB size 131072KB

I actually do not understand the exact meaning of the CFE_WFI_FLASH_TYPE, I guessed WFI values have something to do with Web Factory Image.
The device currently accepts images created with this entry, still producing errors like those during boot:
Attempt to read block number(1024) beyond the nand max blk(1023)
Attempt to read block number(1025) beyond the nand max blk(1023)
Attempt to read block number(1026) beyond the nand max blk(1023)
Attempt to read block number(1027) beyond the nand max blk(1023)
Attempt to read block number(1028) beyond the nand max blk(1023)
Attempt to read block number(1029) beyond the nand max blk(1023)
Attempt to read block number(1030) beyond the nand max blk(1023)
Attempt to read block number(1031) beyond the nand max blk(1023)
Attempt to read block number(1032) beyond the nand max blk(1023)
Attempt to read block number(1033) beyond the nand max blk(1023)
... hence failing boot.

How may I proceed?
It should be noted, that the device has a dual image layout, as follows:
0-131072: nvram, (and CFE)
131072-58195968: "rootfs" and "image" are mapped here
58195968-116260864: "rootfs_update" and "image_update" are mapped here
116391936-124780544: data
124780544-128974848: storage1
128974848-133169152: storage2

Thanks!!

Enrico



More information about the openwrt-devel mailing list