mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
ipq807x: add QNAP 301w
QNAP 301w is a AX WIFI router with 4 1G and 2 10G ports. Specifications: • CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz • RAM: 1024MB of DDR3 • Storage: 4GB eMMC (contains kernel and rootfs) / 8MB NOR (contains art and u-boot-env) • Ethernet: 4x 1G RJ45 ports + 2 10G ports (Aquantia AQR113C) • WLAN: 2.4GHz: Qualcomm QCN5024 4x4 (40 MHz) 802.11b/g/n/ax 1174 Mbps PHY rate 5GHz: Qualcomm QCN5054 4x4 (80 MHz) or 2x2 (160 MHz) 802.11a/b/g/n/ac/ax 2402 PHY rate • LEDs: 7 x GPIO-controlled dual color LEDs + 2 GPIO-controlled single color LEDs • Buttons: 1x soft reset / 1x WPS • Power: 12V DC jack A poulated serial header is onboard. RX/TX is working, bootwait is active, secure boot is not enabled. SSH can be activated in the stock firmware, hold WPS button til the second beep (yes the router has a buzzer) SSH is available on port 22200, login with user admin and password "mac address of the router". Installation Instructions: • obtain serial access (https://openwrt.org/inbox/toh/qnap/301w#serial) • stop auto boot • setenv serverip 192.168.10.1 • setenv ipaddr 192.168.10.10 • tftpboot the initramfs image (openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb) • bootm • make sure that current_entry is set to "0": "fw_printenv -n current_entry" should be print "0". If not, do "fw_setenv current_entry 0" • copy openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin to the device to /tmp folder • sysupgrade -n /tmp/openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin this flashes openwrt to the first kernel and rootfs partition (mmcblk0p1 / mmcblk0p4) • reboot Note: this leaves the second kernel / rootfs parition untouched. So if you want to go back to stock, stop u-boot autoboot, "setenv current_entry 1" , "saveenv", "bootipq". Stock firmware should start from the second partition. Then do a firmwareupgrade in the stock gui, that should overwrite the openwrt in the first partitions Make 10G Aquantia phy's work: The aquantia phy's need a firmware to work. This can either be loaded in linux with a userspace tool or in u-boot. I was not successfull to load the firmware in linux (aq-fw-download) but luckily there is aq_load_fw available in u-boot. But first the right firmware needs to write to the 0:ETHPHYFW mtd partition (it is empty on my device) Grab the ethphy firmware image from: https://github.com/kirdesde/nbg7815_gpl/blob/master/target/linux/ipq/ipq807x_64/prebuilt_images/AQR_ethphyfw.mbn and scp that to openwrt. Check the 0:ETHPHYFW partition number: cat /proc/mtd|grep "0:ETHPHYFW", should be mtd10. Backup the 0:ETHPHYFW partition: dd if=/dev/mtd10 of=/tmp/ethphyfw.backup, scp ethphyfw.backup to a save place. Write the new firmware image to the 0:ETHPHYFW partition: "mtd erase /dev/mtd10", "mtd -n write AQR_ethphyfw.mbn /dev/mtd10". Reboot to u-boot. Check if aq_load_fw is working: "aq_load_fw 0", that checks the firmware and if successfull, loads iram and dram to one of the aquantia phy's. If that worked, add the aq_load_fw to the bootcmd: setenv bootcmd "aq_load_fw 0 && aq_load_fw 8 && bootipq" "saveenv" "reset" Board reboots and the firmware load to both phy's should start and then openwrt boots. Check if the 10G ports work. Note: lan port labeled "10G-2" is configured as WAN port as per default. All other port are in the br-lan. This can be changed in the network config. Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
This commit is contained in:
parent
a36fc589fe
commit
bd17683261
@ -22,6 +22,11 @@ xiaomi,ax3600)
|
|||||||
[ -n "$idx2" ] && \
|
[ -n "$idx2" ] && \
|
||||||
ubootenv_add_uci_sys_config "/dev/mtd$idx2" "0x0" "0x10000" "0x20000"
|
ubootenv_add_uci_sys_config "/dev/mtd$idx2" "0x0" "0x10000" "0x20000"
|
||||||
;;
|
;;
|
||||||
|
qnap,301w)
|
||||||
|
idx="$(find_mtd_index 0:appsblenv)"
|
||||||
|
[ -n "$idx" ] && \
|
||||||
|
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x20000" "0x20000" "1"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
config_load ubootenv
|
config_load ubootenv
|
||||||
|
@ -38,6 +38,7 @@ ALLWIFIBOARDS:= \
|
|||||||
linksys_whw03v2 \
|
linksys_whw03v2 \
|
||||||
p2w_r619ac \
|
p2w_r619ac \
|
||||||
pakedge_wr-1 \
|
pakedge_wr-1 \
|
||||||
|
qnap_301w \
|
||||||
qxwlan_e2600ac-c1 \
|
qxwlan_e2600ac-c1 \
|
||||||
qxwlan_e2600ac-c2 \
|
qxwlan_e2600ac-c2 \
|
||||||
redmi_ax6 \
|
redmi_ax6 \
|
||||||
@ -130,6 +131,7 @@ $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300))
|
|||||||
$(eval $(call generate-ipq-wifi-package,linksys_whw03v2,Linksys WHW03 V2))
|
$(eval $(call generate-ipq-wifi-package,linksys_whw03v2,Linksys WHW03 V2))
|
||||||
$(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC))
|
$(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC))
|
||||||
$(eval $(call generate-ipq-wifi-package,pakedge_wr-1,Pakedge WR-1))
|
$(eval $(call generate-ipq-wifi-package,pakedge_wr-1,Pakedge WR-1))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,qnap_301w,QNAP 301w))
|
||||||
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c1,Qxwlan E2600AC C1))
|
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c1,Qxwlan E2600AC C1))
|
||||||
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c2,Qxwlan E2600AC C2))
|
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c2,Qxwlan E2600AC C2))
|
||||||
$(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
|
$(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
|
||||||
|
BIN
package/firmware/ipq-wifi/board-qnap_301w.ipq8074
Normal file
BIN
package/firmware/ipq-wifi/board-qnap_301w.ipq8074
Normal file
Binary file not shown.
@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
ARCH:=aarch64
|
ARCH:=aarch64
|
||||||
BOARD:=ipq807x
|
BOARD:=ipq807x
|
||||||
BOARDNAME:=Qualcomm Atheros IPQ807x
|
BOARDNAME:=Qualcomm Atheros IPQ807x
|
||||||
FEATURES:=squashfs ramdisk fpu nand rtc
|
FEATURES:=squashfs ramdisk fpu nand rtc emmc
|
||||||
KERNELNAME:=Image dtbs
|
KERNELNAME:=Image dtbs
|
||||||
CPU_TYPE:=cortex-a53
|
CPU_TYPE:=cortex-a53
|
||||||
SUBTARGETS:=generic
|
SUBTARGETS:=generic
|
||||||
|
@ -10,6 +10,14 @@ redmi,ax6|\
|
|||||||
xiaomi,ax3600)
|
xiaomi,ax3600)
|
||||||
ucidef_set_led_netdev "wan" "WAN" "blue:network" "wan"
|
ucidef_set_led_netdev "wan" "WAN" "blue:network" "wan"
|
||||||
;;
|
;;
|
||||||
|
qnap,301w)
|
||||||
|
ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "lan1"
|
||||||
|
ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "lan2"
|
||||||
|
ucidef_set_led_netdev "lan3" "LAN3" "green:lan3" "lan3"
|
||||||
|
ucidef_set_led_netdev "lan4" "LAN4" "green:lan4" "lan4"
|
||||||
|
ucidef_set_led_netdev "10G_1" "10G_1" "green:10g_1" "10g-1"
|
||||||
|
ucidef_set_led_netdev "10G_2" "10G_2" "green:10g_2" "10g-2"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
board_config_flush
|
board_config_flush
|
||||||
|
@ -14,6 +14,9 @@ ipq807x_setup_interfaces()
|
|||||||
edimax,cax1800)
|
edimax,cax1800)
|
||||||
ucidef_set_interfaces_lan_wan "lan"
|
ucidef_set_interfaces_lan_wan "lan"
|
||||||
;;
|
;;
|
||||||
|
qnap,301w)
|
||||||
|
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 10g-2" "10g-1"
|
||||||
|
;;
|
||||||
redmi,ax6|\
|
redmi,ax6|\
|
||||||
xiaomi,ax3600)
|
xiaomi,ax3600)
|
||||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
|
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
|
||||||
|
@ -10,6 +10,7 @@ case "$FIRMWARE" in
|
|||||||
"ath11k/IPQ8074/hw2.0/cal-ahb-c000000.wifi.bin")
|
"ath11k/IPQ8074/hw2.0/cal-ahb-c000000.wifi.bin")
|
||||||
case "$board" in
|
case "$board" in
|
||||||
edimax,cax1800|\
|
edimax,cax1800|\
|
||||||
|
qnap,301w|\
|
||||||
redmi,ax6|\
|
redmi,ax6|\
|
||||||
xiaomi,ax3600)
|
xiaomi,ax3600)
|
||||||
caldata_extract "0:art" 0x1000 0x20000
|
caldata_extract "0:art" 0x1000 0x20000
|
||||||
|
83
target/linux/ipq807x/base-files/lib/upgrade/mmc.sh
Normal file
83
target/linux/ipq807x/base-files/lib/upgrade/mmc.sh
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2016 lede-project.org
|
||||||
|
#
|
||||||
|
|
||||||
|
# this can be used as a generic mmc upgrade script
|
||||||
|
# just add a device entry in platform.sh,
|
||||||
|
# define "kernelname" and "rootfsname" and call mmc_do_upgrade
|
||||||
|
# after the kernel and rootfs flash a loopdev (as overlay) is
|
||||||
|
# setup on top of the rootfs partition
|
||||||
|
# for the proper function a padded rootfs image is needed, basically
|
||||||
|
# append "pad-to 64k" to the image definition
|
||||||
|
# this is based on the ipq806x zyxel.sh mmc upgrade
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
mmc_do_upgrade() {
|
||||||
|
local tar_file="$1"
|
||||||
|
local rootfs=
|
||||||
|
local kernel=
|
||||||
|
|
||||||
|
[ -z "$kernel" ] && kernel=$(find_mmc_part ${kernelname})
|
||||||
|
[ -z "$rootfs" ] && rootfs=$(find_mmc_part ${rootfsname})
|
||||||
|
|
||||||
|
[ -z "$kernel" ] && echo "Upgrade failed: kernel partition not found! Rebooting..." && reboot -f
|
||||||
|
[ -z "$rootfs" ] && echo "Upgrade failed: rootfs partition not found! Rebooting..." && reboot -f
|
||||||
|
|
||||||
|
mmc_do_flash $tar_file $kernel $rootfs
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
mmc_do_flash() {
|
||||||
|
local tar_file=$1
|
||||||
|
local kernel=$2
|
||||||
|
local rootfs=$3
|
||||||
|
|
||||||
|
# keep sure its unbound
|
||||||
|
losetup --detach-all || {
|
||||||
|
echo Failed to detach all loop devices. Skip this try.
|
||||||
|
reboot -f
|
||||||
|
}
|
||||||
|
|
||||||
|
# use the first found directory in the tar archive
|
||||||
|
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
||||||
|
board_dir=${board_dir%/}
|
||||||
|
|
||||||
|
echo "flashing kernel to $kernel"
|
||||||
|
tar xf $tar_file ${board_dir}/kernel -O >$kernel
|
||||||
|
|
||||||
|
echo "flashing rootfs to ${rootfs}"
|
||||||
|
tar xf $tar_file ${board_dir}/root -O >"${rootfs}"
|
||||||
|
|
||||||
|
# a padded rootfs is needed for overlay fs creation
|
||||||
|
local offset=$(tar xf $tar_file ${board_dir}/root -O | wc -c)
|
||||||
|
[ $offset -lt 65536 ] && {
|
||||||
|
echo Wrong size for rootfs: $offset
|
||||||
|
sleep 10
|
||||||
|
reboot -f
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mount loop for rootfs_data
|
||||||
|
local loopdev="$(losetup -f)"
|
||||||
|
losetup -o $offset $loopdev $rootfs || {
|
||||||
|
echo "Failed to mount looped rootfs_data."
|
||||||
|
sleep 10
|
||||||
|
reboot -f
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Format new rootfs_data at position ${offset}."
|
||||||
|
mkfs.ext4 -F -L rootfs_data $loopdev
|
||||||
|
mkdir /tmp/new_root
|
||||||
|
mount -t ext4 $loopdev /tmp/new_root && {
|
||||||
|
echo "Saving config to rootfs_data at position ${offset}."
|
||||||
|
cp -v "$UPGRADE_BACKUP" "/tmp/new_root/$BACKUP_FILE"
|
||||||
|
umount /tmp/new_root
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
losetup -d $loopdev >/dev/null 2>&1
|
||||||
|
sync
|
||||||
|
umount -a
|
||||||
|
reboot -f
|
||||||
|
}
|
@ -45,6 +45,11 @@ platform_do_upgrade() {
|
|||||||
edimax,cax1800)
|
edimax,cax1800)
|
||||||
nand_do_upgrade "$1"
|
nand_do_upgrade "$1"
|
||||||
;;
|
;;
|
||||||
|
qnap,301w)
|
||||||
|
kernelname="0:HLOS"
|
||||||
|
rootfsname="rootfs"
|
||||||
|
mmc_do_upgrade "$1"
|
||||||
|
;;
|
||||||
redmi,ax6|\
|
redmi,ax6|\
|
||||||
xiaomi,ax3600)
|
xiaomi,ax3600)
|
||||||
# Make sure that UART is enabled
|
# Make sure that UART is enabled
|
||||||
|
@ -0,0 +1,410 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/* Copyright (c) 2021, Dirk Buchwalder <buchwalder@posteo.de> */
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ipq8074.dtsi"
|
||||||
|
#include "ipq8074-hk-cpu.dtsi"
|
||||||
|
#include "ipq8074-ess.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "QNAP 301w";
|
||||||
|
compatible = "qnap,301w", "qcom,ipq8074";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &blsp1_uart5;
|
||||||
|
/*
|
||||||
|
* Aliases as required by u-boot
|
||||||
|
* to patch MAC addresses
|
||||||
|
*/
|
||||||
|
led-boot = &led_system_red;
|
||||||
|
led-failsafe = &led_system_red;
|
||||||
|
led-running = &led_pwr_green;
|
||||||
|
led-upgrade = &led_system_red;
|
||||||
|
ethernet0 = &dp1;
|
||||||
|
ethernet1 = &dp2;
|
||||||
|
ethernet2 = &dp3;
|
||||||
|
ethernet3 = &dp4;
|
||||||
|
ethernet4 = &dp5;
|
||||||
|
ethernet5 = &dp6_syn;
|
||||||
|
label-mac-device = &dp1;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
pinctrl-0 = <&button_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
wps-button {
|
||||||
|
label = "wps";
|
||||||
|
gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_WPS_BUTTON>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reset-button {
|
||||||
|
label = "reset";
|
||||||
|
gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
pinctrl-0 = <&leds_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
led_system_green: led-system-green {
|
||||||
|
label = "green:system";
|
||||||
|
gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_system_red: led-system-red {
|
||||||
|
label = "red:system";
|
||||||
|
gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_RED>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_pwr_green: led-pwr-green {
|
||||||
|
label = "green:pwr";
|
||||||
|
gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-wifi-green {
|
||||||
|
label = "green:wifi";
|
||||||
|
gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan4-green {
|
||||||
|
label = "green:lan4";
|
||||||
|
gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan4-amber {
|
||||||
|
label = "amber:lan4";
|
||||||
|
gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_AMBER>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan3-green {
|
||||||
|
label = "green:lan3";
|
||||||
|
gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan3-amber {
|
||||||
|
label = "amber:lan3";
|
||||||
|
gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_AMBER>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan2-green {
|
||||||
|
label = "green:lan2";
|
||||||
|
gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan2-amber {
|
||||||
|
label = "amber:lan2";
|
||||||
|
gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_AMBER>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan1-green {
|
||||||
|
label = "green:lan1";
|
||||||
|
gpios = <&tlmm 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-lan1-amber {
|
||||||
|
label = "amber:lan1";
|
||||||
|
gpios = <&tlmm 15 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_AMBER>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-10g-1-green {
|
||||||
|
label = "green:10g_1";
|
||||||
|
gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-10g-1-amber {
|
||||||
|
label = "amber:10g_1";
|
||||||
|
gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_AMBER>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-10g-2-green {
|
||||||
|
label = "green:10g_2";
|
||||||
|
gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-10g-2-amber {
|
||||||
|
label = "amber:10g_2";
|
||||||
|
gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
|
||||||
|
color = <LED_COLOR_ID_AMBER>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&tlmm {
|
||||||
|
|
||||||
|
mdio_pins: mdio-state {
|
||||||
|
mdc-pins {
|
||||||
|
pins = "gpio68";
|
||||||
|
function = "mdc";
|
||||||
|
drive-strength = <8>;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
|
||||||
|
mdio-pins {
|
||||||
|
pins = "gpio69";
|
||||||
|
function = "mdio";
|
||||||
|
drive-strength = <8>;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
button_pins: button-state {
|
||||||
|
wps-pins {
|
||||||
|
pins = "gpio57";
|
||||||
|
function = "gpio";
|
||||||
|
drive-strength = <8>;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
|
||||||
|
rst-pins {
|
||||||
|
pins = "gpio67";
|
||||||
|
function = "gpio";
|
||||||
|
drive-strength = <8>;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds_pins: leds-state {
|
||||||
|
pins = "gpio1", "gpio3", "gpio4", "gpio6", "gpio7", "gpio8",
|
||||||
|
"gpio11", "gpio12", "gpio13", "gpio14", "gpio15", "gpio42",
|
||||||
|
"gpio51", "gpio52", "gpio54", "gpio56";
|
||||||
|
function = "gpio";
|
||||||
|
drive-strength = <8>;
|
||||||
|
bias-pull-down;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&blsp1_uart5 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&prng {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ssphy_0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qusb_phy_0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ssphy_1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qusb_phy_1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cryptobam {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&crypto {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qpic_bam {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&blsp1_spi1 { /* BLSP1 QUP1 */
|
||||||
|
pinctrl-0 = <&spi_0_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
cs-gpios = <0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
reg = <0>;
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "qcom,smem-part";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
pinctrl-0 = <&mdio_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
aqr113c_0: ethernet-phy@0 {
|
||||||
|
compatible ="ethernet-phy-ieee802.3-c45";
|
||||||
|
reg = <0>;
|
||||||
|
reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
aqr113c_8: ethernet-phy@8 {
|
||||||
|
compatible ="ethernet-phy-ieee802.3-c45";
|
||||||
|
reg = <8>;
|
||||||
|
reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qca8075_16: ethernet-phy@16 {
|
||||||
|
compatible = "ethernet-phy-ieee802.3-c22";
|
||||||
|
reg = <16>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qca8075_17: ethernet-phy@17 {
|
||||||
|
compatible = "ethernet-phy-ieee802.3-c22";
|
||||||
|
reg = <17>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qca8075_18: ethernet-phy@18 {
|
||||||
|
compatible = "ethernet-phy-ieee802.3-c22";
|
||||||
|
reg = <18>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qca8075_19: ethernet-phy@19 {
|
||||||
|
compatible = "ethernet-phy-ieee802.3-c22";
|
||||||
|
reg = <19>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhc_1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
/* According to the stock dts from the QNAP gpl drop
|
||||||
|
* the emmc has a problem with the hs400 > hs200 speed switch.
|
||||||
|
* Therefore remove the mmc-hs400-1_8v property
|
||||||
|
*/
|
||||||
|
/delete-property/ mmc-hs400-1_8v;
|
||||||
|
mmc-hs200-1_8v;
|
||||||
|
mmc-ddr-1_8v;
|
||||||
|
vqmmc-supply = <&l11>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&switch {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
|
||||||
|
switch_lan_bmp = <0x3e>; /* lan port bitmap */
|
||||||
|
switch_wan_bmp = <0xc0>; /* wan port bitmap */
|
||||||
|
switch_mac_mode = <0xb>; /* mac mode for uniphy instance0*/
|
||||||
|
switch_mac_mode1 = <0xd>; /* mac mode for uniphy instance1*/
|
||||||
|
switch_mac_mode2 = <0xd>; /* mac mode for uniphy instance2*/
|
||||||
|
bm_tick_mode = <0>; /* bm tick mode */
|
||||||
|
tm_tick_mode = <0>; /* tm tick mode */
|
||||||
|
|
||||||
|
qcom,port_phyinfo {
|
||||||
|
port@0 {
|
||||||
|
port_id = <1>;
|
||||||
|
phy_address = <16>;
|
||||||
|
};
|
||||||
|
port@1 {
|
||||||
|
port_id = <2>;
|
||||||
|
phy_address = <17>;
|
||||||
|
};
|
||||||
|
port@2 {
|
||||||
|
port_id = <3>;
|
||||||
|
phy_address = <18>;
|
||||||
|
};
|
||||||
|
port@3 {
|
||||||
|
port_id = <4>;
|
||||||
|
phy_address = <19>;
|
||||||
|
};
|
||||||
|
port@4 {
|
||||||
|
port_id = <5>;
|
||||||
|
phy_address = <8>;
|
||||||
|
compatible = "ethernet-phy-ieee802.3-c45";
|
||||||
|
ethernet-phy-ieee802.3-c45;
|
||||||
|
};
|
||||||
|
port@5 {
|
||||||
|
port_id = <6>;
|
||||||
|
phy_address = <0>;
|
||||||
|
compatible = "ethernet-phy-ieee802.3-c45";
|
||||||
|
ethernet-phy-ieee802.3-c45;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&edma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dp1 {
|
||||||
|
status = "okay";
|
||||||
|
phy-handle = <&qca8075_16>;
|
||||||
|
label = "lan4";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dp2 {
|
||||||
|
status = "okay";
|
||||||
|
phy-handle = <&qca8075_17>;
|
||||||
|
label = "lan3";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dp3 {
|
||||||
|
status = "okay";
|
||||||
|
phy-handle = <&qca8075_18>;
|
||||||
|
label = "lan2";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dp4 {
|
||||||
|
status = "okay";
|
||||||
|
phy-handle = <&qca8075_19>;
|
||||||
|
label = "lan1";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dp5 {
|
||||||
|
status = "okay";
|
||||||
|
qcom,mactype = <1>;
|
||||||
|
phy-handle = <&aqr113c_8>;
|
||||||
|
label = "10g-1";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dp6_syn {
|
||||||
|
status = "okay";
|
||||||
|
phy-handle = <&aqr113c_0>;
|
||||||
|
label = "10g-2";
|
||||||
|
};
|
||||||
|
|
||||||
|
&wifi {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
qcom,ath11k-calibration-variant = "QNAP-301w";
|
||||||
|
};
|
@ -30,6 +30,21 @@ define Device/edimax_cax1800
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += edimax_cax1800
|
TARGET_DEVICES += edimax_cax1800
|
||||||
|
|
||||||
|
define Device/qnap_301w
|
||||||
|
$(call Device/FitImage)
|
||||||
|
DEVICE_VENDOR := QNAP
|
||||||
|
DEVICE_MODEL := 301w
|
||||||
|
DEVICE_DTS_CONFIG := config@hk01
|
||||||
|
KERNEL_SIZE := 16384k
|
||||||
|
BLOCKSIZE := 512k
|
||||||
|
SOC := ipq8072
|
||||||
|
IMAGES += factory.bin sysupgrade.bin
|
||||||
|
IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k
|
||||||
|
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||||
|
DEVICE_PACKAGES := ipq-wifi-qnap_301w e2fsprogs kmod-fs-ext4 losetup
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += qnap_301w
|
||||||
|
|
||||||
define Device/redmi_ax6
|
define Device/redmi_ax6
|
||||||
$(call Device/xiaomi_ax3600)
|
$(call Device/xiaomi_ax3600)
|
||||||
DEVICE_VENDOR := Redmi
|
DEVICE_VENDOR := Redmi
|
||||||
|
Loading…
Reference in New Issue
Block a user