Support for D-Link DIR842 (Rev C3)

I found this router at a flea market. It takes the same OEM firmware as Revs C1 and C2. The download page doesn't differentiate between C1, C2, or C3.

Since the C2 version in https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=209b36825458a439fb9f0edd36f11e6528400f87 works with Rev C1, I thought I would give it a try. It was successful.

This device, like the C1, does not have a USB port

The label on the bottom says

P/N EIR842MEU...C3E
H/W Ver.: C3 F/W Ver.: 3.10EU
SN: XXXXXXXXXXXX

Is it possibly an EU version?

Bootlog:

[    0.000000] Linux version 4.19.57 (builder@buildhost) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r10574-273b803623)) #0 Wed Jul 24 18:36:27 2019
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[    0.000000] MIPS: machine is D-Link DIR-842 C2
[    0.000000] SoC: Qualcomm Atheros QCA956X ver 1 rev 0
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] On node 0 totalpages: 32768
[    0.000000]   Normal zone: 288 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] random: get_random_bytes called from start_kernel+0x98/0x4b0 with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480
[    0.000000] Kernel command line: console=ttyS0,115200n8 rootfstype=squashfs,jffs2
[    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=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 122164K/131072K available (4500K kernel code, 180K rwdata, 1052K rodata, 1236K init, 214K bss, 8908K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] CPU clock: 775.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4932285024 ns
[    0.000007] sched_clock: 32 bits at 387MHz, resolution 2ns, wraps every 5541893118ns
[    0.008229] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.074769] pid_max: default: 32768 minimum: 301
[    0.079833] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.086819] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.098462] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.108869] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.115425] pinctrl core: initialized pinctrl subsystem
[    0.123254] NET: Registered protocol family 16
[    0.134808] PCI host bridge /ahb/pcie-controller@18250000 ranges:
[    0.141300]  MEM 0x0000000012000000..0x0000000013ffffff
[    0.146800]   IO 0x0000000000000000..0x0000000000000000
[    0.170221] PCI host bridge to bus 0000:00
[    0.174594] pci_bus 0000:00: root bus resource [mem 0x12000000-0x13ffffff]
[    0.181837] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.187723] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.194875] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.203259] pci 0000:00:00.0: [168c:0056] type 00 class 0x028000
[    0.203316] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.203439] pci 0000:00:00.0: PME# supported from D0 D3hot
[    0.204403] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.204427] pci 0000:00:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    0.215290] clocksource: Switched to clocksource MIPS
[    0.221641] NET: Registered protocol family 2
[    0.227103] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
[    0.235204] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.242603] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.249324] TCP: Hash tables configured (established 1024 bind 1024)
[    0.256155] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.262321] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.269282] NET: Registered protocol family 1
[    0.273912] PCI: CLS 0 bytes, default 32
[    0.276776] Crashlog allocated RAM at address 0x3f00000
[    0.283583] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.296377] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.302525] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.325775] io scheduler noop registered
[    0.329905] io scheduler deadline registered (default)
[    0.336110] ar7200-usb-phy usb-phy: phy reset is missing
[    0.343181] pinctrl-single 1804002c.pinmux: 544 pins, size 68
[    0.350315] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.359188] console [ttyS0] disabled
[    0.362979] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 1562500) is a 16550A
[    0.372120] console [ttyS0] enabled
[    0.379682] bootconsole [early0] disabled
[    0.397712] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
[    0.402982] 8 fixed-partitions partitions found on MTD device spi0.0
[    0.409596] Creating 8 MTD partitions on "spi0.0":
[    0.414558] 0x000000000000-0x000000040000 : "u-boot"
[    0.420456] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.426691] 0x000000050000-0x000000060000 : "devdata"
[    0.432597] 0x000000060000-0x000000070000 : "devconf"
[    0.438554] 0x000000070000-0x000000080000 : "misc"
[    0.444193] 0x000000080000-0x000000fd0000 : "firmware"
[    0.455078] 2 seama-fw partitions found on MTD device firmware
[    0.461153] Creating 2 MTD partitions on "firmware":
[    0.466305] 0x000000000040-0x0000001d0000 : "kernel"
[    0.472146] 0x0000001d0000-0x000000f50000 : "rootfs"
[    0.477974] mtd: device 7 (rootfs) set to be root filesystem
[    0.485265] 1 squashfs-split partitions found on MTD device rootfs
[    0.491720] 0x000000470000-0x000000f50000 : "rootfs_data"
[    0.498060] 0x000000fd0000-0x000000fe0000 : "art"
[    0.503590] 0x000000fe0000-0x000001000000 : "reserved"
[    0.510672] libphy: Fixed MDIO Bus: probed
[    0.517951] ag71xx 19000000.eth: invalid MAC address, using random address
[    1.195675] libphy: ag71xx_mdio: probed
[    1.202682] switch0: Atheros AR8337 rev. 2 switch registered on mdio-bus.0
[    1.856769] ag71xx 19000000.eth: connected to PHY at mdio-bus.0:00 [uid=004dd036, driver=Atheros AR8216/AR8236/AR8316]
[    1.868425] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: sgmii
[    1.877276] NET: Registered protocol family 10
[    1.887171] Segment Routing with IPv6
[    1.891052] NET: Registered protocol family 17
[    1.895773] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.909171] 8021q: 802.1Q VLAN Support v1.8
[    1.915718] hctosys: unable to open rtc device (rtc0)
[    1.927575] VFS: Mounted root (squashfs filesystem) readonly on device 31:7.
[    1.941782] Freeing unused kernel memory: 1236K
[    1.946494] This architecture does not have kernel memory protection.
[    1.953140] Run /sbin/init as init process
[    2.545300] random: fast init done
[    2.815118] init: Console is alive
[    2.818913] init: - watchdog -
[    4.379981] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.537165] usbcore: registered new interface driver usbfs
[    4.542886] usbcore: registered new interface driver hub
[    4.548506] usbcore: registered new device driver usb
[    4.559748] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.568085] ehci-platform: EHCI generic platform driver
[    4.573688] ehci-platform 1b000000.usb: EHCI Host Controller
[    4.579617] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1
[    4.587818] ehci-platform 1b000000.usb: irq 13, io mem 0x1b000000
[    4.615313] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00
[    4.622435] hub 1-0:1.0: USB hub found
[    4.626776] hub 1-0:1.0: 1 port detected
[    4.631925] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.649844] init: - preinit -
[    5.579712] random: jshn: uninitialized urandom read (4 bytes read)
[    5.690371] random: jshn: uninitialized urandom read (4 bytes read)
[    6.110249] random: jshn: uninitialized urandom read (4 bytes read)
[    7.402098] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    7.408262] IPv6: ADDRCONF(NETDEV_UP): eth0.1: link is not ready
[    7.445629] urandom_read: 4 callbacks suppressed
[    7.445635] random: procd: uninitialized urandom read (4 bytes read)
[    8.426617] eth0: link up (1000Mbps/Full duplex)
[    8.431473] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    8.438313] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
[   10.821006] jffs2: notice: (557) jffs2_build_xattr_subsystem: complete building xattr subsystem, 6 of xdatum (3 unchecked, 3 orphan) and 45 of xref (3 dead, 0 orphan) found.
[   10.840997] mount_root: switching to jffs2 overlay
[   10.867608] overlayfs: upper fs does not support tmpfile.
[   10.880389] urandom-seed: Seeding with /etc/urandom.seed
[   10.989960] eth0: link down
[   11.014490] procd: - early -
[   11.017633] procd: - watchdog -
[   11.650654] procd: - watchdog -
[   11.654157] procd: - ubus -
[   11.683274] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.708104] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.716065] procd: - init -
[   12.368350] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.418322] Loading modules backported from Linux version v5.2-rc7-0-g6fbc7275c7a9
[   12.426201] Backport generated by backports.git v5.2-rc7-1-0-g021a6ba1
[   12.483195] urngd: v1.0.0 started.
[   12.488367] xt_time: kernel timezone is -0000
[   12.605974] PPP generic driver version 2.4.2
[   12.626231] NET: Registered protocol family 24
[   12.698341] ath10k 4.19 driver, optimized for CT firmware, probing pci device: 0x56.
[   12.727486] ath10k_pci 0000:00:00.0: enabling device (0000 -> 0002)
[   12.734268] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   12.748477] random: crng init done
[   13.068434] firmware ath10k!fwcfg-pci-0000:00:00.0.txt: firmware_loading_store: map pages failed
[   13.262174] firmware ath10k!QCA9888!hw2.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[   13.456643] firmware ath10k!QCA9888!hw2.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[   13.650589] firmware ath10k!QCA9888!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[   14.472755] ath10k_pci 0000:00:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[   14.482323] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   14.502344] ath10k_pci 0000:00:00.0: firmware ver 10.4b-ct-9888-fW-012-e8020273 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 d41e2174
[   14.877562] ath10k_pci 0000:00:00.0: board_file api 2 bmi_id 0:18 crc32 f228337a
[   16.947340] ath10k_pci 0000:00:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   16.955083] ath10k_pci 0000:00:00.0: msdu-desc: 2500  skid: 32
[   16.985373] ath10k_pci 0000:00:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   16.996733] ath10k_pci 0000:00:00.0: wmi print 'free: 117872 iram: 22724 sram: 26020'
[   17.206365] ath10k_pci 0000:00:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   17.318188] ath: EEPROM regdomain: 0x0
[   17.318195] ath: EEPROM indicates default country code should be used
[   17.318199] ath: doing EEPROM country->regdmn map search
[   17.318212] ath: country maps to regdmn code: 0x3a
[   17.318217] ath: Country alpha2 being used: US
[   17.318220] ath: Regpair used: 0x3a
[   17.443111] ath: EEPROM regdomain: 0x0
[   17.443119] ath: EEPROM indicates default country code should be used
[   17.443122] ath: doing EEPROM country->regdmn map search
[   17.443135] ath: country maps to regdmn code: 0x3a
[   17.443140] ath: Country alpha2 being used: US
[   17.443142] ath: Regpair used: 0x3a
[   17.455133] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   17.456660] ieee80211 phy1: Atheros AR9561 Rev:0 mem=0xb8100000, irq=2
[   17.466362] kmodloader: done loading kernel modules from /etc/modules.d/*
[   27.832336] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   27.857780] device eth0 entered promiscuous mode
[   27.865761] br-lan: port 1(eth0.1) entered blocking state
[   27.871341] br-lan: port 1(eth0.1) entered disabled state
[   27.877276] device eth0.1 entered promiscuous mode
[   27.921686] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   27.975983] IPv6: ADDRCONF(NETDEV_UP): eth0.2: link is not ready
[   28.907007] eth0: link up (1000Mbps/Full duplex)
[   28.911861] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   29.065419] br-lan: port 1(eth0.1) entered blocking state
[   29.071006] br-lan: port 1(eth0.1) entered forwarding state
[   29.077050] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready
[   29.166480] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

iw list

Wiphy phy1
	max # scan SSIDs: 4
	max scan IEs length: 2257 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports AP-side u-APSD.
	Device supports T-DLS.
	Available Antennas: TX 0x3 RX 0x3
	Configured Antennas: TX 0x3 RX 0x3
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * mesh point
		 * P2P-client
		 * P2P-GO
		 * outside context of a BSS
	Band 1:
		Capabilities: 0x11ee
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			TX STBC
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 8 usec (0x06)
		HT TX/RX MCS rate indexes supported: 0-15
		Frequencies:
			* 2412 MHz [1] (24.0 dBm)
			* 2417 MHz [2] (24.0 dBm)
			* 2422 MHz [3] (24.0 dBm)
			* 2427 MHz [4] (24.0 dBm)
			* 2432 MHz [5] (24.0 dBm)
			* 2437 MHz [6] (24.0 dBm)
			* 2442 MHz [7] (24.0 dBm)
			* 2447 MHz [8] (24.0 dBm)
			* 2452 MHz [9] (24.0 dBm)
			* 2457 MHz [10] (24.0 dBm)
			* 2462 MHz [11] (24.0 dBm)
			* 2467 MHz [12] (disabled)
			* 2472 MHz [13] (disabled)
			* 2484 MHz [14] (disabled)
	valid interface combinations:
		 * #{ managed } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1,
		   total <= 2048, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz }

	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	Supported extended features:
		* [ RRM ]: RRM
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
		* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
Wiphy phy0
	max # scan SSIDs: 16
	max scan IEs length: 199 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports AP-side u-APSD.
	Device supports T-DLS.
	Available Antennas: TX 0x3 RX 0x3
	Configured Antennas: TX 0x3 RX 0x3
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * monitor
		 * mesh point
		 * P2P-client
		 * P2P-GO
		 * P2P-device
	Band 2:
		Capabilities: 0x19ef
			RX LDPC
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			TX STBC
			RX STBC 1-stream
			Max AMSDU length: 7935 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 8 usec (0x06)
		HT TX/RX MCS rate indexes supported: 0-15
		VHT Capabilities (0x339979fa):
			Max MPDU length: 11454
			Supported Channel Width: 160 MHz, 80+80 MHz
			RX LDPC
			short GI (80 MHz)
			short GI (160/80+80 MHz)
			TX STBC
			SU Beamformer
			SU Beamformee
			MU Beamformer
			MU Beamformee
			RX antenna pattern consistency
			TX antenna pattern consistency
		VHT RX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 780 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 780 Mbps
		Frequencies:
			* 5180 MHz [36] (23.0 dBm)
			* 5200 MHz [40] (23.0 dBm)
			* 5220 MHz [44] (23.0 dBm)
			* 5240 MHz [48] (23.0 dBm)
			* 5260 MHz [52] (23.0 dBm) (radar detection)
			* 5280 MHz [56] (23.0 dBm) (radar detection)
			* 5300 MHz [60] (23.0 dBm) (radar detection)
			* 5320 MHz [64] (23.0 dBm) (radar detection)
			* 5500 MHz [100] (23.0 dBm) (radar detection)
			* 5520 MHz [104] (23.0 dBm) (radar detection)
			* 5540 MHz [108] (23.0 dBm) (radar detection)
			* 5560 MHz [112] (23.0 dBm) (radar detection)
			* 5580 MHz [116] (23.0 dBm) (radar detection)
			* 5600 MHz [120] (23.0 dBm) (radar detection)
			* 5620 MHz [124] (23.0 dBm) (radar detection)
			* 5640 MHz [128] (23.0 dBm) (radar detection)
			* 5660 MHz [132] (23.0 dBm) (radar detection)
			* 5680 MHz [136] (23.0 dBm) (radar detection)
			* 5700 MHz [140] (23.0 dBm) (radar detection)
			* 5720 MHz [144] (23.0 dBm) (radar detection)
			* 5745 MHz [149] (30.0 dBm)
			* 5765 MHz [153] (30.0 dBm)
			* 5785 MHz [157] (30.0 dBm)
			* 5805 MHz [161] (30.0 dBm)
			* 5825 MHz [165] (30.0 dBm)
			* 5845 MHz [169] (disabled)
			* 5865 MHz [173] (disabled)
	valid interface combinations:
		 * #{ managed } <= 16, #{ AP, mesh point } <= 16, #{ IBSS } <= 1,
		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }

	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	Supported extended features:
		* [ VHT_IBSS ]: VHT-IBSS
		* [ RRM ]: RRM
		* [ SET_SCAN_DWELL ]: scan dwell setting
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
		* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs

Forum for Rev C1: Support for DIR-842 rev: C1
Forum for Rev C2: Support for D-Link DIR-842 (Rev C2)

1 Like

EU is the firmware revision.

Looks like it is extremely similar to C1

Can you take a brief look at every function to make sure they are working?

It depends on what "every function" is. It's too bad that there isn't a standardized unit test procedure.

Anyhow, the following looks good:

  • swconfig (command line and via LuCi)
  • wifi 5Ghz
    • I used an Archer C7 V4 to test connecting with AC (I don't have any other options).
    • Also connected in the DFS range, although with an N device
    • 802.11s works (here I had to use a WDR4900 since the -ct drivers for the archer doesn't support 802.11s).
    • adhoc works
  • wifi 2.4Ghz
    • ap, sta, adhoc, 802.11s all work
  • NAT works

What else is there to test?

Does it make sense to have a single openwrt image which supports all Rev C? versions?

Can you check the Mac address of LAN, WAN and both 2.4G and 5G wifi is correct? (according to the label printed under the router)

If the board is exactly the same as C1, I think I can submit a new PR after the the C1 PR is merged

The label on the bottom has only one MAC.

br-lan, eth0.1 and wlan1 (2.4GHz) match the MAC from the label exactly
eth0.2 and wlan0 (5GHz) differ on with the least significant octet.
eth0 seems to be automatically generated and is in no way similar to the label. It also changes with each reboot.

It should be noted that the macaddr for eth0.1 and eth0.2 are set in /etc/config/network. If I comment out the device entries from /etc/config/network and reboot, then all the MACs are wrong.

I'm sorry, I was wrong here. If I comment out the device entries and reboot, only br-lan and eth0 are wrong. wlan0, wlan1, eth0.1 and eth0.2 are right (except sometimes the last octet).

Thanks for the information!
eth0.1 should have the same Mac address as printed on the label.

And other interfaces should have very similar Mac address except the last octet.

Since C1, C2, and C3 seem to all work with the same image, is it possible to generate one image for all, or do they need to be distinct separate images?

@jackcolentern thanks for your support

It is probably better to separate the image because C2 have a USB port.

But I am new to this as well, I am not sure about how to deal with C1 and C3

I am confused with this too. When I added DIR-825 B1, I actually had B2. Both work with the B1 Image.

IMHO the best option is to have C1 and C2 images. Just mention that C3 should be flashed by C1 image in wiki.

Another way would be to have one image for all, but that breaks a bit the rule about supporting USB, etc.

Thanks for the advice!

But why Dlink give the same board two different revision numbers? Or maybe they just changed some minor things on the board that doesn't affect the software?

In case of DIR-825b the only difference I could notice was a power switch that was only on B2.

@Pilot6 Can you provide a link which references the rules?

It seems like internally there is a USB EHCI Host Controller.

[    4.537165] usbcore: registered new interface driver usbfs
[    4.542886] usbcore: registered new interface driver hub
[    4.548506] usbcore: registered new device driver usb
[    4.559748] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.568085] ehci-platform: EHCI generic platform driver
[    4.573688] ehci-platform 1b000000.usb: EHCI Host Controller
[    4.579617] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1
[    4.587818] ehci-platform 1b000000.usb: irq 13, io mem 0x1b000000
[    4.615313] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00
[    4.622435] hub 1-0:1.0: USB hub found
[    4.626776] hub 1-0:1.0: 1 port detected

It would be nice to know if there are any differences between C1 and C3.

The C3 has a power button

I am not aware of any written rule, but generally there is an agreement between maintainers that Openwrt supports only factory hardware, mods are not supported. But I don't think that in this case it is crucial.

The USB controller is in the SoC, the USB circuit is on the board, just the components is not soldered

There is a lot of devices where something is present, but not soldered. We usually don't take in account "unsoldered" devices.

2 Likes

I understand your point completely. But somehow I see creating 3 images where one can work as bloat. A user, holding the C1 or C3 device will not be surprised that USB doesn't work, there's no port.

As a counter-point, there are many models of Ubiquiti devices which take the same bullet firmware or nanostation firmware. Hardware differences include number or ports, poe-passthrough, 2.4G vs 5G, antenna attenuation.

Most D-Link devices have a section near the end of ART that contains the factory default ESSID / PSK, MAC addresses etc., I think there should also be a model string somewhere that contains the exact hardware revision.

However I'm not sure if the kernel could parse this by any reasonable means before initializing stuff (i.e. selecting the appropriate device tree!? Though I actually appreciate that we're moving away from things like mach files with ath79), but it's an interesting question how to deal with peripherals that are unpopulated on the board.
For example, there are several devices that were designed as an access point / repeater that will only have a single ethernet port populated, however all of them will be initialized (so I believe; though I remember someone explaining to me that the output of swconfig is yet another thing...), and nobody will ever notice...
So we might save a few milliamps / kilobytes by disabling USB, but I'm not sure whether it's worth creating multiple images.

Actually, if you unpack oem images for many devices, you can find lots of stuff in there (e.g. web ui icons for dsl modems / usb sharing / wireless / ... ) that are never used for the particular device :sweat_smile:

By the way, there is also a (very rare?) Rev. B of this device, also Atheros according to downloadable firmware... I will try to find the time to test the images for the C revisions and see what happens :slight_smile: edit: it is also Realtek, see below

1 Like

Ya, the hardware revision is stored in the devdata partition alongside mac address, default passwords and other stuffs