<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><pre><br>At 2015-09-29 10:10:41, "Yousong Zhou" <yszhou4tech@gmail.com> wrote:
>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.
<div><br></div><div>Today I implemented the "mtd-mac-address-ascii" function, ethernet address works fine, but WiFi mac address remains the hardcoded one. It seems the driver read mac  from factory partition, and unfortunately all HiWiFi devices has the same mac in factory data...</div><div><br></div><div><br></div><div>></div>>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 <kangxn@163.com> 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 (rssnsj@gmail.com). 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 <kangxn@163.com>
>>
>>
>> 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
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
</pre></div><br><br><span title="neteasefooter"><p> </p></span>