WAN Port Unresponsive on GiGA WiFi KM06-704H Custom Firmware

Hello,

I have developed custom firmware for the GiGA WiFi KM06-704H by modifying the mt7621_raisecom_msg1500-x-00.dts file. The modifications I made included reversing the ports and changing the model. The firmware works well except for the WAN port, which does not respond at all.

Hardware Specifications:

  • CPU: MediaTek MT7621
  • Memory: 128MB RAM
  • Storage: 16MB Flash
  • Ports: 5 ports (1 WAN + 4 LAN)
  • WiFi Chipset: MediaTek MT7603EN (2.4GHz) and MediaTek MT7612EN (5GHz)

I need assistance in identifying the potential issue causing the WAN port to be unresponsive and any necessary changes in the DTS file to resolve this problem.

Thank you in advance for any help or guidance.

Best regards,

you want us to help you make changes to the changes you haven't posted ?

1 Like

I would suggest to make a WIP PR to github to solicit some attention.

1 Like

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "mt7621.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
compatible = "raisecom,msg1500-x-00", "mediatek,mt7621-soc";
model = "GiGA WiFi KM06-704H";

aliases {
	led-boot = &led_usb;
	led-failsafe = &led_usb;
	led-upgrade = &led_usb;
	label-mac-device = &gmac0;
};

leds {
	compatible = "gpio-leds";

	wlan2g {
		label = "blue:wlan2g";
		gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
		linux,default-trigger = "phy0radio";
	};

	wlan5g {
		label = "blue:wlan5g";
		gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
		linux,default-trigger = "phy1radio";
	};

	led_usb: usb {
		label = "blue:usb";
		gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
		trigger-sources = <&ehci_port2>;
		linux,default-trigger = "usbport";
	};
};

keys {
	compatible = "gpio-keys";

	reset {
		label = "reset";
		gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
		linux,code = <KEY_RESTART>;
	};

	wps {
		label = "wps";
		gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
		linux,code = <KEY_WPS_BUTTON>;
	};

	wifi {
		label = "wifi";
		gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
		linux,code = <KEY_RFKILL>;
	};
};

};

&nand {
status = "okay";

partitions {
	compatible = "fixed-partitions";
	#address-cells = <1>;
	#size-cells = <1>;

	partition@0 {
		label = "Bootloader";
		reg = <0x0 0x80000>;
		read-only;
	};

	partition@80000 {
		label = "Config";
		reg = <0x80000 0x80000>;
		read-only;

		compatible = "nvmem-cells";
		#address-cells = <1>;
		#size-cells = <1>;

		macaddr_config_8014: macaddr@8014 {
			reg = <0x8014 0x11>;
		};

		macaddr_config_8036: macaddr@8036 {
			reg = <0x8036 0x11>;
		};
	};

	factory: partition@100000 {
		label = "Factory";
		reg = <0x100000 0x40000>;
		read-only;

		compatible = "nvmem-cells";
		#address-cells = <1>;
		#size-cells = <1>;

		macaddr_factory_4: macaddr@4 {
			reg = <0x4 0x6>;
		};
	};

	partition@140000 {
		label = "kernel";
		reg = <0x140000 0x400000>;
	};

	partition@540000 {
		label = "ubi";
		reg = <0x540000 0x7a40000>;
	};
};

};

&pcie {
status = "okay";
};

&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0>;
/* 5 GHz (phy1) does not take the address from calibration data,
but setting it manually here works */
nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";
mac-address-increment = <2>;
};
};

&gmac0 {
nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";
};

&gmac1 {
status = "okay";
label = "wan";
phy-handle = <&ethphy0>;

nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";
mac-address-increment = <1>;

};

&mdio {
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};

&switch0 {
ports {
port@1 {
status = "okay";
label = "lan4";
};

	port@2 {
		status = "okay";
		label = "lan3";
	};

	port@3 {
		status = "okay";
		label = "lan2";
	};

	port@4 {
		status = "okay";
		label = "lan1";
	};
};

};

&state_default {
gpio {
groups = "i2c", "jtag", "uart3", "wdt";
function = "gpio";
};
};

This needs some speed spec, check other dts-es for viable values.

Please use the </> button when you post preformatted text.