There are NAND IC-s that define 1-bit ECC as the minimal strength,
however that is unsupported by QPIC-SNAND as it only supports 4 or 8 bit
ECC.
Since most of these chips also support 4-bit ECC just fine, instead of
erroring out if 1-bit ECC is requested lets instead default to 4-bit ECC.
Fixes: 01b72ce61e ("qualcommax: ipq50xx: remove ECC user config from board files")
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
6.12 PWM core introduced a bunch of incompatible changes, namely removal
of manual module owner assignment, complete PWM struct allocation and usage
refactor, etc.
So, update the driver to follow other drivers in 6.12 so it compiles.
Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
Refresh kernel config by running kernel_menuconfig.
Manually enable CONFIG_HW_RANDOM and CONFIG_CRYPTO_DEV_QCOM_RNG as these
got somehow disabled by the refresh.
Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
Refresh 6.12 patches, those that failed automatic refresh were refreshed
manually.
DT bindings patches that failed were dropped as we dont use them in practice.
Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, non existing ipq-wifi package name is selected for
EAP625-Outdoor HD, so correct the name.
Fixes: 51c1ea08d0 ("qualcommax: ipq60xx: add TP-Link EAP625-Outdoor HD v1 support")
Signed-off-by: Robert Marko <robimarko@gmail.com>
TP-Link EAP625-Outdoor HD is a 802.11ax AP claiming AX1800 support.
It is wall or pole mountable, and rated for outdoor use. It can only
be powered via PoE.
Hardware-wise, it is very similar to the older EAP610-Outdoor model.
Software-wise, I couldn't find a difference other than the board
data files, and device name. For this reason, the majority of the
devicetree from the EAP610-Outdoor is reused.
This device currently comes in a "v1", and "v1.6" version. The
"support-list" of the vendor firmware does not have a distinction
between these versions. This commit was tested on a 'V1.6" device.
Specifications:
---------------
* CPU: Qualcomm IPQ6018 Quad core Cortex-A53
* RAM: 512 MB
* Storage: 128MB NAND
* Ethernet:
* Gigabit RJ45 port with PoE input
* WLAN:
* 2.4GHz/5GHz
* LEDs:
* Multi-color System LED (Green/Amber)
* Buttons:
* 1x Reset
* UART: 4-pin unpopulated header
* 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V
Installation:
=============
Web UI method
-------------
Set up the device using the vendor's web UI. After that go to
Management->SSH and enable the "SSH Login" checkbox. Select "Save".
The connect to the machine via SSH:
ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>
Disable signature verification:
cliclientd stopcs
Rename the "-web-ui-factory" image to something less than 63
characters, maintaining the ".bin" suffix.
* Go to System -> Firmware Update.
* Under "New Firmware File", click "Browse" and select the image
* Select "Update" and confirm by clicking "OK".
If the update fails, the web UI should show an error message.
Otherwise, the device should reboot into OpenWRT.
NOTE: If ssh continues to complain that "no matching host key type
found. Their offer: ssh-rsa,ssh-dss" it likely means that yor distro
has completely disabled deprecated siphers in ssh. In that case, run
the ssh command from a docker container of an older distro.
TFTP method
-----------
To flash via tftp, first place the initramfs image on the TFTP server.
setenv serverip <ip of tftp server>
setenv ipaddr <ip in same subnet as tftp server>
tftpboot tplink_eap625-outdoor-hd-v1-initramfs-uImage.itb
bootm
This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the commandline.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
I have an EAP625-Outdoor HD v1 that is very similar with the EAP610
Outdoor. It works with the EAP610 initramfs, without any obvious loss
of functionality. In order to prepare for supporting the EAP625, move
the common parts into a shared .dtsi.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
Now that IPQ50xx PCIe nodes have linux,pci-domain property defined
it changed the PCI path, but its now predictable and fixed.
So, update the caldata script accordingly.
Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
It seems that bus-range property was missed for the PCIe bridges on
IPQ50xx, thus causing DTC to warn on any bus adress used on nodes
under the PCIe bridges.
Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
Specify 4-bit ECC strength instead of 8-bit, to resolve NAND I/O errors
on ELECOM WRC-X3000GS2.
ELECOM WRC-X3000GS2 has a Macronix MX35UF1G24AD SPI-NAND chip as a flash
storage. That chip is registered as a chip that has 128 bytes OOB and
requires 8-bit ECC, and described as the same in the Macronix's datasheet.
But on WRC-X3000GS2, 8-bit ECC breaks NAND I/O on mtdblock devices with
the following errors and 4-bit ECC needs to be used to resolve this issue.
current (ECC strength=8):
```
[ 1.401566] 0x000000480000-0x000000500000 : "0:appsblenv"
[ 1.407128] 1 fixed-partitions partitions found on MTD device 0:appsblenv
[ 1.410663] Creating 1 MTD partitions on "0:appsblenv":
[ 1.417359] 0x000000000000-0x000000040000 : "env-data"
[ 1.479865] u-boot-env-layout: probe of 79b0000.qpic-nand:flash@0:partitions:partition-0-appsblenv:partition@0:nvmem-layout failed with error -74
root@OpenWrt:~# strings /dev/mtdblock10
[ 55.693754] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
[ 55.694660] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2
[ 55.703147] I/O error, dev mtdblock10, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 2
[ 55.711884] I/O error, dev mtdblock10, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 2
[ 55.720778] I/O error, dev mtdblock10, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 55.730310] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 55.738607] Buffer I/O error on dev mtdblock10, logical block 0, async page read
```
after fixing (ECC strength=4):
```
[ 1.402301] 0x000000480000-0x000000500000 : "0:appsblenv"
[ 1.407909] 1 fixed-partitions partitions found on MTD device 0:appsblenv
[ 1.411370] Creating 1 MTD partitions on "0:appsblenv":
[ 1.418075] 0x000000000000-0x000000040000 : "env-data"
(no error)
root@OpenWrt:~# strings /dev/mtdblock10
[ 39.131008] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
bootcmd=bootipq
baudrate=115200
wifi2=7C:F8:54:01:BD:F3
CRASH_COUNT=0
...
```
Fixes: 01b72ce61e ("qualcommax: ipq50xx: remove ECC user config from board files")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18770
Signed-off-by: Robert Marko <robimarko@gmail.com>
Passing QMP pipe clocks was upstreamed, but it requires conversion single
QMP node, so backport both of those instead of our downstream patch.
Signed-off-by: Robert Marko <robimarko@gmail.com>
In order to free up some more number space, simply renumber existing
upstreamed patches starting from 0 again.
Signed-off-by: Robert Marko <robimarko@gmail.com>
With the spi-qpic-snand driver now supporting reading ECC requirements
from the NAND chip itself, there's no need to set those in the DTS
anymore avoiding issues with devices of the same revision using
different NAND types with varying ECC requirements.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18723
Signed-off-by: Robert Marko <robimarko@gmail.com>
Updating the spi-qpic-snand driver with the latest patches sent
upstream and remove custom patches.
These patches add error handling fixes, use of right read location in
read ops, removal of unused variable, ability to read user config and
nand chip requirements, and support for 8bits ECC strength.
Tested on: Gl.iNet GL-B3000 & Linksys MR5500, MX2000, MX5500, SPNMX56
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18723
Signed-off-by: Robert Marko <robimarko@gmail.com>
Multiple conf support was upstreamed into kernel 6.10, so lets use the
upstreamed patches and mark them as so.
Signed-off-by: Robert Marko <robimarko@gmail.com>
MP5496 patches are not part of 6.15, but rather will be part of 6.16 as
they are no in 6.15 RC releases but they are in linux-next.
Signed-off-by: Robert Marko <robimarko@gmail.com>
This additional board.d script creates the "/tmp/sysinfo/oem_name" file
and populates it with the proper OEM "supported_devices" metadata entry
to be used by the new fwtool.sh oem detection feature.
(#18554): add oem image dectection to fwtool.sh
Signed-off-by: Scott Mercer <TheRootEd24@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18656
Signed-off-by: Robert Marko <robimarko@gmail.com>
Commit fc3ff2af0c introduced reading
ECC strength from the device tree. Linksys MR5500 uses the mx-base dtsi
which was originally developed for Linksys MX2000 and MX5500 where the
ECC strength is set to 8. Correct this and set it to strength of 4 as
per the NAND specs for Gigadevice GD5F2GQ5REYIH.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18672
Signed-off-by: Robert Marko <robimarko@gmail.com>
This reverts commit 34e5bc4af54d366147a83904c094d54fec7fb025.
While fixing support for 2.5Gbps mode on uniphy in phy to phy link
setups, it inadvertently broke fixed link scenario. So let's revert this
commit until there's a fix that doesn't impact fixed links.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18668
Signed-off-by: Robert Marko <robimarko@gmail.com>
Fix the resets of the GE_PHY and Uniphy found on the IPQ5018 SoC.
Bitmasks are used to perform multiple resets simultaneously, including
the RX and TX clocks. This enables the Uniphy to properly shift between
SGMII/1G and SGMII+/2.5G modes.
While at it, properly reorder the patches, and rename some to follow
naming standards.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18638
Signed-off-by: Robert Marko <robimarko@gmail.com>
As part of the previous commit to add the #clock-cells property to the
GE PHY, the PHY was inadvertently moved under the second mdio node in
the dtsi, and therefore broke the init sequence as the driver was trying
to use the wrong mdio bus to set the init values (ex. DAC, MSE, and AZ).
So let's move it back under the right mdio node and, while at it, pad
the register addresses to 8 hex numbers and re-order properties in line
with Linux DTS coding standards.
Fixes: 6782d0e66f
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18634
Signed-off-by: Robert Marko <robimarko@gmail.com>
Drop the firmware image entry "factory.ubi" from IMAGES for ELECOM
WRC-X3000GS2.
`Device/UbiFit` is added in the early stage of working for adding
support of the device, but finally, only `KERNEL_IN_UBI` is neccesary
and factory.ubi is not. So `Device/UbiFit` should have been replaced
to `KERNEL_IN_UBI` but it was forgotten.
Fixes: 3b7d72bc2e ("qualcommax: add support for ELECOM WRC-X3000GS2")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18611
Signed-off-by: Robert Marko <robimarko@gmail.com>
Fix nand-ecc-strength property in the spi-nand node of GL-iNet GL-B3000
to 4, to solve the following ECC error on that spi-nand chip.
[ 1.551618] ubi0: attaching mtd11
[ 1.552331] ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry
[ 1.554455] ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry
[ 1.565931] ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry
[ 1.576568] ubi0 error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read 64 bytes
[ 1.587146] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.87 #0
[ 1.597153] Hardware name: GL.iNet GL-B3000 (DT)
[ 1.602881] Call trace:
[ 1.607739] dump_backtrace+0xa0/0xe0
[ 1.609910] show_stack+0x18/0x24
[ 1.613728] dump_stack_lvl+0x48/0x60
[ 1.617027] dump_stack+0x18/0x24
[ 1.620672] ubi_io_read+0x11c/0x32c
[ 1.623972] ubi_io_read_ec_hdr+0x50/0x1f0
[ 1.627618] ubi_attach+0x35c/0x133c
[ 1.631524] ubi_attach_mtd_dev+0x494/0xaf4
[ 1.635257] ubi_init_attach+0xac/0x2e4
[ 1.639163] do_one_initcall+0x6c/0x1fc
[ 1.642983] kernel_init_freeable+0x204/0x2e4
[ 1.646803] kernel_init+0x28/0x1dc
[ 1.651316] ret_from_fork+0x10/0x20
The GL-B3000 has a Winbond W25N01GW and the spare size (oobsize) of it
is 64. So the maximum available ECC strength with the qpic-snand driver
is 4 but not 8.
The "nand-ecc-strength" property was not used before the commit
fc3ff2af0c ("qualcommax: allow overriding ECC strength for qpic-snand")
and calculated from the registered spare size in the Linux Kernel. As a
result, we had no issues on the GL-B3000 with the wrong ECC strength
value.
Fixes: 3307fe8ee4 ("qualcommax: ipq50xx: add support for GL.iNET GL-B3000")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18595
Signed-off-by: Robert Marko <robimarko@gmail.com>
ELECOM WRC-X3000GS2 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
IPQ5018.
Specification:
- SoC : Qualcomm IPQ5018
- RAM : DDR3 256 MiB (Zentel A3T2GF40CBF-HP)
- Flash : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5018 (SoC)
- 5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 5x 10/100/1000 Mbps
- wan (phy) : Qualcomm IPQ5018 (SoC)
- lan (switch) : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 8x/3x
- UART : through-hole on PCB, 4pins near the barcode
- assignment : 3.3V, TX, RX, NC, GND from the barcode side
- settings : 115200n8
- Power : 12 VDC, 1 A (Max. 11.5W)
Flash instruction using initramfs-factory.bin image:
1. Boot WRC-X3000GS2 normally with router mode
2. Access to the WebUI ("http://192.168.2.1/") on the device and open
the firmware update page ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing
Switching to the stock firmware:
1. Load the elecom.sh script
. /lib/upgrade/elecom.sh
2. Check the current index of rootfs
bootconfig_rw_index 0:bootconfig rootfs
3. Set the index to inverted value
bootconfig_rw_index 0:bootconfig rootfs <value>
bootconfig_rw_index 0:bootconfig1 rootfs <value>
example:
- step2 returned "0":
bootconfig_rw_index 0:bootconfig rootfs 1
bootconfig_rw_index 0:bootconfig1 rootfs 1
- step2 returned "1":
bootconfig_rw_index 0:bootconfig rootfs 0
bootconfig_rw_index 0:bootconfig1 rootfs 0
4. Reboot
Partition Layout (Stock FW):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs_1"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007b80000 : "Reserved"
0x000007b80000-0x000007c00000 : "FWHEADER"
0x000007c00000-0x000007c80000 : "Factory"
Known Issues:
- All Wi-Fi related peripherals are disabled.
This device has only 256 MiB RAM and it's too few for ath11k. To
prevent OOM when using LuCI or other softwares, disable Wi-Fi related
peripherals in device tree at the moment.
- This device has a Macronix MX35UF1G24AD SPI-NAND chip registered as
oobsize=128 in Linux Kernel. But using BCH8 breaks I/O on the chip
with the following errors, so this support uses BCH4 instead.
root@OpenWrt:~# strings /dev/mtdblock10
[26427.133154] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
[26427.134125] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2
[26427.142240] I/O error, dev mtdblock10, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 2
[26427.151427] I/O error, dev mtdblock10, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 2
[26427.160440] I/O error, dev mtdblock10, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[26427.169619] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[26427.178083] Buffer I/O error on dev mtdblock10, logical block 0, async page read
Notes:
- This device has dual-boot feature and it's managed by the index in the
0:bootconfig and 0:bootconfig1 partitions.
MAC Addresses:
LAN : 38:97:A4:xx:xx:60 (0:APPSBLENV, "eth1addr"/"ethaddr" (text))
WAN : 38:97:A4:xx:xx:63 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 38:97:A4:xx:xx:61 (0:APPSBLENV, "wifi0" (text))
5 GHz : 38:97:A4:xx:xx:62 (0:APPSBLENV, "wifi1" (text))
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18543
Signed-off-by: Robert Marko <robimarko@gmail.com>
The TP-link Deco X80-5G is a AX WIFI router with a single 1G (LAN) and 1 2.5G (WAN) port with a built in Quectel 5G modem.
Specifications:
Architecture ARMv8-A (aarch64 Cortex A53, 4 cores)
Vendor Qualcomm
Bootloader U-Boot (2016)
System-On-Chip Qualcomm IPQ8074A (Networking Pro 1210 platform)
CPU/Speed 2.2GHZ
Flash-Chip ESMT F59D1G81MB-45TI 1G-bit NAND
Flash MB 128MB (1Gbit)
RAM-chip 2* ESMT M15T4G16256A-DEBG2G 2Gb DDR3L (32bit)
RAM MB 512MB (4Gbit)
WLan System-On-Chip (5g) Qualcomm QCN5054
WLan Front end modules (5g) 8* Qorvo QPF4588
WLAN (5G) A/N/AC/AX
WLAN Antenna (int) 8* (4 shared with 2.5G)
WLan System-On-Chip (2.4G) Qualcomm QCN5024
WLan Front end modules (2.4G) 4* Skyworks SKY85340-11
WLAN (2.4G) B/G/N/AX
WLAN Antenna (int) 4* (shared with 5g)
Eithernet-phy (1Gbit) Qualcomm (Atheros) AR8033-AL1A
Ethernet (1Gbit) 1*
Eithernet-phy (2.5Gbit) Qualcomm QCA8081
Ethernet (2.5Gbit) 1*
Switch Embedded in the SOC?
Serial 1.8v 8n1 (testpoints)
Modem System-On-Chip Qualcomm 5G RG50xQ (Snapdragon X55 platform)
5G modem capability 5000Mbps down 900Mbps up
5G modem bands N1/N3/N5/N7/N8/N20/N28/N38/N40/N41/N77/N78/N79
4G modem capability 4.5G LTE-Advanced Pro (Cat20 down 2Gbps) (Cat18 up 200Mbps)
4G modem FDD bands B1/B3/B5/B7/B8/B18/B19/B20/B26/B28
4G modem TDD bands B34/B38/B39/B40/B41/B42/B43
Modem antenna (int) 8* (5G/4G use)
Modem antenna (ext) 2* SMA connectors (5G/4G use)
SIM type 1* Nano SIM
Telephony 1* POTS RJ11
(see wiki for more info:)
https://openwrt.org/inbox/toh/tp-link/x80-5g_v1
Notes:
Installation Instructions:
Between antennas 7 and 8 on the PCB with the RGB harness there are three test pads labelled TP1 TP2 and TP3 connections are as follows:
|TP2|-- RX
|TP1|-- TX
|TP3|-- GND
RX requires an external pullup to operate somewhere around 5 K ohm but your luck may vary the Uart is 1.8v
Set a static IP and set up a tftpserver and terminal.
power the router and quickly type the magic string “tpl” and press enter to break into u-boot
in the shell set the environment variables to enable tftp booting
setenv ipaddr (routerIP)
setenv serverip (server IP)
load you initramfs:
tftpboot 0x44000000 (serverIP):openwrt-qualcommax-ipq807x-tplink_x80-5g-initramfs-uImage.itb
boot your initramfs
bootm
upload your factory image to /tmp
format and install the factory image:
ubiformat /dev/mtd12 -y -f /tmp/openwrt-qualcommax-ipq807x-tplink_x80-5g-squashfs-factory.ubi
Note as this device swaps root partitions upon update your boot partition may be set as mtd13
Update script to mount factory tplink partition's for MAC recovery and device data.
Capture Labelmac from Factory_data partition.
Patch LAN from Labelmac.
Patch ART from Labelmac.
Set GPIO to make modem operational from boot.
GPIO fan tables work like the stock device with three fan maps high active idle with a top fan speed of 6800 RPM.
High temp 70 deg speeds 6-8
Active temp 50 deg speeds 2-5
low temp 25 degree speed 0-1
Signed-off-by: jonathan brophy <professor_jonny@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/16329
Signed-off-by: Robert Marko <robimarko@gmail.com>