Hi,

Previously this year, there were 2 attempts to add support for HC5661
and HC5761 to OpenWrt trunk [1,2].  I only had a HC5661 and it was
quite a while ago but the issues then should still remain.

The first is about how MAC address is to be read.  The
"mtd-mac-address" DTS directives apparently won't work.  And if I
remember correctly simply reading and setting it for lan and wan also
has flaws that the WiFi interface still get the default hardcoded MAC
address by the driver.  The best way I can think of to workaround this
is to add a directive similar to what "mtd-mac-address" does for
binary-encoded MACs.
"target/linux/generic/patches-4.1/681-NET-add-of_get_mac_address_mtd.patch"
can work as a reference.

The second is about how the generated the firmwares is to be flashed
to the those devices.  Are there plans to create wiki pages to clarify
the details?  Again if I remember correctly, the U-Boot of HC5661 at
least utilised pubkey firmware verification (though ...).  How regular
users are supposed to workaround this?

 [1] HiWiFi HC5661 Support for Openwrt,
https://lists.openwrt.org/pipermail/openwrt-devel/2015-April/032640.html
 [2] ramips:Add support for HiWiFi HC5761,
https://lists.openwrt.org/pipermail/openwrt-devel/2015-April/032643.html

Regard,

                yousong

On 28 September 2015 at 22:42, Comman Kang <[email protected]> wrote:
> HiWiFi HC5661/5761/5861 models are manufactured by http://www.hiwifi.com. 
> These models have similar hardware specs(MT7620A + 128M DDR2 + 16M flash). 
> This patch adds support for them.
>
> The original author is Justin Liu ([email protected]). I ported the patch to 
> trunk and submitted it here with his approval.
>
> v2 fix
>   1: Renamed files to remove manufacturer’s name.
>   2: styling work
>
> Signed-off-by: Xiaoning Kang <[email protected]>
>
>
> diff --git a/target/linux/ramips/dts/HC5661.dts 
> b/target/linux/ramips/dts/HC5661.dts
> new file mode 100644
> index 0000000..b5b9d1a
> --- /dev/null
> +++ b/target/linux/ramips/dts/HC5661.dts
> @@ -0,0 +1,172 @@
> +/dts-v1/;
> +
> +/include/ "mt7620a.dtsi"
> +
> +/ {
> +       compatible = "HC5661", "ralink,mt7620a-soc";
> +       model = "HiWiFi HC5661";
> +
> +       chosen {
> +               bootargs = "console=ttyS0,115200";
> +       };
> +
> +       palmbus@10000000 {
> +               sysc@0 {
> +                       ralink,gpiomux = "i2c", "jtag";
> +                       ralink,uartmux = "gpio";
> +                       ralink,wdtmux = <1>;
> +               };
> +
> +               gpio0: gpio@600 {
> +                       status = "okay";
> +               };
> +
> +               gpio2: gpio@660 {
> +                       status = "okay";
> +               };
> +
> +               gpio3: gpio@688 {
> +                       status = "okay";
> +               };
> +
> +               spi@b00 {
> +                       status = "okay";
> +
> +                       m25p80@0 {
> +                               #address-cells = <1>;
> +                               #size-cells = <1>;
> +                               compatible = "w25q128";
> +                               reg = <0 0>;
> +                               linux,modalias = "m25p80", "w25q128";
> +                               spi-max-frequency = <10000000>;
> +
> +                               partition@0 {
> +                                       label = "u-boot";
> +                                       reg = <0x0 0x30000>;
> +                               };
> +
> +                               partition@30000 {
> +                                       label = "u-boot-env";
> +                                       reg = <0x30000 0x10000>;
> +                                       read-only;
> +                               };
> +
> +                               factory: partition@40000 {
> +                                       label = "factory";
> +                                       reg = <0x40000 0x10000>;
> +                               };
> +
> +                               partition@50000 {
> +                                       label = "firmware";
> +                                       reg = <0x50000 0xf80000>;
> +                               };
> +
> +                               partition@fd0000 {
> +                                       label = "hwf_config";
> +                                       reg = <0xfd0000 0x10000>;
> +                               };
> +
> +                               bdinfo: partition@fe0000 {
> +                                       label = "bdinfo";
> +                                       reg = <0xfe0000 0x10000>;
> +                               };
> +
> +                               partition@ff0000 {
> +                                       label = "backup";
> +                                       reg = <0xff0000 0x10000>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       ehci@101c0000 {
> +               status = "okay";
> +       };
> +
> +       ohci@101c1000 {
> +               status = "okay";
> +       };
> +
> +       ethernet@10100000 {
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&ephy_pins>;
> +               mtd-mac-address = <&factory 0x4>;
> +               ralink,port-map = "wllll";
> +       };
> +
> +       sdhci@10130000 {
> +               status = "okay";
> +       };
> +
> +       wmac@10180000 {
> +               ralink,mtd-eeprom = <&factory 0>;
> +       };
> +
> +       pcie@10140000 {
> +               status = "okay";
> +       };
> +
> +       pinctrl {
> +               state_default: pinctrl0 {
> +                       gpio {
> +                               ralink,group = "uartf", "wled", "nd_sd";
> +                               ralink,function = "gpio";
> +                       };
> +
> +                       pa {
> +                               ralink,group = "pa";
> +                               ralink,function = "pa";
> +                       };
> +               };
> +       };
> +
> +       gpio-leds {
> +               compatible = "gpio-leds";
> +
> +               system {
> +                       label = "hc5661:blue:system";
> +                       gpios = <&gpio0 9 1>;
> +               };
> +
> +               internet {
> +                       label = "hc5661:blue:internet";
> +                       gpios = <&gpio0 11 1>;
> +               };
> +
> +               wlan2g {
> +                       label = "hc5661:blue:wlan2g";
> +                       gpios = <&gpio3 0 1>;
> +               };
> +
> +               wlan5g {
> +                       label = "hc5661:blue:wlan5g";
> +                       gpios = <&gpio0 7 1>;
> +               };
> +       };
> +
> +       gpio-keys-polled {
> +               compatible = "gpio-keys-polled";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               poll-interval = <20>;
> +
> +               reset {
> +                       label = "reset";
> +                       gpios = <&gpio0 12 1>;
> +                       linux,code = <0x198>;
> +               };
> +       };
> +
> +       gpio_export {
> +               compatible = "gpio-export";
> +               #size-cells = <0>;
> +
> +               usbpower {
> +                       gpio-export,name = "usbpower";
> +                       gpio-export,output = <1>;
> +                       gpios = <&gpio0 13 0>;
> +               };
> +       };
> +
> +};
> +
> diff --git a/target/linux/ramips/dts/HC5761.dts 
> b/target/linux/ramips/dts/HC5761.dts
> new file mode 100644
> index 0000000..d271261
> --- /dev/null
> +++ b/target/linux/ramips/dts/HC5761.dts
> @@ -0,0 +1,172 @@
> +/dts-v1/;
> +
> +/include/ "mt7620a.dtsi"
> +
> +/ {
> +       compatible = "HC5761", "ralink,mt7620a-soc";
> +       model = "HiWiFi HC5761";
> +
> +       chosen {
> +               bootargs = "console=ttyS0,115200";
> +       };
> +
> +       palmbus@10000000 {
> +               sysc@0 {
> +                       ralink,gpiomux = "i2c", "jtag";
> +                       ralink,uartmux = "gpio";
> +                       ralink,wdtmux = <1>;
> +               };
> +
> +               gpio0: gpio@600 {
> +                       status = "okay";
> +               };
> +
> +               gpio2: gpio@660 {
> +                       status = "okay";
> +               };
> +
> +               gpio3: gpio@688 {
> +                       status = "okay";
> +               };
> +
> +               spi@b00 {
> +                       status = "okay";
> +
> +                       m25p80@0 {
> +                               #address-cells = <1>;
> +                               #size-cells = <1>;
> +                               compatible = "w25q128";
> +                               reg = <0 0>;
> +                               linux,modalias = "m25p80", "w25q128";
> +                               spi-max-frequency = <10000000>;
> +
> +                               partition@0 {
> +                                       label = "u-boot";
> +                                       reg = <0x0 0x30000>;
> +                               };
> +
> +                               partition@30000 {
> +                                       label = "u-boot-env";
> +                                       reg = <0x30000 0x10000>;
> +                                       read-only;
> +                               };
> +
> +                               factory: partition@40000 {
> +                                       label = "factory";
> +                                       reg = <0x40000 0x10000>;
> +                               };
> +
> +                               partition@50000 {
> +                                       label = "firmware";
> +                                       reg = <0x50000 0xf80000>;
> +                               };
> +
> +                               partition@fd0000 {
> +                                       label = "hwf_config";
> +                                       reg = <0xfd0000 0x10000>;
> +                               };
> +
> +                               bdinfo: partition@fe0000 {
> +                                       label = "bdinfo";
> +                                       reg = <0xfe0000 0x10000>;
> +                               };
> +
> +                               partition@ff0000 {
> +                                       label = "backup";
> +                                       reg = <0xff0000 0x10000>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       ehci@101c0000 {
> +               status = "okay";
> +       };
> +
> +       ohci@101c1000 {
> +               status = "okay";
> +       };
> +
> +       ethernet@10100000 {
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&ephy_pins>;
> +               mtd-mac-address = <&factory 0x4>;
> +               ralink,port-map = "wllll";
> +       };
> +
> +       sdhci@10130000 {
> +               status = "okay";
> +       };
> +
> +       wmac@10180000 {
> +               ralink,mtd-eeprom = <&factory 0>;
> +       };
> +
> +       pcie@10140000 {
> +               status = "okay";
> +       };
> +
> +       pinctrl {
> +               state_default: pinctrl0 {
> +                       gpio {
> +                               ralink,group = "uartf", "wled", "nd_sd";
> +                               ralink,function = "gpio";
> +                       };
> +
> +                       pa {
> +                               ralink,group = "pa";
> +                               ralink,function = "pa";
> +                       };
> +               };
> +       };
> +
> +       gpio-leds {
> +               compatible = "gpio-leds";
> +
> +               system {
> +                       label = "hc5761:blue:system";
> +                       gpios = <&gpio0 9 1>;
> +               };
> +
> +               internet {
> +                       label = "hc5761:blue:internet";
> +                       gpios = <&gpio0 11 1>;
> +               };
> +
> +               wlan2g {
> +                       label = "hc5761:blue:wlan2g";
> +                       gpios = <&gpio3 0 1>;
> +               };
> +
> +               wlan5g {
> +                       label = "hc5761:blue:wlan5g";
> +                       gpios = <&gpio0 7 1>;
> +               };
> +       };
> +
> +       gpio-keys-polled {
> +               compatible = "gpio-keys-polled";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               poll-interval = <20>;
> +
> +               reset {
> +                       label = "reset";
> +                       gpios = <&gpio0 12 1>;
> +                       linux,code = <0x198>;
> +               };
> +       };
> +
> +       gpio_export {
> +               compatible = "gpio-export";
> +               #size-cells = <0>;
> +
> +               usbpower {
> +                       gpio-export,name = "usbpower";
> +                       gpio-export,output = <1>;
> +                       gpios = <&gpio0 13 0>;
> +               };
> +       };
> +
> +};
> +
> diff --git a/target/linux/ramips/dts/HC5861.dts 
> b/target/linux/ramips/dts/HC5861.dts
> new file mode 100644
> index 0000000..c0d9b93
> --- /dev/null
> +++ b/target/linux/ramips/dts/HC5861.dts
> @@ -0,0 +1,214 @@
> +/dts-v1/;
> +
> +/include/ "mt7620a.dtsi"
> +
> +/ {
> +       compatible = "HC5861", "ralink,mt7620a-soc";
> +       model = "HiWiFi HC5861";
> +
> +       chosen {
> +               bootargs = "console=ttyS0,115200";
> +       };
> +
> +       palmbus@10000000 {
> +               sysc@0 {
> +                       ralink,gpiomux = "i2c", "jtag";
> +                       ralink,uartmux = "gpio";
> +                       ralink,wdtmux = <1>;
> +               };
> +
> +               gpio0: gpio@600 {
> +                       status = "okay";
> +               };
> +
> +               gpio2: gpio@660 {
> +                       status = "okay";
> +               };
> +
> +               gpio3: gpio@688 {
> +                       status = "okay";
> +               };
> +
> +               spi@b00 {
> +                       status = "okay";
> +
> +                       m25p80@0 {
> +                               #address-cells = <1>;
> +                               #size-cells = <1>;
> +                               compatible = "w25q128";
> +                               reg = <0 0>;
> +                               linux,modalias = "m25p80", "w25q128";
> +                               spi-max-frequency = <10000000>;
> +
> +                               partition@0 {
> +                                       label = "u-boot";
> +                                       reg = <0x0 0x30000>;
> +                               };
> +
> +                               partition@30000 {
> +                                       label = "u-boot-env";
> +                                       reg = <0x30000 0x10000>;
> +                                       read-only;
> +                               };
> +
> +                               factory: partition@40000 {
> +                                       label = "factory";
> +                                       reg = <0x40000 0x10000>;
> +                               };
> +
> +                               partition@50000 {
> +                                       label = "firmware";
> +                                       reg = <0x50000 0xf80000>;
> +                               };
> +
> +                               partition@fd0000 {
> +                                       label = "hwf_config";
> +                                       reg = <0xfd0000 0x10000>;
> +                               };
> +
> +                               bdinfo: partition@fe0000 {
> +                                       label = "bdinfo";
> +                                       reg = <0xfe0000 0x10000>;
> +                               };
> +
> +                               partition@ff0000 {
> +                                       label = "backup";
> +                                       reg = <0xff0000 0x10000>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       ehci@101c0000 {
> +               status = "okay";
> +       };
> +
> +       ohci@101c1000 {
> +               status = "okay";
> +       };
> +
> +       ethernet@10100000 {
> +               status = "okay";
> +               mtd-mac-address = <&factory 0x4>;
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
> +               ralink,port-map = "wllll";
> +
> +               port@4 {
> +                       status = "okay";
> +                       phy-handle = <&phy4>;
> +                       phy-mode = "rgmii";
> +               };
> +
> +               port@5 {
> +                       status = "okay";
> +                       phy-handle = <&phy5>;
> +                       phy-mode = "rgmii";
> +               };
> +
> +               mdio-bus {
> +                       status = "okay";
> +
> +                       phy4: ethernet-phy@4 {
> +                               reg = <4>;
> +                               phy-mode = "rgmii";
> +                       };
> +
> +                       phy5: ethernet-phy@5 {
> +                               reg = <5>;
> +                               phy-mode = "rgmii";
> +                       };
> +               };
> +       };
> +
> +       gsw@10110000 {
> +               ralink,port4 = "gmac";
> +       };
> +
> +       sdhci@10130000 {
> +               status = "okay";
> +       };
> +
> +       wmac@10180000 {
> +               ralink,mtd-eeprom = <&factory 0>;
> +       };
> +
> +       pcie@10140000 {
> +               status = "okay";
> +       };
> +
> +       pinctrl {
> +               state_default: pinctrl0 {
> +                       gpio {
> +                               ralink,group = "uartf", "wled", "nd_sd";
> +                               ralink,function = "gpio";
> +                       };
> +
> +                       pa {
> +                               ralink,group = "pa";
> +                               ralink,function = "pa";
> +                       };
> +               };
> +       };
> +
> +       gpio-leds {
> +               compatible = "gpio-leds";
> +
> +               system {
> +                       label = "hc5861:blue:system";
> +                       gpios = <&gpio0 9 1>;
> +               };
> +
> +               wlan2g {
> +                       label = "hc5861:blue:wlan2g";
> +                       gpios = <&gpio0 11 1>;
> +               };
> +
> +               internet {
> +                       label = "hc5861:blue:internet";
> +                       gpios = <&gpio3 0 1>;
> +               };
> +
> +               wlan5g {
> +                       label = "hc5861:blue:wlan5g";
> +                       gpios = <&gpio0 7 1>;
> +               };
> +
> +               turbo {
> +                       label = "hc5861:blue:turbo";
> +                       gpios = <&gpio0 10 1>;
> +               };
> +       };
> +
> +       gpio-keys-polled {
> +               compatible = "gpio-keys-polled";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               poll-interval = <20>;
> +
> +               reset {
> +                       label = "reset";
> +                       gpios = <&gpio0 12 1>;
> +                       linux,code = <0x198>;
> +               };
> +       };
> +
> +       gpio_export {
> +               compatible = "gpio-export";
> +               #size-cells = <0>;
> +
> +               usbpower {
> +                       gpio-export,name = "usbpower";
> +                       gpio-export,output = <0>;
> +                       gpios = <&gpio0 13 0>;
> +               };
> +
> +               sdpower {
> +                       gpio-export,name = "sdpower";
> +                       gpio-export,output = <0>;
> +                       gpios = <&gpio0 8 0>;
> +               };
> +       };
> +
> +};
> +
> _______________________________________________
> openwrt-devel mailing list
> [email protected]
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to