[OpenWrt-Devel] [PATCH v2 1/3] ramips: Add DTS files for HiWiFi HC5x61 models

kangxn at 163.com
Sat Oct 10 10:04:15 EDT 2015


At 2015-09-29 10:10:41, "Yousong Zhou" <yszhou4tech at 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.



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...




>
>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 at 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 at 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 at 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 at 10000000 {
>> +               sysc at 0 {
>> +                       ralink,gpiomux = "i2c", "jtag";
>> +                       ralink,uartmux = "gpio";
>> +                       ralink,wdtmux = <1>;
>> +               };
>> +
>> +               gpio0: gpio at 600 {
>> +                       status = "okay";
>> +               };
>> +
>> +               gpio2: gpio at 660 {
>> +                       status = "okay";
>> +               };
>> +
>> +               gpio3: gpio at 688 {
>> +                       status = "okay";
>> +               };
>> +
>> +               spi at b00 {
>> +                       status = "okay";
>> +
>> +                       m25p80 at 0 {
>> +                               #address-cells = <1>;
>> +                               #size-cells = <1>;
>> +                               compatible = "w25q128";
>> +                               reg = <0 0>;
>> +                               linux,modalias = "m25p80", "w25q128";
>> +                               spi-max-frequency = <10000000>;
>> +
>> +                               partition at 0 {
>> +                                       label = "u-boot";
>> +                                       reg = <0x0 0x30000>;
>> +                               };
>> +
>> +                               partition at 30000 {
>> +                                       label = "u-boot-env";
>> +                                       reg = <0x30000 0x10000>;
>> +                                       read-only;
>> +                               };
>> +
>> +                               factory: partition at 40000 {
>> +                                       label = "factory";
>> +                                       reg = <0x40000 0x10000>;
>> +                               };
>> +
>> +                               partition at 50000 {
>> +                                       label = "firmware";
>> +                                       reg = <0x50000 0xf80000>;
>> +                               };
>> +
>> +                               partition at fd0000 {
>> +                                       label = "hwf_config";
>> +                                       reg = <0xfd0000 0x10000>;
>> +                               };
>> +
>> +                               bdinfo: partition at fe0000 {
>> +                                       label = "bdinfo";
>> +                                       reg = <0xfe0000 0x10000>;
>> +                               };
>> +
>> +                               partition at ff0000 {
>> +                                       label = "backup";
>> +                                       reg = <0xff0000 0x10000>;
>> +                               };
>> +                       };
>> +               };
>> +       };
>> +
>> +       ehci at 101c0000 {
>> +               status = "okay";
>> +       };
>> +
>> +       ohci at 101c1000 {
>> +               status = "okay";
>> +       };
>> +
>> +       ethernet at 10100000 {
>> +               pinctrl-names = "default";
>> +               pinctrl-0 = <&ephy_pins>;
>> +               mtd-mac-address = <&factory 0x4>;
>> +               ralink,port-map = "wllll";
>> +       };
>> +
>> +       sdhci at 10130000 {
>> +               status = "okay";
>> +       };
>> +
>> +       wmac at 10180000 {
>> +               ralink,mtd-eeprom = <&factory 0>;
>> +       };
>> +
>> +       pcie at 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 at 10000000 {
>> +               sysc at 0 {
>> +                       ralink,gpiomux = "i2c", "jtag";
>> +                       ralink,uartmux = "gpio";
>> +                       ralink,wdtmux = <1>;
>> +               };
>> +
>> +               gpio0: gpio at 600 {
>> +                       status = "okay";
>> +               };
>> +
>> +               gpio2: gpio at 660 {
>> +                       status = "okay";
>> +               };
>> +
>> +               gpio3: gpio at 688 {
>> +                       status = "okay";
>> +               };
>> +
>> +               spi at b00 {
>> +                       status = "okay";
>> +
>> +                       m25p80 at 0 {
>> +                               #address-cells = <1>;
>> +                               #size-cells = <1>;
>> +                               compatible = "w25q128";
>> +                               reg = <0 0>;
>> +                               linux,modalias = "m25p80", "w25q128";
>> +                               spi-max-frequency = <10000000>;
>> +
>> +                               partition at 0 {
>> +                                       label = "u-boot";
>> +                                       reg = <0x0 0x30000>;
>> +                               };
>> +
>> +                               partition at 30000 {
>> +                                       label = "u-boot-env";
>> +                                       reg = <0x30000 0x10000>;
>> +                                       read-only;
>> +                               };
>> +
>> +                               factory: partition at 40000 {
>> +                                       label = "factory";
>> +                                       reg = <0x40000 0x10000>;
>> +                               };
>> +
>> +                               partition at 50000 {
>> +                                       label = "firmware";
>> +                                       reg = <0x50000 0xf80000>;
>> +                               };
>> +
>> +                               partition at fd0000 {
>> +                                       label = "hwf_config";
>> +                                       reg = <0xfd0000 0x10000>;
>> +                               };
>> +
>> +                               bdinfo: partition at fe0000 {
>> +                                       label = "bdinfo";
>> +                                       reg = <0xfe0000 0x10000>;
>> +                               };
>> +
>> +                               partition at ff0000 {
>> +                                       label = "backup";
>> +                                       reg = <0xff0000 0x10000>;
>> +                               };
>> +                       };
>> +               };
>> +       };
>> +
>> +       ehci at 101c0000 {
>> +               status = "okay";
>> +       };
>> +
>> +       ohci at 101c1000 {
>> +               status = "okay";
>> +       };
>> +
>> +       ethernet at 10100000 {
>> +               pinctrl-names = "default";
>> +               pinctrl-0 = <&ephy_pins>;
>> +               mtd-mac-address = <&factory 0x4>;
>> +               ralink,port-map = "wllll";
>> +       };
>> +
>> +       sdhci at 10130000 {
>> +               status = "okay";
>> +       };
>> +
>> +       wmac at 10180000 {
>> +               ralink,mtd-eeprom = <&factory 0>;
>> +       };
>> +
>> +       pcie at 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 at 10000000 {
>> +               sysc at 0 {
>> +                       ralink,gpiomux = "i2c", "jtag";
>> +                       ralink,uartmux = "gpio";
>> +                       ralink,wdtmux = <1>;
>> +               };
>> +
>> +               gpio0: gpio at 600 {
>> +                       status = "okay";
>> +               };
>> +
>> +               gpio2: gpio at 660 {
>> +                       status = "okay";
>> +               };
>> +
>> +               gpio3: gpio at 688 {
>> +                       status = "okay";
>> +               };
>> +
>> +               spi at b00 {
>> +                       status = "okay";
>> +
>> +                       m25p80 at 0 {
>> +                               #address-cells = <1>;
>> +                               #size-cells = <1>;
>> +                               compatible = "w25q128";
>> +                               reg = <0 0>;
>> +                               linux,modalias = "m25p80", "w25q128";
>> +                               spi-max-frequency = <10000000>;
>> +
>> +                               partition at 0 {
>> +                                       label = "u-boot";
>> +                                       reg = <0x0 0x30000>;
>> +                               };
>> +
>> +                               partition at 30000 {
>> +                                       label = "u-boot-env";
>> +                                       reg = <0x30000 0x10000>;
>> +                                       read-only;
>> +                               };
>> +
>> +                               factory: partition at 40000 {
>> +                                       label = "factory";
>> +                                       reg = <0x40000 0x10000>;
>> +                               };
>> +
>> +                               partition at 50000 {
>> +                                       label = "firmware";
>> +                                       reg = <0x50000 0xf80000>;
>> +                               };
>> +
>> +                               partition at fd0000 {
>> +                                       label = "hwf_config";
>> +                                       reg = <0xfd0000 0x10000>;
>> +                               };
>> +
>> +                               bdinfo: partition at fe0000 {
>> +                                       label = "bdinfo";
>> +                                       reg = <0xfe0000 0x10000>;
>> +                               };
>> +
>> +                               partition at ff0000 {
>> +                                       label = "backup";
>> +                                       reg = <0xff0000 0x10000>;
>> +                               };
>> +                       };
>> +               };
>> +       };
>> +
>> +       ehci at 101c0000 {
>> +               status = "okay";
>> +       };
>> +
>> +       ohci at 101c1000 {
>> +               status = "okay";
>> +       };
>> +
>> +       ethernet at 10100000 {
>> +               status = "okay";
>> +               mtd-mac-address = <&factory 0x4>;
>> +               pinctrl-names = "default";
>> +               pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
>> +               ralink,port-map = "wllll";
>> +
>> +               port at 4 {
>> +                       status = "okay";
>> +                       phy-handle = <&phy4>;
>> +                       phy-mode = "rgmii";
>> +               };
>> +
>> +               port at 5 {
>> +                       status = "okay";
>> +                       phy-handle = <&phy5>;
>> +                       phy-mode = "rgmii";
>> +               };
>> +
>> +               mdio-bus {
>> +                       status = "okay";
>> +
>> +                       phy4: ethernet-phy at 4 {
>> +                               reg = <4>;
>> +                               phy-mode = "rgmii";
>> +                       };
>> +
>> +                       phy5: ethernet-phy at 5 {
>> +                               reg = <5>;
>> +                               phy-mode = "rgmii";
>> +                       };
>> +               };
>> +       };
>> +
>> +       gsw at 10110000 {
>> +               ralink,port4 = "gmac";
>> +       };
>> +
>> +       sdhci at 10130000 {
>> +               status = "okay";
>> +       };
>> +
>> +       wmac at 10180000 {
>> +               ralink,mtd-eeprom = <&factory 0>;
>> +       };
>> +
>> +       pcie at 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 at lists.openwrt.org
>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20151010/8ae4bbee/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list