Dear Daniel, thanks for spotting this. Indeed, the correct PCI device-id of the MT7615N is 7615.
Interestingly, the kernel module did not care. I'll submit a new v5 patch for the Edimax RG21S and also a new patch for the ASUS RT-AC85p where I made the same mistake. Birger On 22.08.19 16:47, Daniel Golle wrote: > Hi, > > I believe the PCI-IDs of the devices in your device tree are wrong, > see below: > > On Sun, Jul 21, 2019 at 07:43:51AM +0200, Birger Koblitz wrote: >> ramips: add Edimax RG21S >> >> SoC: MediaTek MT7621AT dual-core @ 880MHz >> RAM: 256M (Nanya NT5CC128M) >> FLASH: 16MB (Macronix MX25L12835F) >> WiFi: - 2.4GHz MediaTek MT7615N bgn >> - 5GHz MediaTek MT7615N nac >> Switch: SoC integrated Gigabit Switch (4 x LAN, 1 x WAN) >> USB: No >> BTN: Reset, WPS >> LED: 4 red LEDs, indistinguishable when casing closed >> UART: UART is present as Pads marked J1 on the PCB. >> 3.3V - RX - GND - TX / 57600-8N1 >> 3.3V is the square pad >> >> Installation >> ------------ >> Update the factory image via the OEM web-interface >> (by default:http://192.168.1.1) >> The sysupgrade image can be installed via TFTP from >> the U-Boot bootloader. Connect ethernet port 2. >> >> Signed-off-by: Birger Koblitz <[email protected]> >> >> --- >> >> v3: Update to DEVICE_VENDOR / DEVICE_MODEL in mt7621.mk >> renamed .dts according to new conventions >> Removed memory node from .dts >> Correct image size >> Whitespace fixes >> v4: Added wifi0/1 labels to wifi nodes >> Model name corrected in dts >> Comments removed from .dts >> >> diff --git a/target/linux/ramips/base-files/etc/board.d/02_network >> b/target/linux/ramips/base-files/etc/board.d/02_network >> index a2b7d1cf33..252d2f4e50 100755 >> --- a/target/linux/ramips/base-files/etc/board.d/02_network >> +++ b/target/linux/ramips/base-files/etc/board.d/02_network >> @@ -329,6 +329,10 @@ ramips_setup_interfaces() >> ucidef_add_switch "switch1" \ >> "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0" >> ;; >> + edimax,rg21s) >> + ucidef_add_switch "switch0" \ >> + "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0" >> + ;; >> gehua,ghl-r-001) >> ucidef_add_switch "switch0" \ >> "0:lan" "1:lan" "2:lan" "4:wan" "6@eth0" >> @@ -587,6 +591,10 @@ ramips_setup_macs() >> lan_mac=$(cat /sys/class/net/eth0/address) >> wan_mac=$(macaddr_add "$lan_mac" 2) >> ;; >> + edimax,rg21s) >> + lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) >> + wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr) >> + ;; >> elecom,wrc-1167ghbk2-s|\ >> elecom,wrc-1900gst|\ >> elecom,wrc-2533gst|\ >> diff --git a/target/linux/ramips/dts/mt7621_edimax_rg21s.dts >> b/target/linux/ramips/dts/mt7621_edimax_rg21s.dts >> new file mode 100644 >> index 0000000000..80b644b7a7 >> --- /dev/null >> +++ b/target/linux/ramips/dts/mt7621_edimax_rg21s.dts >> @@ -0,0 +1,157 @@ >> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT >> +/dts-v1/; >> + >> +#include "mt7621.dtsi" >> + >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> + >> +/ { >> + compatible = "edimax,rg21s", "mediatek,mt7621-soc"; >> + model = "Edimax RG21S"; >> + >> + aliases { >> + led-boot = &led_power; >> + led-failsafe = &led_power; >> + led-running = &led_power; >> + led-upgrade = &led_power; >> + }; >> + >> + chosen { >> + bootargs = "console=ttyS0,57600"; >> + }; >> + >> + palmbus: palmbus@1E000000 { >> + i2c@900 { >> + status = "okay"; >> + }; >> + }; >> + >> + keys { >> + compatible = "gpio-keys"; >> + >> + reset { >> + label = "reset"; >> + gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; >> + linux,code = <KEY_RESTART>; >> + }; >> + >> + wps { >> + label = "wps"; >> + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; >> + linux,code = <KEY_RESTART>; >> + }; >> + }; >> + >> + leds { >> + compatible = "gpio-leds"; >> + >> + led_power: led_1 { >> + label = "rg21s:red:led1"; >> + gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; >> + }; >> + >> + led_2 { >> + label = "rg21s:red:led2"; >> + gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; >> + }; >> + >> + led_3 { >> + label = "rg21s:red:led3"; >> + gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; >> + }; >> + >> + led_4 { >> + label = "rg21s:red:led4"; >> + gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; >> + }; >> + }; >> +}; >> + >> +&sdhci { >> + status = "okay"; >> +}; >> + >> +&spi0 { >> + status = "okay"; >> + >> + m25p80@0 { >> + compatible = "jedec,spi-nor"; >> + reg = <0>; >> + spi-max-frequency = <10000000>; >> + >> + partitions { >> + compatible = "fixed-partitions"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + >> + partition@0 { >> + label = "u-boot"; >> + reg = <0x0 0x30000>; >> + read-only; >> + }; >> + >> + partition@30000 { >> + label = "u-boot-env"; >> + reg = <0x30000 0x10000>; >> + read-only; >> + }; >> + >> + factory: partition@40000 { >> + label = "factory"; >> + reg = <0x40000 0x10000>; >> + read-only; >> + }; >> + >> + partition@50000 { >> + compatible = "denx,uimage"; >> + label = "firmware"; >> + reg = <0x50000 0xfb0000>; >> + }; >> + }; >> + }; >> +}; >> + >> +&pcie { >> + status = "okay"; >> +}; >> + >> +&pcie0 { >> + wifi0: wifi@0,0 { >> + compatible = "pci14c3,7603"; > ^^^^^^^^^^^^^^ > This looks wrong, MT7615N should have a different PCI ID (pci14c3,7615) > >> + reg = <0x0000 0 0 0 0>; >> + mediatek,mtd-eeprom = <&factory 0x0000>; >> + ieee80211-freq-limit = <2400000 2500000>; >> + mtd-mac-address = <&factory 0x4>; >> + }; >> +}; >> + >> +&pcie1 { >> + wifi1: wifi@0,0 { >> + compatible = "pci14c3,7662"; > ^^^^^^^^^^^^^^ > And here "pci14c3,7615" as well I reckon. > >> + reg = <0x0000 0 0 0 0>; >> + mediatek,mtd-eeprom = <&factory 0x8000>; >> + ieee80211-freq-limit = <5000000 6000000>; >> + mtd-mac-address = <&factory 0x8004>; >> + }; >> +}; >> + >> +ðernet { >> + mediatek,portmap = "wllll"; >> + port@5 { >> + status = "disabled"; >> + }; >> +}; >> + >> +&pinctrl { >> + state_default: pinctrl0 { >> + gpio { >> + ralink,group = "wdt", "rgmii2", "jtag", "mdio"; >> + ralink,function = "gpio"; >> + }; >> + }; >> +}; >> + >> +&xhci { >> + status = "disabled"; >> +}; >> diff --git a/target/linux/ramips/image/mt7621.mk >> b/target/linux/ramips/image/mt7621.mk >> index 73ded64e74..5a1e8204f3 100644 >> --- a/target/linux/ramips/image/mt7621.mk >> +++ b/target/linux/ramips/image/mt7621.mk >> @@ -30,6 +30,25 @@ define Build/elecom-wrc-factory >> mv [email protected] $@ >> endef >> >> +define Build/elx-header >> + $(eval hw_id=$(word 1,$(1))) >> + $(eval xor_pattern=$(word 2,$(1))) >> + ( \ >> + echo -ne "\x00\x00\x00\x00\x00\x00\x00\x03" | \ >> + dd bs=42 count=1 conv=sync; \ >> + hw_id="$(hw_id)"; \ >> + echo -ne "\x$${hw_id:0:2}\x$${hw_id:2:2}\x$${hw_id:4:2}\x$${hw_id:6:2}" >> | \ >> + dd bs=20 count=1 conv=sync; \ >> + echo -ne "$$(printf '%08x' $$(stat -c%s $@) | fold -s2 | xargs -I {} >> echo \\x{} | tr -d '\n')" | \ >> + dd bs=8 count=1 conv=sync; \ >> + echo -ne "$$($(STAGING_DIR_HOST)/bin/mkhash md5 $@ | fold -s2 | xargs >> -I {} echo \\x{} | tr -d '\n')" | \ >> + dd bs=58 count=1 conv=sync; \ >> + ) > $(KDIR)/tmp/$(DEVICE_NAME).header >> + $(call Build/xor-image,-p $(xor_pattern) -x) >> + cat $(KDIR)/tmp/$(DEVICE_NAME).header $@ > [email protected] >> + mv [email protected] $@ >> +endef >> + >> define Build/iodata-factory >> $(eval fw_size=$(word 1,$(1))) >> $(eval fw_type=$(word 2,$(1))) >> @@ -173,6 +192,20 @@ define Device/d-team_pbr-m1 >> endef >> TARGET_DEVICES += d-team_pbr-m1 >> >> +define Device/edimax_rg21s >> + MTK_SOC := mt7621 >> + IMAGE_SIZE := 16064k >> + DEVICE_VENDOR := EDIMAX >> + DEVICE_MODEL := RG21S >> + IMAGES += factory.bin >> + IMAGE/factory.bin := \ >> + $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \ >> + elx-header 02020038 8844A2D168B45A2D >> + DEVICE_PACKAGES := \ >> + kmod-ata-ahci kmod-mt76x2 kmod-mt7603 kmod-mt7615e wpad-basic >> +endef >> +TARGET_DEVICES += edimax_rg21s >> + >> define Device/elecom_wrc-1167ghbk2-s >> MTK_SOC := mt7621 >> IMAGE_SIZE := 15488k >> >> _______________________________________________ >> openwrt-devel mailing list >> [email protected] >> https://lists.openwrt.org/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
