forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
qualcommax: ipq807x: add support for Linksys MX4300 (LN1301)
Hardware specification: ======== SoC: Qualcomm IPQ8174 Flash: 1GB (Micron MT29F8G08ABBCAH4 or AMD/Spansion S34MS08G2) RAM: 2GB (2x Kingston B5116ECMDXGJD or ESMT M15T2G16128A DDR3L) Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075) WiFi1: 5GHz ax 2x2 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-64 (low band) WiFi2: 2.4GHz ax 2x2 (Qualcomm QCN5024 + Skyworks SKY85340-11) WiFi3: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 100-177 (high band) LED: 1x RGB status (NXP PCA9633) USB: 1x USB 3.0 Button: WPS, Reset Flash instructions: ======== 1. Manually upgrade firmware using openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin image. More details can be found here: https://store.linksys.com/support-article?articleNum=59254 After first boot check actual partition: - fw_printenv -n boot_part and install firmware on second partition using command in case of 2: - mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel and in case of 1: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel 2. Installation using serial connection from OEM firmware (default login: root, password: admin): - fw_printenv -n boot_part In case of 2: - flash_erase /dev/mtd21 0 0 - nandwrite -p /dev/mtd21 openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin or in case of 1: - flash_erase /dev/mtd23 0 0 - nandwrite -p /dev/mtd23 openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin After first boot install firmware on second partition: - mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel or: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel 3. Installation from initramfs image using USB drive: Put the initramfs image on the USB drive: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb of=/dev/sdX Stop u-boot and run: - usb start && usbboot $loadaddr 0 && bootm $loadaddr Write firmware to the flash from initramfs: - mtd -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel and: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel 4. Back to the OEM firmware: - mtd -e kernel -n write FW_MX4300_1.0.4.215382_prod.img kernel and: - mtd -r -e alt_kernel -n write FW_MX4300_1.0.4.215382_prod.img alt_kernel 5. USB recovery: Put the initramfs image on the USB: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb of=/dev/sdX Set u-boot env: - fw_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr' - fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi' Co-authored-by: Qiyuan Zhang <[email protected]> Signed-off-by: Paweł Owoc <[email protected]>
- Loading branch information
Showing
7 changed files
with
302 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
273 changes: 273 additions & 0 deletions
273
target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8174-mx4300.dts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,273 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
|
||
/dts-v1/; | ||
|
||
#include "ipq8174-mx4x00.dtsi" | ||
|
||
/ { | ||
model = "Linksys MX4300"; | ||
compatible = "linksys,mx4300", "qcom,ipq8074"; | ||
|
||
chosen { | ||
/* | ||
In the kernel command line, replace the first occurence of bootargs-find-X with bootargs-replace-X. | ||
If bootargs-exact-match-X is set to "y", then replacement happens only if the kernel command line | ||
is identical to bootargs-find-X. | ||
*/ | ||
bootargs-find-1 = "ubi.mtd=22,2048"; | ||
bootargs-replace-1 = "ubi.mtd=22,4096"; | ||
|
||
bootargs-find-2 = "ubi.mtd=24,2048"; | ||
bootargs-replace-2 = "ubi.mtd=24,4096"; | ||
}; | ||
}; | ||
|
||
&qpic_nand { | ||
status = "okay"; | ||
|
||
/* | ||
* Bootloader will find the NAND DT node by the compatible and | ||
* then "fixup" it by adding the partitions from the SMEM table | ||
* using the legacy bindings thus making it impossible for us | ||
* to change the partition table or utilize NVMEM for calibration. | ||
* So add a dummy partitions node that bootloader will populate | ||
* and set it as disabled so the kernel ignores it instead of | ||
* printing warnings due to the broken way bootloader adds the | ||
* partitions. | ||
*/ | ||
partitions { | ||
status = "disabled"; | ||
}; | ||
|
||
nand@0 { | ||
reg = <0>; | ||
/* | ||
* Some devices use Micron NAND with with 8 bit ECC | ||
* other AMD/Spansion NAND with 4 bit ECC | ||
*nand-ecc-strength = <4>; | ||
*nand-ecc-step-size = <512>; | ||
*/ | ||
nand-bus-width = <8>; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
label = "0:sbl1"; | ||
reg = <0x0 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@100000 { | ||
label = "0:mibib"; | ||
reg = <0x100000 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@200000 { | ||
label = "0:bootconfig"; | ||
reg = <0x200000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@280000 { | ||
label = "0:bootconfig1"; | ||
reg = <0x280000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@300000 { | ||
label = "0:qsee"; | ||
reg = <0x300000 0x300000>; | ||
read-only; | ||
}; | ||
|
||
partition@600000 { | ||
label = "0:qsee_1"; | ||
reg = <0x600000 0x300000>; | ||
read-only; | ||
}; | ||
|
||
partition@900000 { | ||
label = "0:devcfg"; | ||
reg = <0x900000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@980000 { | ||
label = "0:devcfg_1"; | ||
reg = <0x980000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@a00000 { | ||
label = "0:apdp"; | ||
reg = <0xa00000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@a80000 { | ||
label = "0:apdp_1"; | ||
reg = <0xa80000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@b00000 { | ||
label = "0:rpm"; | ||
reg = <0xb00000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@b80000 { | ||
label = "0:rpm_1"; | ||
reg = <0xb80000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@c00000 { | ||
label = "0:cdt"; | ||
reg = <0xc00000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@c80000 { | ||
label = "0:cdt_1"; | ||
reg = <0xc80000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@d00000 { | ||
label = "0:appsblenv"; | ||
reg = <0xd00000 0x80000>; | ||
}; | ||
|
||
partition@d80000 { | ||
label = "0:appsbl"; | ||
reg = <0xd80000 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@e80000 { | ||
label = "0:appsbl_1"; | ||
reg = <0xe80000 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@f80000 { | ||
label = "0:art"; | ||
reg = <0xf80000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@1000000 { | ||
label = "u_env"; | ||
reg = <0x1000000 0x100000>; | ||
}; | ||
|
||
partition@1100000 { | ||
label = "s_env"; | ||
reg = <0x1100000 0x100000>; | ||
}; | ||
|
||
partition@1200000 { | ||
label = "devinfo"; | ||
reg = <0x1200000 0x40000>; | ||
read-only; | ||
}; | ||
|
||
partition@1240000 { | ||
label = "kernel"; | ||
reg = <0x1240000 0xaf40000>; | ||
}; | ||
|
||
partition@1a40000 { | ||
label = "rootfs"; | ||
reg = <0x1a40000 0xa740000>; | ||
}; | ||
|
||
partition@c180000 { | ||
label = "alt_kernel"; | ||
reg = <0xc180000 0xaf40000>; | ||
}; | ||
|
||
partition@c980000 { | ||
label = "alt_rootfs"; | ||
reg = <0xc980000 0xa740000>; | ||
}; | ||
|
||
partition@170c0000 { | ||
label = "sysdiag"; | ||
reg = <0x170c0000 0x400000>; | ||
read-only; | ||
}; | ||
|
||
partition@174c0000 { | ||
label = "0:ethphyfw"; | ||
reg = <0x174c0000 0x80000>; | ||
read-only; | ||
}; | ||
|
||
partition@17540000 { | ||
label = "syscfg"; | ||
reg = <0x17540000 0x79c0000>; | ||
read-only; | ||
}; | ||
|
||
partition@1ef00000 { | ||
label = "secured_store"; | ||
reg = <0x1ef00000 0x400000>; | ||
read-only; | ||
}; | ||
|
||
partition@1f300000 { | ||
label = "0:wififw"; | ||
reg = <0x1f300000 0x1900000>; | ||
read-only; | ||
}; | ||
|
||
partition@20c00000 { | ||
label = "app2_data"; | ||
reg = <0x20c00000 0x16180000>; | ||
read-only; | ||
}; | ||
|
||
partition@36d80000 { | ||
label = "app2"; | ||
reg = <0x36d80000 0x9280000>; | ||
read-only; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&dp2 { | ||
status = "okay"; | ||
phy-handle = <&qca8075_1>; | ||
label = "wan"; | ||
}; | ||
|
||
&dp3 { | ||
status = "okay"; | ||
phy-handle = <&qca8075_2>; | ||
label = "lan3"; | ||
}; | ||
|
||
&dp4 { | ||
status = "okay"; | ||
phy-handle = <&qca8075_3>; | ||
label = "lan2"; | ||
}; | ||
|
||
&dp5 { | ||
status = "okay"; | ||
phy-handle = <&qca8075_4>; | ||
label = "lan1"; | ||
}; | ||
|
||
&wifi { | ||
status = "okay"; | ||
|
||
qcom,ath11k-calibration-variant = "Linksys-MX4200v2"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters