Enable and setup multi-cpu for qca8k switch for ipq806x based devices. Rework each DTS to enable the secondary CPU port on QCA8K switch and apply the required values originally set by the OEM in the old swconfig node. In original firmware the first CPU port was always assigned to the WAN port and the secondary CPU port was assigned to the rest of the LAN port. Follow this original implementation using an init.d script. To setup the CPU port ip tools is required. Add additional default package ip-tiny to correctly setup the CPU port. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
470 lines
7.3 KiB
Plaintext
470 lines
7.3 KiB
Plaintext
#include "qcom-ipq8064-v2.0-smb208.dtsi"
|
|
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
model = "Netgear Nighthawk X4 R7500v2";
|
|
compatible = "netgear,r7500v2", "qcom,ipq8064";
|
|
|
|
memory@0 {
|
|
reg = <0x42000000 0x1e000000>;
|
|
device_type = "memory";
|
|
};
|
|
|
|
reserved-memory {
|
|
rsvd@5fe00000 {
|
|
reg = <0x5fe00000 0x200000>;
|
|
reusable;
|
|
};
|
|
};
|
|
|
|
aliases {
|
|
mdio-gpio0 = &mdio0;
|
|
|
|
led-boot = &power;
|
|
led-failsafe = &power;
|
|
led-running = &power;
|
|
led-upgrade = &power;
|
|
};
|
|
|
|
chosen {
|
|
bootargs = "rootfstype=squashfs noinitrd";
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-0 = <&button_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
wifi {
|
|
label = "wifi";
|
|
gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RFKILL>;
|
|
debounce-interval = <60>;
|
|
wakeup-source;
|
|
};
|
|
|
|
reset {
|
|
label = "reset";
|
|
gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RESTART>;
|
|
debounce-interval = <60>;
|
|
wakeup-source;
|
|
};
|
|
|
|
wps {
|
|
label = "wps";
|
|
gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_WPS_BUTTON>;
|
|
debounce-interval = <60>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
pinctrl-0 = <&led_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
usb1 {
|
|
label = "amber:usb1";
|
|
gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
usb3 {
|
|
label = "amber:usb3";
|
|
gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
status {
|
|
label = "amber:status";
|
|
gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
internet {
|
|
label = "white:internet";
|
|
gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
wan {
|
|
label = "white:wan";
|
|
gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
wps {
|
|
label = "white:wps";
|
|
gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
esata {
|
|
label = "white:esata";
|
|
gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
power: power {
|
|
label = "white:power";
|
|
gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
|
|
default-state = "keep";
|
|
};
|
|
|
|
wifi {
|
|
label = "white:wifi";
|
|
gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&adm_dma {
|
|
status = "okay";
|
|
};
|
|
|
|
&qcom_pinmux {
|
|
button_pins: button_pins {
|
|
mux {
|
|
pins = "gpio6", "gpio54", "gpio65";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
led_pins: led_pins {
|
|
mux {
|
|
pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23",
|
|
"gpio24","gpio26", "gpio53", "gpio64";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
usb0_pwr_en_pins: usb0_pwr_en_pins {
|
|
mux {
|
|
pins = "gpio15";
|
|
function = "gpio";
|
|
drive-strength = <12>;
|
|
bias-pull-down;
|
|
output-high;
|
|
};
|
|
};
|
|
|
|
usb1_pwr_en_pins: usb1_pwr_en_pins {
|
|
mux {
|
|
pins = "gpio16", "gpio68";
|
|
function = "gpio";
|
|
drive-strength = <12>;
|
|
bias-pull-down;
|
|
output-high;
|
|
};
|
|
};
|
|
};
|
|
|
|
&sata_phy {
|
|
status = "okay";
|
|
};
|
|
|
|
&sata {
|
|
status = "okay";
|
|
};
|
|
|
|
&hs_phy_0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ss_phy_0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb3_0 {
|
|
status = "okay";
|
|
|
|
pinctrl-0 = <&usb0_pwr_en_pins>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&hs_phy_1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ss_phy_1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb3_1 {
|
|
status = "okay";
|
|
|
|
pinctrl-0 = <&usb1_pwr_en_pins>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&pcie0 {
|
|
status = "okay";
|
|
reset-gpio = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
|
|
pinctrl-0 = <&pcie0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
bridge@0,0 {
|
|
reg = <0x00000000 0 0 0 0>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
wifi@1,0 {
|
|
compatible = "pci168c,0040";
|
|
reg = <0x00010000 0 0 0 0>;
|
|
|
|
nvmem-cells = <&macaddr_art_6>, <&precal_art_1000>;
|
|
nvmem-cell-names = "mac-address", "pre-calibration";
|
|
mac-address-increment = <(1)>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pcie1 {
|
|
status = "okay";
|
|
reset-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
|
|
pinctrl-0 = <&pcie1_pins>;
|
|
pinctrl-names = "default";
|
|
max-link-speed = <1>;
|
|
|
|
bridge@0,0 {
|
|
reg = <0x00000000 0 0 0 0>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
wifi@1,0 {
|
|
compatible = "pci168c,0040";
|
|
reg = <0x00010000 0 0 0 0>;
|
|
|
|
nvmem-cells = <&macaddr_art_6>, <&precal_art_5000>;
|
|
nvmem-cell-names = "mac-address", "pre-calibration";
|
|
mac-address-increment = <(2)>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&nand {
|
|
status = "okay";
|
|
|
|
nand@0 {
|
|
reg = <0>;
|
|
compatible = "qcom,nandcs";
|
|
|
|
nand-ecc-strength = <4>;
|
|
nand-bus-width = <8>;
|
|
nand-ecc-step-size = <512>;
|
|
|
|
nand-is-boot-medium;
|
|
qcom,boot-partitions = <0x0 0x1180000>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
qcadata@0 {
|
|
label = "qcadata";
|
|
reg = <0x0000000 0x0c80000>;
|
|
read-only;
|
|
};
|
|
|
|
APPSBL@c80000 {
|
|
label = "APPSBL";
|
|
reg = <0x0c80000 0x0500000>;
|
|
read-only;
|
|
};
|
|
|
|
APPSBLENV@1180000 {
|
|
label = "APPSBLENV";
|
|
reg = <0x1180000 0x0080000>;
|
|
read-only;
|
|
};
|
|
|
|
art@1200000 {
|
|
label = "art";
|
|
reg = <0x1200000 0x0140000>;
|
|
read-only;
|
|
compatible = "nvmem-cells";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
macaddr_art_0: macaddr@0 {
|
|
reg = <0x0 0x6>;
|
|
};
|
|
|
|
macaddr_art_6: macaddr@6 {
|
|
reg = <0x6 0x6>;
|
|
};
|
|
|
|
precal_art_1000: precal@1000 {
|
|
reg = <0x1000 0x2f20>;
|
|
};
|
|
|
|
precal_art_5000: precal@5000 {
|
|
reg = <0x5000 0x2f20>;
|
|
};
|
|
};
|
|
|
|
artbak: art@1340000 {
|
|
label = "artbak";
|
|
reg = <0x1340000 0x0140000>;
|
|
read-only;
|
|
};
|
|
|
|
kernel@1480000 {
|
|
label = "kernel";
|
|
reg = <0x1480000 0x0400000>;
|
|
};
|
|
|
|
ubi@1880000 {
|
|
label = "ubi";
|
|
reg = <0x1880000 0x6080000>;
|
|
};
|
|
|
|
reserve@7900000 {
|
|
label = "reserve";
|
|
reg = <0x7900000 0x0700000>;
|
|
read-only;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&mdio0 {
|
|
status = "okay";
|
|
|
|
pinctrl-0 = <&mdio0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
switch@10 {
|
|
compatible = "qca,qca8337";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x10>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "cpu";
|
|
ethernet = <&gmac1>;
|
|
phy-mode = "rgmii";
|
|
tx-internal-delay-ps = <1000>;
|
|
rx-internal-delay-ps = <1000>;
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan1";
|
|
phy-mode = "internal";
|
|
phy-handle = <&phy_port1>;
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan2";
|
|
phy-mode = "internal";
|
|
phy-handle = <&phy_port2>;
|
|
};
|
|
|
|
port@3 {
|
|
reg = <3>;
|
|
label = "lan3";
|
|
phy-mode = "internal";
|
|
phy-handle = <&phy_port3>;
|
|
};
|
|
|
|
port@4 {
|
|
reg = <4>;
|
|
label = "lan4";
|
|
phy-mode = "internal";
|
|
phy-handle = <&phy_port4>;
|
|
};
|
|
|
|
port@5 {
|
|
reg = <5>;
|
|
label = "wan";
|
|
phy-mode = "internal";
|
|
phy-handle = <&phy_port5>;
|
|
};
|
|
|
|
port@6 {
|
|
reg = <6>;
|
|
label = "cpu";
|
|
ethernet = <&gmac2>;
|
|
phy-mode = "sgmii";
|
|
qca,sgmii-enable-pll;
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
phy_port1: phy@0 {
|
|
reg = <0>;
|
|
};
|
|
|
|
phy_port2: phy@1 {
|
|
reg = <1>;
|
|
};
|
|
|
|
phy_port3: phy@2 {
|
|
reg = <2>;
|
|
};
|
|
|
|
phy_port4: phy@3 {
|
|
reg = <3>;
|
|
};
|
|
|
|
phy_port5: phy@4 {
|
|
reg = <4>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&gmac1 {
|
|
status = "okay";
|
|
phy-mode = "rgmii";
|
|
qcom,id = <1>;
|
|
|
|
pinctrl-0 = <&rgmii2_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
nvmem-cells = <&macaddr_art_6>;
|
|
nvmem-cell-names = "mac-address";
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
&gmac2 {
|
|
status = "okay";
|
|
phy-mode = "sgmii";
|
|
qcom,id = <2>;
|
|
|
|
nvmem-cells = <&macaddr_art_0>;
|
|
nvmem-cell-names = "mac-address";
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|