As of upstream Linux commit 0fe1e96fef0a ("powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias"), the PCIe domain address is no longer numbered by the lowest 16 bits of the PCI register address after a fallthrough. Instead of the fallthrough, the enumeration process accepts the alias ID (as determined by `of_alias_scan()`). This causes e.g.: 9000:00:00.0 PCI bridge: Freescale Semiconductor Inc P1020E (rev 11) 9000:01:00.0 Network controller: Qualcomm Atheros AR958x 802.11abgn ... to become 0000:00:00.0 PCI bridge: Freescale Semiconductor Inc P1020E (rev 11) 0000:01:00.0 Network controller: Qualcomm Atheros AR958x 802.11abgn ... ... which then causes the sysfs path of the netdev to change, invalidating the `wifi_device.path`s enumerated in `/etc/config/wireless`. One other solution might be to migrate the uci configuration, as was done for mvebu in commit 0bd5aa89fcf2 ("mvebu: Migrate uci config to new PCIe path"). However, there are concerns that the sysfs path will change once again once some upstream patches[^2][^3] are merged and backported (and `CONFIG_PPC_PCI_BUS_NUM_DOMAIN_DEPENDENT` is enabled). Instead, remove the aliases and allow the fallthrough to continue for now. We will provide a migration in a later release. This was first reported as a Github issue[^1]. [^1]: https://github.com/openwrt/openwrt/issues/10530 [^2]: https://lore.kernel.org/linuxppc-dev/20220706104308.5390-1-pali@kernel.org/t/#u [^3]: https://lore.kernel.org/linuxppc-dev/20220706101043.4867-1-pali@kernel.org/ Fixes: #10530 Tested-by: Martin Kennedy <hurricos@gmail.com> [Tested on the Aerohive HiveAP 330 and Extreme Networks WS-AP3825i] Signed-off-by: Martin Kennedy <hurricos@gmail.com> (cherry picked from commit 7f4b4c29f3489697dca7495216460d0ed5023e02)
269 lines
5.0 KiB
Plaintext
269 lines
5.0 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-or-later or MIT
|
|
|
|
/include/ "fsl/p1020si-pre.dtsi"
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
model = "Extreme Networks WS-AP3825i";
|
|
compatible = "extreme-networks,ws-ap3825i";
|
|
|
|
aliases {
|
|
ethernet0 = &enet0;
|
|
ethernet1 = &enet2;
|
|
led-boot = &led_power_green;
|
|
led-failsafe = &led_power_red;
|
|
led-running = &led_power_green;
|
|
led-upgrade = &led_power_red;
|
|
};
|
|
|
|
chosen {
|
|
bootargs-override = "console=ttyS0,115200";
|
|
};
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
wifi1 {
|
|
gpios = <&spi_gpio 3 GPIO_ACTIVE_HIGH>;
|
|
label = "green:radio1";
|
|
linux,default-trigger = "phy0tpt";
|
|
};
|
|
|
|
wifi2 {
|
|
gpios = <&spi_gpio 2 GPIO_ACTIVE_HIGH>;
|
|
label = "green:radio2";
|
|
linux,default-trigger = "phy1tpt";
|
|
};
|
|
|
|
led_power_green: power_green {
|
|
gpios = <&spi_gpio 0 GPIO_ACTIVE_HIGH>;
|
|
label = "green:power";
|
|
};
|
|
|
|
led_power_red: power_red {
|
|
gpios = <&spi_gpio 1 GPIO_ACTIVE_HIGH>;
|
|
label = "red:power";
|
|
};
|
|
|
|
lan1_red {
|
|
gpios = <&spi_gpio 6 GPIO_ACTIVE_HIGH>;
|
|
label = "red:lan1";
|
|
};
|
|
|
|
lan1_green {
|
|
gpios = <&spi_gpio 4 GPIO_ACTIVE_HIGH>;
|
|
label = "green:lan1";
|
|
};
|
|
|
|
lan2_red {
|
|
gpios = <&spi_gpio 7 GPIO_ACTIVE_HIGH>;
|
|
label = "red:lan2";
|
|
};
|
|
|
|
lan2_green {
|
|
gpios = <&spi_gpio 5 GPIO_ACTIVE_HIGH>;
|
|
label = "green:lan2";
|
|
};
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys";
|
|
|
|
reset {
|
|
label = "Reset button";
|
|
gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RESTART>;
|
|
};
|
|
};
|
|
|
|
lbc: localbus@ffe05000 {
|
|
reg = <0 0xffe05000 0 0x1000>;
|
|
ranges = <0x0 0x0 0x0 0xec000000 0x4000000>;
|
|
|
|
nor@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "cfi-flash";
|
|
reg = <0x0 0x0 0x4000000>;
|
|
bank-width = <2>;
|
|
device-width = <1>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
compatible = "denx,fit";
|
|
reg = <0x0 0x3d60000>;
|
|
label = "firmware";
|
|
};
|
|
|
|
partition@3d60000 {
|
|
reg = <0x3d60000 0x20000>;
|
|
label = "calib";
|
|
read-only;
|
|
};
|
|
|
|
partition@3d80000{
|
|
reg = <0x3d80000 0x80000>;
|
|
label = "u-boot";
|
|
read-only;
|
|
};
|
|
|
|
partition@3e00000{
|
|
reg = <0x3e00000 0x100000>;
|
|
label = "nvram";
|
|
read-only;
|
|
};
|
|
|
|
partition@3f00000 {
|
|
reg = <0x3f00000 0x20000>;
|
|
label = "cfg2";
|
|
read-only;
|
|
};
|
|
|
|
partition@3f20000 {
|
|
reg = <0x3f20000 0x20000>;
|
|
label = "cfg1";
|
|
read-only;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
soc: soc@ffe00000 {
|
|
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
|
|
|
gpio0: gpio-controller@fc00 {
|
|
};
|
|
|
|
mdio@24000 {
|
|
phy0: ethernet-phy@0 {
|
|
interrupts = <3 1 0 0>;
|
|
reg = <0x5>;
|
|
reset-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
|
|
reset-assert-us = <10000>;
|
|
reset-deassert-us = <10000>;
|
|
};
|
|
|
|
phy2: ethernet-phy@2 {
|
|
interrupts = <1 1 0 0>;
|
|
reg = <0x6>;
|
|
reset-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
|
|
reset-assert-us = <10000>;
|
|
reset-deassert-us = <10000>;
|
|
};
|
|
};
|
|
|
|
mdio@25000 {
|
|
status = "disabled";
|
|
};
|
|
|
|
mdio@26000 {
|
|
status = "disabled";
|
|
};
|
|
|
|
enet0: ethernet@b0000 {
|
|
status = "okay";
|
|
phy-handle = <&phy0>;
|
|
phy-connection-type = "rgmii-id";
|
|
};
|
|
|
|
enet1: ethernet@b1000 {
|
|
status = "disabled";
|
|
};
|
|
|
|
enet2: ethernet@b2000 {
|
|
status = "okay";
|
|
phy-handle = <&phy2>;
|
|
phy-connection-type = "rgmii-id";
|
|
};
|
|
|
|
usb@22000 {
|
|
phy_type = "ulpi";
|
|
dr_mode = "host";
|
|
};
|
|
|
|
usb@23000 {
|
|
status = "disabled";
|
|
};
|
|
};
|
|
|
|
pci0: pcie@ffe09000 {
|
|
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
|
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
|
reg = <0 0xffe09000 0 0x1000>;
|
|
pcie@0 {
|
|
ranges = <0x2000000 0x0 0xa0000000
|
|
0x2000000 0x0 0xa0000000
|
|
0x0 0x20000000
|
|
|
|
0x1000000 0x0 0x0
|
|
0x1000000 0x0 0x0
|
|
0x0 0x100000>;
|
|
};
|
|
};
|
|
|
|
pci1: pcie@ffe0a000 {
|
|
reg = <0 0xffe0a000 0 0x1000>;
|
|
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
|
|
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
|
pcie@0 {
|
|
ranges = <0x2000000 0x0 0x80000000
|
|
0x2000000 0x0 0x80000000
|
|
0x0 0x20000000
|
|
|
|
0x1000000 0x0 0x0
|
|
0x1000000 0x0 0x0
|
|
0x0 0x100000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&soc {
|
|
led_spi {
|
|
/*
|
|
* This is currently non-functioning because the spi-gpio
|
|
* driver refuses to register when presented with this node.
|
|
*/
|
|
compatible = "spi-gpio";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
sck-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
|
|
mosi-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
|
|
num-chipselects = <0>;
|
|
|
|
spi_gpio: led_gpio@0 {
|
|
compatible = "fairchild,74hc595";
|
|
reg = <0>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
registers-number = <1>;
|
|
spi-max-frequency = <100000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
/include/ "fsl/p1020si-post.dtsi"
|
|
|
|
/*
|
|
* For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
|
|
* aliases to determine PCI domain numbers, drop aliases so as not to
|
|
* change the sysfs path of our wireless netdevs.
|
|
*/
|
|
|
|
/ {
|
|
aliases {
|
|
/delete-property/ pci0;
|
|
/delete-property/ pci1;
|
|
};
|
|
};
|