Failed to load eeprom property on custom MT7620A board

Hello to everyone,

I'm a developper working on a small company. I have to do various developments on Windows, Linux, OpenWwrt...
My issue concerns particularly OpenWrt, because I have to upgrade wifi routers that are supposed to be sold as soon as I'll manage to get them working.

This is what I did so far :

I had to rebuild a firmware from scratch on a router based on a ralink MT7620a V22SG model.
The problem is that the board has been modified with a larger ram capacity (1gb) than the original model. I don't have (and not able to get) the sources of the original customized firmware..

The original working version is given by :
Linux version 3.18.20 (david@david-MS-7641) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r46736) ) #55 Wed Sep 16 15:11:20 CEST 2015

I managed to find the closest version on the openwrt repository:
Linux version 3.18.109 (root@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49632) ) #12 Wed Jul 21 11:13:22 CEST 2021

Thanks to a forum, I managed to solve the memory addresses in the dts file that was not the same as in the factory filesystem by changing the values of the hexadecimal adresses

Extract of the MT7620a_V22SG.dts file

nand {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "mtk,mt7620-nand";
		partition@0 {
			label = "u-boot";
			reg = <0x0 0x80000>;
			read-only;
		};
		partition@80000 {
			label = "u-boot-env";
			reg = <0x80000 0x80000>;
			read-only;
		};
		factory: partition@100000 {
			label = "factory";
			reg = <0x100000 0x40000>;
			read-only;
		};
		partition@140000 {
			label = "firmware";
			reg = <0x140000 0x8000000>;
		};
	};

Thanks to another forum, I managed to solve an SPI error : "m25p80 spi32766.0: unrecognized JEDEC id ffffff" by modifing the config-3.18 file and adding :

CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI_SUPPORT=y
CONFIG_ZYNQMP_QSPI=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_BAR=y
CONFIG_SPI_FLASH_ISSI=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_SPI_FLASH_WINBOND=y

But now I am still confronted to another problem that concerns the wifi card (eeprom) that doesn't work.
In the boot sequence, I have the message :

"rt2800_wmac 10180000.wmac: failed to load eeprom property"

I give the full boot sequences for both the working and the non working firmware, as I may have missed something else. I had to cut in parts because it is still not really clear for me.

In the boot sequence of the working router I found the information being on what I call //REPERE 16//:


Linux version 3.18.20 (david@david-MS-7641) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r46736) ) #71 Fri Sep 25 16:43:49 CEST 2015
Board has DDR2
Analog PMU set to hw control
Digital PMU set to hw control
SoC Type: Ralink MT7620A ver:2 eco:6
bootconsole [early0] enabled
CPU0 revision is: 00019650 (MIPS 24KEc)
MIPS: machine is Ralink MT7620a V22SG
Determined physical RAM map:
 memory: 08000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone ranges:
  Normal   [mem 0x00000000-0x07ffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x00000000-0x07ffffff]
Initmem setup node 0 [mem 0x00000000-0x07ffffff]
On node 0 totalpages: 32768
free_area_init_node: node 0, pgdat 802fe0d0, node_mem_map 81000000
  Normal zone: 256 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 32768 pages, LIFO batch:7
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Writing ErrCtl register=00065077
Readback ErrCtl register=00065077
Memory: 126336K/131072K available (2510K kernel code, 129K rwdata, 516K rodata, 164K init, 186K bss, 4736K reserved)
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:256
CPU Clock: 580MHz
systick: running - mult: 214748, shift: 32
Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
rt2880-pinmux pinctrl: try to register 73 pins ...
pinctrl core: registered pin 0 (io0) on rt2880-pinmux
pinctrl core: registered pin 1 (io1) on rt2880-pinmux
pinctrl core: registered pin 2 (io2) on rt2880-pinmux
pinctrl core: registered pin 3 (io3) on rt2880-pinmux
pinctrl core: registered pin 4 (io4) on rt2880-pinmux
pinctrl core: registered pin 5 (io5) on rt2880-pinmux
pinctrl core: registered pin 6 (io6) on rt2880-pinmux
pinctrl core: registered pin 7 (io7) on rt2880-pinmux
pinctrl core: registered pin 8 (io8) on rt2880-pinmux
pinctrl core: registered pin 9 (io9) on rt2880-pinmux
pinctrl core: registered pin 10 (io10) on rt2880-pinmux
pinctrl core: registered pin 11 (io11) on rt2880-pinmux
pinctrl core: registered pin 12 (io12) on rt2880-pinmux
pinctrl core: registered pin 13 (io13) on rt2880-pinmux
pinctrl core: registered pin 14 (io14) on rt2880-pinmux
pinctrl core: registered pin 15 (io15) on rt2880-pinmux
pinctrl core: registered pin 16 (io16) on rt2880-pinmux
pinctrl core: registered pin 17 (io17) on rt2880-pinmux
pinctrl core: registered pin 18 (io18) on rt2880-pinmux
pinctrl core: registered pin 19 (io19) on rt2880-pinmux
pinctrl core: registered pin 20 (io20) on rt2880-pinmux
pinctrl core: registered pin 21 (io21) on rt2880-pinmux
pinctrl core: registered pin 22 (io22) on rt2880-pinmux
pinctrl core: registered pin 23 (io23) on rt2880-pinmux
pinctrl core: registered pin 24 (io24) on rt2880-pinmux
pinctrl core: registered pin 25 (io25) on rt2880-pinmux
pinctrl core: registered pin 26 (io26) on rt2880-pinmux
pinctrl core: registered pin 27 (io27) on rt2880-pinmux
pinctrl core: registered pin 28 (io28) on rt2880-pinmux
pinctrl core: registered pin 29 (io29) on rt2880-pinmux
pinctrl core: registered pin 30 (io30) on rt2880-pinmux
pinctrl core: registered pin 31 (io31) on rt2880-pinmux
pinctrl core: registered pin 32 (io32) on rt2880-pinmux
pinctrl core: registered pin 33 (io33) on rt2880-pinmux
pinctrl core: registered pin 34 (io34) on rt2880-pinmux
pinctrl core: registered pin 35 (io35) on rt2880-pinmux
pinctrl core: registered pin 36 (io36) on rt2880-pinmux
pinctrl core: registered pin 37 (io37) on rt2880-pinmux
pinctrl core: registered pin 38 (io38) on rt2880-pinmux
pinctrl core: registered pin 39 (io39) on rt2880-pinmux
pinctrl core: registered pin 40 (io40) on rt2880-pinmux
pinctrl core: registered pin 41 (io41) on rt2880-pinmux
pinctrl core: registered pin 42 (io42) on rt2880-pinmux
pinctrl core: registered pin 43 (io43) on rt2880-pinmux
pinctrl core: registered pin 44 (io44) on rt2880-pinmux
pinctrl core: registered pin 45 (io45) on rt2880-pinmux
pinctrl core: registered pin 46 (io46) on rt2880-pinmux
pinctrl core: registered pin 47 (io47) on rt2880-pinmux
pinctrl core: registered pin 48 (io48) on rt2880-pinmux
pinctrl core: registered pin 49 (io49) on rt2880-pinmux
pinctrl core: registered pin 50 (io50) on rt2880-pinmux
pinctrl core: registered pin 51 (io51) on rt2880-pinmux
pinctrl core: registered pin 52 (io52) on rt2880-pinmux
pinctrl core: registered pin 53 (io53) on rt2880-pinmux
pinctrl core: registered pin 54 (io54) on rt2880-pinmux
pinctrl core: registered pin 55 (io55) on rt2880-pinmux
pinctrl core: registered pin 56 (io56) on rt2880-pinmux
pinctrl core: registered pin 57 (io57) on rt2880-pinmux
pinctrl core: registered pin 58 (io58) on rt2880-pinmux
pinctrl core: registered pin 59 (io59) on rt2880-pinmux
pinctrl core: registered pin 60 (io60) on rt2880-pinmux
pinctrl core: registered pin 61 (io61) on rt2880-pinmux
pinctrl core: registered pin 62 (io62) on rt2880-pinmux
pinctrl core: registered pin 63 (io63) on rt2880-pinmux
pinctrl core: registered pin 64 (io64) on rt2880-pinmux
pinctrl core: registered pin 65 (io65) on rt2880-pinmux
pinctrl core: registered pin 66 (io66) on rt2880-pinmux
pinctrl core: registered pin 67 (io67) on rt2880-pinmux
pinctrl core: registered pin 68 (io68) on rt2880-pinmux
pinctrl core: registered pin 69 (io69) on rt2880-pinmux
pinctrl core: registered pin 70 (io70) on rt2880-pinmux
pinctrl core: registered pin 71 (io71) on rt2880-pinmux
pinctrl core: registered pin 72 (io72) on rt2880-pinmux
pinctrl core: add 2 pinmux maps
rt2880-pinmux pinctrl: found group selector 0 for i2c
rt2880-pinmux pinctrl: found group selector 6 for rgmii1
rt2880-pinmux pinctrl: request pin 1 (io1) for pinctrl
rt2880-pinmux pinctrl: request pin 2 (io2) for pinctrl
rt2880-pinmux pinctrl: request pin 24 (io24) for pinctrl
rt2880-pinmux pinctrl: request pin 25 (io25) for pinctrl
rt2880-pinmux pinctrl: request pin 26 (io26) for pinctrl
rt2880-pinmux pinctrl: request pin 27 (io27) for pinctrl
rt2880-pinmux pinctrl: request pin 28 (io28) for pinctrl
rt2880-pinmux pinctrl: request pin 29 (io29) for pinctrl
rt2880-pinmux pinctrl: request pin 30 (io30) for pinctrl
rt2880-pinmux pinctrl: request pin 31 (io31) for pinctrl
rt2880-pinmux pinctrl: request pin 32 (io32) for pinctrl
rt2880-pinmux pinctrl: request pin 33 (io33) for pinctrl
rt2880-pinmux pinctrl: request pin 34 (io34) for pinctrl
rt2880-pinmux pinctrl: request pin 35 (io35) for pinctrl
rt2880-pinmux pinctrl: failed to lookup the sleep state
pinctrl core: add 1 pinmux maps
rt2880-pinmux pinctrl: found group selector 8 for pcie
rt2880-pinmux pinctrl: request pin 36 (io36) for 10140000.pcie
mt7620-pci 10140000.pcie: PCIE0 no card, disable it(RST&CLK)
mt7620-pci: probe of 10140000.pcie failed with error -1
rt2880_gpio 10000600.gpio: registering 24 gpios
rt2880_gpio 10000600.gpio: registering 24 irq handlers
rt2880_gpio 10000638.gpio: registering 16 gpios
rt2880_gpio 10000638.gpio: registering 16 irq handlers
rt2880_gpio 10000660.gpio: registering 32 gpios
rt2880_gpio 10000660.gpio: registering 32 irq handlers
rt2880_gpio 10000688.gpio: registering 1 gpios
rt2880_gpio 10000688.gpio: registering 1 irq handlers
Switched to clocksource systick
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
PCI: CLS 0 bytes, default 32
rt-timer 10000100.timer: maximum frequency is 2441Hz
alarmtimer alarmtimer: no of_node; not parsing pinctrl DT
futex hash table entries: 256 (order: -1, 3072 bytes)
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
msgmni has been set to 246
io scheduler noop registered
io scheduler deadline registered (default)
drivers/phy/phy-ralink-usb.c:ralink_usb_phy_probe[147]
drivers/phy/phy-ralink-usb.c:ralink_usb_phy_probe[161]
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250 serial8250: no of_node; not parsing pinctrl DT
pinctrl core: add 1 pinmux maps
rt2880-pinmux pinctrl: found group selector 3 for uartlite
rt2880-pinmux pinctrl: request pin 15 (io15) for 10000c00.uartlite
rt2880-pinmux pinctrl: request pin 16 (io16) for 10000c00.uartlite
console [ttyS0] disabled
10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a 16550A
console [ttyS0] enabled
bootconsole [early0] disabled


//// REPERE 1 /////////
!!! nand page size = 2048, addr len=4
mtk_nand_probe: alloc 1380, at 878f8000 , btt(878f90c0, 100), ranfc_mtd:878f91c0
4 ofpart partitions found on MTD device ra_nfc
Creating 4 MTD partitions on "ra_nfc":
0x000000000000-0x000000080000 : "u-boot"
0x000000080000-0x000000100000 : "u-boot-env"
0x000000100000-0x000000140000 : "factory"
0x000000140000-0x000008140000 : "firmware"
mtd: partition "firmware" extends beyond the end of device "ra_nfc" -- size truncated to 0x7ec0000
2 uimage-fw partitions found on MTD device firmware
0x000000140000-0x0000002559f4 : "kernel"
0x0000002559f4-0x000008000000 : "rootfs"
mtd: device 5 (rootfs) set to be root filesystem
1 squashfs-split partitions found on MTD device rootfs
0x000001b60000-0x000008000000 : "rootfs_data"

//// REPERE 2 /////////
pinctrl core: add 1 pinmux maps
rt2880-pinmux pinctrl: found group selector 12 for ephy
rt2880-pinmux pinctrl: request pin 40 (io40) for 10100000.ethernet
rt2880-pinmux pinctrl: request pin 41 (io41) for 10100000.ethernet
rt2880-pinmux pinctrl: request pin 42 (io42) for 10100000.ethernet
rt2880-pinmux pinctrl: request pin 43 (io43) for 10100000.ethernet
rt2880-pinmux pinctrl: request pin 44 (io44) for 10100000.ethernet
gsw: setting port4 to ephy mode
ralink_soc_eth 10100000.ethernet eth0 (uninitialized): port 4 link up (100Mbps/Full duplex)


//// REPERE 3 /////////
ralink_soc_eth 10100000.ethernet: loaded mt7620 driver
ralink_soc_eth 10100000.ethernet eth0: ralink at 0xb0100000, irq 5
rt2880_wdt 10000120.watchdog: Initialized
TCP: cubic registered
NET: Registered protocol family 17
bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
8021q: 802.1Q VLAN Support v1.8
VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
Freeing unused kernel memory: 164K (80317000 - 80340000)
init: Console is alive
init: - watchdog -
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb

//// REPERE 4/////////
rt2880-pinmux pinctrl: request pin 1 (io1) for pio:1
rt2880-pinmux pinctrl: request pin 2 (io2) for pio:2

//// REPERE 5/////////
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-platform: EHCI generic platform driver
phy phy-usbphy.0: remote usb device wakeup disabled
phy phy-usbphy.0: UTMI 16bit 30MHz
ehci-platform 101c0000.ehci: EHCI Host Controller
ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00


//// REPERE 6/////////
usb usb1: no of_node; not parsing pinctrl DT
hub 1-0:1.0: no of_node; not parsing pinctrl DT


//// REPERE 7/////////
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-platform: OHCI generic platform driver
ohci-platform 101c1000.ohci: Generic Platform OHCI controller
ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000


//// REPERE 8/////////
usb usb2: no of_node; not parsing pinctrl DT
hub 2-0:1.0: no of_node; not parsing pinctrl DT


//// REPERE 9/////////
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected


//// REPERE 10/////////
rt2880-pinmux pinctrl: request pin 40 (io40) for pio:40
rt2880-pinmux pinctrl: pin 40 is not set to gpio mux
rt2880-pinmux pinctrl: request() failed for pin 40
rt2880-pinmux pinctrl: pin-40 (pio:40) status -22

//// REPERE 11/////////
init: - preinit -
8021q: adding VLAN 0 to HW filter on device eth0
random: mktemp urandom read with 8 bits of entropy available

//// REPERE 12/////////
mount_root: nand!
mount_root: nand!
jffs2: jffs2_scan_dirent_node(): Node CRC failed on node at 0x01ce67f0: Read 0xffffffff, calculated 0x11792dfd
jffs2: Empty flash at 0x01ce6824 ends at 0x01ce7000
jffs2: notice: (296) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
mount_root: switching to jffs2 overlay
overlayfs: cleanup of 'work/work' failed (-93)
overlayfs: failed to create directory /overlay/work/work
mount_root: mount failed: No such device, options lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work
mount_root: switching to jffs2 failed - fallback to ramoverlay

//// REPERE 13/////////
procd: - early -
procd: - watchdog -
procd: - ubus -
procd: - init -
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
Loading modules backported from Linux version master-2015-03-09-0-g141f155
Backport generated by backports.git backports-20150129-0-gdd4a670
ip_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (1976 buckets, 7904 max)
xt_time: kernel timezone is -0000


//// REPERE 14/////////
cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
cfg80211:  DFS Master region: unset
cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)


//// REPERE 15/////////
PPP generic driver version 2.4.2
NET: Registered protocol family 24

//// REPERE 16/////////
ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5390, rev 0500 detected
ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 7620 detected
ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'


//// REPERE 17/////////
IPv6: ADDRCONF(NETDEV_UP): lo: link is not ready
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
8021q: adding VLAN 0 to HW filter on device eth0
jffs2: notice: (297) check_node_data: wrong data CRC in data node at 0x05be2ed4: read 0x7a37ef16, calculated 0x1428e4b4.
random: nonblocking pool is initialized

In the boot sequence of the non working firmware I get an error at the same position ///REPERE16

Starting kernel ...

[    0.000000] Linux version 3.18.109 (root@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49632) ) #12 Wed Jul 21 11:13:22 CEST 2021
[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7620A ver:2 eco:6
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019650 (MIPS 24KEc)
[    0.000000] MIPS: machine is Ralink MT7620a V22SG High Power evaluation board
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x07ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x07ffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x07ffffff]
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=00071ac0
[    0.000000] Readback ErrCtl register=00071ac0
[    0.000000] Memory: 126336K/131072K available (2526K kernel code, 129K rwdata, 516K rodata, 148K init, 186K bss, 4736K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:256
[    0.000000] CPU Clock: 580MHz
[    0.000000] systick: running - mult: 214748, shift: 32
[    0.010000] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.080000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090000] pinctrl core: initialized pinctrl subsystem
[    0.100000] NET: Registered protocol family 16
[    0.360000] mt7620-pci 10140000.pcie: PCIE0 no card, disable it(RST&CLK)
[    0.370000] mt7620-pci: probe of 10140000.pcie failed with error -1
[    0.390000] rt2880_gpio 10000600.gpio: registering 24 gpios
[    0.400000] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[    0.410000] Switched to clocksource systick
[    0.420000] NET: Registered protocol family 2
[    0.420000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.440000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.450000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.460000] TCP: reno registered
[    0.470000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.480000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.490000] NET: Registered protocol family 1
[    0.500000] rt-timer 10000100.timer: maximum frequency is 2441Hz
[    0.520000] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.540000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.550000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.570000] msgmni has been set to 246
[    0.590000] io scheduler noop registered
[    0.590000] io scheduler deadline registered (default)
[    0.600000] ralink-usb-phy usbphy: invalid resource
[    0.610000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.630000] console [ttyS0] disabled
[    0.640000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a 16550A
[    0.650000] console [ttyS0] enabled
[    0.650000] console [ttyS0] enabled
[    0.670000] bootconsole [early0] disabled
[    0.670000] bootconsole [early0] disabled


//// REPERE 1  /////////
[    0.680000] !!! nand page size = 2048, addr len=4
[    0.700000] mtk_nand_probe: alloc 1380, at 878f8000 , btt(878f90c0, 100), ranfc_mtd:878f91c0
[    0.710000] 4 ofpart partitions found on MTD device ra_nfc
[    0.720000] Creating 4 MTD partitions on "ra_nfc":
[    0.730000] 0x000000000000-0x000000080000 : "u-boot"
[    0.740000] 0x000000080000-0x000000100000 : "u-boot-env"
[    0.760000] 0x000000100000-0x000000140000 : "factory"
[    0.770000] 0x000000140000-0x000008140000 : "firmware"
[    0.780000] mtd: partition "firmware" extends beyond the end of device "ra_nfc" -- size truncated to 0x7ec0000
[    1.390000] 2 uimage-fw partitions found on MTD device firmware
[    1.400000] 0x000000140000-0x000000257037 : "kernel"
[    1.410000] 0x000000257037-0x000008000000 : "rootfs"
[    1.430000] mtd: device 5 (rootfs) set to be root filesystem
[    1.440000] 1 squashfs-split partitions found on MTD device rootfs
[    1.450000] 0x000000500000-0x000008000000 : "rootfs_data"

//// REPERE 2 /////////
[    1.460000] ralink_soc_eth 10100000.ethernet: generated random MAC address ea:49:26:b0:e5:52
[    1.480000] libphy: mdio: probed
[    1.490000] ralink_soc_eth 10100000.ethernet: connected port 4 to PHY at mdio-bus:04 [uid=03a2940d, driver=Generic PHY]
[    1.510000] ralink_soc_eth 10100000.ethernet: connected port 5 to PHY at mdio-bus:05 [uid=0000ffff, driver=Generic PHY]



//// REPERE 3/////////
[    1.540000] ralink_soc_eth 10100000.ethernet: loaded mt7620 driver
[    1.550000] ralink_soc_eth 10100000.ethernet eth0: ralink at 0xb0100000, irq 5
[    1.560000] rt2880_wdt 10000120.watchdog: Initialized
[    1.570000] TCP: cubic registered
[    1.580000] NET: Registered protocol family 17
[    1.590000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.610000] 8021q: 802.1Q VLAN Support v1.8
[    1.630000] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    1.650000] Freeing unused kernel memory: 148K
[    2.860000] init: Console is alive
[    2.860000] init: - watchdog -
[    4.060000] usbcore: registered new interface driver usbfs
[    4.070000] usbcore: registered new interface driver hub
[    4.080000] usbcore: registered new device driver usb

//// REPERE 5/////////
[    4.100000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.110000] ehci-platform: EHCI generic platform driver
[    4.130000] phy phy-usbphy.0: remote usb device wakeup disabled
[    4.150000] phy phy-usbphy.0: UTMI 16bit 30MHz
[    4.160000] ehci-platform 101c0000.ehci: EHCI Host Controller
[    4.170000] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
[    4.180000] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
[    4.220000] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00


//// REPERE 6/////////
...


//// REPERE 7/////////
[    4.230000] hub 1-0:1.0: USB hub found
[    4.240000] hub 1-0:1.0: 1 port detected
[    4.250000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.260000] ohci-platform: OHCI generic platform driver
[    4.270000] ohci-platform 101c1000.ohci: Generic Platform OHCI controller
[    4.290000] ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
[    4.300000] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000


//// REPERE 8/////////
...

//// REPERE 9/////////
[    4.370000] hub 2-0:1.0: USB hub found
[    4.380000] hub 2-0:1.0: 1 port detected


//// REPERE 10/////////
...


//// REPERE 11/////////
[    4.890000] init: - preinit -
[    5.340000] 8021q: adding VLAN 0 to HW filter on device eth0
[    5.400000] random: mktemp urandom read with 8 bits of entropy available


Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level


//// REPERE 12/////////
[    6.590000] ralink_soc_eth 10100000.ethernet eth0: port 4 link up (10Mbps/Half duplex)
[    6.600000] ralink_soc_eth 10100000.ethernet eth0: port 5 link up (10Mbps/Half duplex)
[    8.570000] mount_root: no usable overlay filesystem found, using tmpfs overlay

//// REPERE 13/////////
[    8.610000] procd: - early -
[    8.620000] ralink_soc_eth 10100000.ethernet eth0: port 4 link down
[    8.630000] procd: - watchdog -
[    8.640000] ralink_soc_eth 10100000.ethernet eth0: port 5 link down
[    9.410000] procd: - ubus -
[   10.430000] procd: - init -
Please press Enter to activate this console.
[   11.150000] NET: Registered protocol family 10
[   11.160000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   11.190000] Loading modules backported from Linux version v4.4-rc5-1913-gc8fdf68
[   11.200000] Backport generated by backports.git backports-20151218-0-g2f58d9d
[   11.220000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   11.240000] nf_conntrack version 0.5.0 (1976 buckets, 7904 max)
[   11.290000] xt_time: kernel timezone is -0000


//// REPERE 14/////////
...

//// REPERE 15/////////
[   11.380000] PPP generic driver version 2.4.2
[   11.390000] NET: Registered protocol family 24

//// REPERE 16/////////
[   11.430000] rt2800_wmac 10180000.wmac: failed to load eeprom property
[   11.450000] ieee80211 phy0: rt2x00lib_request_eeprom_file: Info - Loading EEPROM data from 'soc_wmac.eeprom'.
[   11.470000] rt2800_wmac 10180000.wmac: Direct firmware load for soc_wmac.eeprom failed with error -2
[   11.490000] rt2800_wmac 10180000.wmac: Falling back to user helper
[   11.530000] firmware soc_wmac.eeprom: firmware_loading_store: map pages failed
[   11.550000] ieee80211 phy0: rt2x00lib_request_eeprom_file: Error - Failed to request EEPROM.
[   11.560000] rt2800_wmac: probe of 10180000.wmac failed with error -11
[   20.240000] 8021q: adding VLAN 0 to HW filter on device eth0
[   20.250000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   20.360000] device eth0.1 entered promiscuous mode
[   20.370000] device eth0 entered promiscuous mode


//// REPERE 17/////////
[   20.410000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   20.500000] IPv6: ADDRCONF(NETDEV_UP): eth0.2: link is not ready
[   20.940000] ralink_soc_eth 10100000.ethernet eth0: port 4 link up (10Mbps/Half duplex)
[   20.960000] ralink_soc_eth 10100000.ethernet eth0: port 5 link up (10Mbps/Half duplex)
[   22.470000] jffs2: notice: (808) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[   22.940000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   22.950000] br-lan: port 1(eth0.1) entered forwarding state
[   22.960000] br-lan: port 1(eth0.1) entered forwarding state
[   22.980000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready
[   23.030000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   24.960000] br-lan: port 1(eth0.1) entered forwarding state
[   80.660000] random: nonblocking pool is initialized

I continue to search but I'm loosing really a lot of time as my Linux knowledge is rather limited.
I someone have an idea that could help me to go further, I would be very thankfull.

Regards,

Cédric

BTW Why did you use so very old version of openwrt? I think that it's something like CC 15.01. I'm not sure that anybody recall all details and bugs of this version. And support for mt7620a builtin wifi was greatly improved in latest releases.

Just for quick fix run this command in router's console:

dd if=/dev/mtd2 of=/lib/firmware/soc_wmac.eeprom

and load wifi driver of reboot router.
If it don't help than show dts-file with all your changes and content of factory partition (as a result of execution hexdump -C /dev/mtd2)

Hello,

Thank you for your reply.

I know it is not the best to use an old version. I have to hack routers that where made in 2016.
I first tried with one of the last versions of openwrt. But as I faced many problems and as I lacked information and people with knowledge around me, I decided to start with something the closest as possible to the original version, hoping to keep it simple...

As you proposed me to try, this is the result of the command :

root@OpenWrt:/# dd if=/dev/mtd2 of=/lib/firmware/soc_wmac.eeprom
512+0 records in
512+0 records out

After rebooting, I still don't see the wifi (using ifconfig, iwconfig or iw list)

This is the dts file used for the compilation:

/dts-v1/;

/include/ "mt7620a.dtsi"

/ {
	compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
	model = "Ralink MT7620a V22SG High Power evaluation board";

/*palmbus@10000000 {
	};*/

pinctrl {
		state_default: pinctrl0 {
			gpio {
				ralink,group = "i2c", "uartf", "spi";
				ralink,function = "gpio";
			};
		};
	};

ethernet@10100000 {
		status = "okay"; 
		pinctrl-names = "default";
		pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;

ralink,port-map = "llllw";

port@4 {
			status = "okay";
			phy-handle = <&phy4>;
			phy-mode = "rgmii";
		};

port@5 {
			status = "okay";
			phy-handle = <&phy5>;
			phy-mode = "rgmii";
		};

mdio-bus {
		status = "okay";

phy4: ethernet-phy@4 {
				reg = <4>;
				phy-mode = "rgmii";
			};

phy5: ethernet-phy@5 {
				reg = <5>;
				phy-mode = "rgmii";
			};
		};
	};

gsw@10110000 {
		ralink,port4 = "gmac";
	};

pcie@10140000 {
		status = "okay";
	};

ehci@101c0000 {
		status = "okay";
	};

ohci@101c1000 {
		status = "okay";
	};

gpio-keys-polled {
		compatible = "gpio-keys-polled";
		#address-cells = <1>;
		#size-cells = <0>;
		poll-interval = <20>;
		reset {
			label = "reset";
			gpios = <&gpio0 1 1>;
			linux,code = <0x198>;
		};
		aoss {
			label = "aoss";
			gpios = <&gpio0 2 1>;
			linux,code = <0x211>;
		};
	};

nand {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "mtk,mt7620-nand";
		partition@0 {
			label = "u-boot";
			reg = <0x0 0x80000>;
			read-only;
		};
		partition@80000 {
			label = "u-boot-env";
			reg = <0x80000 0x80000>;
			read-only;
		};
		factory: partition@100000 {
			label = "factory";
			reg = <0x100000 0x40000>;
			read-only;
		};
		partition@140000 {
			label = "firmware";
			reg = <0x140000 0x8000000>;
		};
	};
};

and the result of hexdump :

root@OpenWrt:/# hexdump -C /dev/mtd2
00000000  20 76 05 01 80 0a 80 10  01 7d ff ff ff ff ff ff              | v.......}......|
00000010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff                                   |................|
00000020  ff ff ff ff ff ff ff ff  80 0a 80 10 01 7d 80 0a                  |.............}..|
00000030  80 10 01 7d 22 0c 04 00  ff ff 3f 01 55 77 a8 aa       |...}".....?.Uw..|
00000040  8c 88 ff ff 0a 00 00 00  00 00 00 00 00 00 ff ff           |................|
00000050  ff ff 02 02 02 02 02 02  02 02 02 02 02 02 02 02      |................|
00000060  03 03 03 03 03 03 03 03  03 03 03 03 03 03 80 ff    |................|
00000070  ff ff 80 ff ff ff 00 00  ff ff ff ff ff ff ff ff                             |................|
00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff                                   |................|
*
000000d0  20 ff ff ff ff ff ff ff  ff ff ff ff ff ff 08 08                             | ...............|
000000e0  08 08 04 00 07 07 04 00  08 08 04 00 07 07 04 00  |................|
000000f0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff                                    |................|
*
00040000

May be there is something I missed in the dts file. I used the one by default, just adding the modifications one the hexa addresses to fit the actual ones.

Best regards,

Cédric

Update : I think I found a solution from an article on another router.

It seems there were lines missing on the dts file. So I added this :

gsw@10110000 {
		ralink,port4 = "gmac";
	};

	**wmac@10180000 {**
		**ralink,5ghz = <0>;**
		**ralink,mtd-eeprom = <&factory 0>;**
	**};**

	pcie@10140000 {
		status = "okay";
	};

And now I can see wlan0 on the list when I use ifconfig command.

Anyway, thank you 123serge123 for your help.

Cédric