bmips: bcm6358: add support for Huawei HG556a ver A
Specifications: - SoC: Broadcom BCM6358 dual 300MHz MIPS - Flash: 16MB NOR Spansion S29GL128P10 - RAM: 64MB DDR - Ethernet: 4x 100M - Wifi: Atheros AR9223 - 3x USB 2.0 port - 4x Button - 13x LED - RJ11 2x FXS VoIP (unsupported) - RJ11 xDSL (unsupported) Install instructions: - Assign static IP 192.168.1.100 to PC. - Unplug the power source. - Press the RESTART button at the router, don't release it yet! - Plug the power source and wait at least 15 seconds. - Release the RESTART button. - Browse to http://192.168.1.1 with your PC. - Upload the openwrt-bmips-bcm6358-huawei_hg556a-a-squashfs-cfe.bin file. - Wait some minutes until the firmware upgrade completes. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
parent
975f4de1c8
commit
5ab72cfc40
7 changed files with 338 additions and 247 deletions
|
@ -6,6 +6,7 @@
|
|||
board_config_update
|
||||
|
||||
case "$(board_name)" in
|
||||
huawei,hg556a-a |\
|
||||
huawei,hg556a-b)
|
||||
ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "lan1"
|
||||
ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "lan2"
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
board_config_update
|
||||
|
||||
case "$(board_name)" in
|
||||
huawei,hg556a-a |\
|
||||
huawei,hg556a-b)
|
||||
ucidef_set_bridge_device switch
|
||||
ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
|
||||
|
|
|
@ -23,6 +23,9 @@ caldata_extract_swap() {
|
|||
case "$FIRMWARE" in
|
||||
"ath9k-eeprom-pci-0000:00:01.0.bin")
|
||||
case "$(board_name)" in
|
||||
huawei,hg556a-a)
|
||||
caldata_extract_swap "cal_data" 0x9e000 0xeb8
|
||||
;;
|
||||
huawei,hg556a-b)
|
||||
caldata_extract_swap "cal_data" 0x1e000 0xeb8
|
||||
;;
|
||||
|
|
73
target/linux/bmips/dts/bcm6358-huawei-hg556a-a.dts
Normal file
73
target/linux/bmips/dts/bcm6358-huawei-hg556a-a.dts
Normal file
|
@ -0,0 +1,73 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "bcm6358-huawei-hg556a.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Huawei EchoLife HG556a (version A)";
|
||||
compatible = "huawei,hg556a-a", "brcm,bcm6358";
|
||||
|
||||
ath9k-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-2 {
|
||||
function = LED_FUNCTION_WLAN;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&ath9k 2 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpio_keys {
|
||||
help {
|
||||
label = "help";
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_HELP>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio_leds {
|
||||
led-0 {
|
||||
label = "red:message";
|
||||
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-1 {
|
||||
label = "red:hspa";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-6 {
|
||||
label = "all";
|
||||
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
led-12 {
|
||||
label = "green:lan1";
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-15 {
|
||||
label = "green:lan2";
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&pci {
|
||||
status = "okay";
|
||||
|
||||
ath9k: wifi@1,0 {
|
||||
compatible = "pci168c,ff1d";
|
||||
reg = <0x0800 0 0 0 0>;
|
||||
|
||||
qca,no-eeprom;
|
||||
|
||||
nvmem-cells = <&macaddr_cfe_6a0 1>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
|
@ -1,122 +1,11 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "bcm6358.dtsi"
|
||||
#include "bcm6358-huawei-hg556a.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Huawei EchoLife HG556a (version B)";
|
||||
compatible = "huawei,hg556a-b", "brcm,bcm6358";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_power_red;
|
||||
led-failsafe = &led_power_red;
|
||||
led-running = &led_power_red;
|
||||
led-upgrade = &led_power_red;
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
|
||||
help {
|
||||
label = "help";
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_HELP>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
wlan {
|
||||
label = "wlan";
|
||||
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WLAN>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
restart {
|
||||
label = "restart";
|
||||
gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_CONFIG>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-0 {
|
||||
label = "red:message";
|
||||
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-1 {
|
||||
label = "red:hspa";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-2 {
|
||||
label = "red:dsl";
|
||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_power_red: led-3 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-6 {
|
||||
label = "all";
|
||||
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
led-12 {
|
||||
label = "green:lan1";
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-13 {
|
||||
label = "red:lan1";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-15 {
|
||||
label = "green:lan2";
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-22 {
|
||||
label = "red:lan2";
|
||||
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-23 {
|
||||
label = "green:lan3";
|
||||
gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-26 {
|
||||
label = "red:lan3";
|
||||
gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-27 {
|
||||
label = "green:lan4";
|
||||
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-28 {
|
||||
label = "red:lan4";
|
||||
gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
ath9k-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
|
@ -129,83 +18,41 @@
|
|||
};
|
||||
};
|
||||
|
||||
&ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ðernet1 {
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_cfe_6a0 0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "mii";
|
||||
|
||||
fixed-link {
|
||||
speed = <100>;
|
||||
full-duplex;
|
||||
&gpio_keys {
|
||||
help {
|
||||
label = "help";
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_HELP>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
|
||||
&iudma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio1 {
|
||||
switch@1e {
|
||||
compatible = "brcm,bcm5325";
|
||||
reg = <30>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
label = "cpu";
|
||||
|
||||
phy-mode = "internal";
|
||||
ethernet = <ðernet1>;
|
||||
|
||||
fixed-link {
|
||||
speed = <100>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
&gpio_leds {
|
||||
led-0 {
|
||||
label = "red:message";
|
||||
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&ohci {
|
||||
status = "okay";
|
||||
led-1 {
|
||||
label = "red:hspa";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-6 {
|
||||
label = "all";
|
||||
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
led-12 {
|
||||
label = "green:lan1";
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-15 {
|
||||
label = "green:lan2";
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&pci {
|
||||
|
@ -224,66 +71,3 @@
|
|||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&pflash {
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "cfe";
|
||||
reg = <0x000000 0x020000>;
|
||||
read-only;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_cfe_6a0: macaddr@6a0 {
|
||||
compatible = "mac-base";
|
||||
reg = <0x6a0 0x6>;
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@20000 {
|
||||
label = "firmware";
|
||||
reg = <0x020000 0xec0000>;
|
||||
compatible = "brcm,bcm963xx-imagetag";
|
||||
};
|
||||
|
||||
cal_data: partition@ee0000 {
|
||||
label = "cal_data";
|
||||
reg = <0xee0000 0x100000>;
|
||||
read-only;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cal_data_1e000: cal@1e000 {
|
||||
reg = <0x1e000 0xeb8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@fe0000 {
|
||||
label = "nvram";
|
||||
reg = <0xfe0000 0x020000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbh {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
215
target/linux/bmips/dts/bcm6358-huawei-hg556a.dtsi
Normal file
215
target/linux/bmips/dts/bcm6358-huawei-hg556a.dtsi
Normal file
|
@ -0,0 +1,215 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "bcm6358.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
led-boot = &led_power_red;
|
||||
led-failsafe = &led_power_red;
|
||||
led-running = &led_power_red;
|
||||
led-upgrade = &led_power_red;
|
||||
};
|
||||
|
||||
gpio_keys: keys {
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
|
||||
wlan {
|
||||
label = "wlan";
|
||||
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WLAN>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
restart {
|
||||
label = "restart";
|
||||
gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_CONFIG>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio_leds: leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-2 {
|
||||
label = "red:dsl";
|
||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_power_red: led-3 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-13 {
|
||||
label = "red:lan1";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-22 {
|
||||
label = "red:lan2";
|
||||
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-23 {
|
||||
label = "green:lan3";
|
||||
gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-26 {
|
||||
label = "red:lan3";
|
||||
gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-27 {
|
||||
label = "green:lan4";
|
||||
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-28 {
|
||||
label = "red:lan4";
|
||||
gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ðernet1 {
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_cfe_6a0 0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "mii";
|
||||
|
||||
fixed-link {
|
||||
speed = <100>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
&iudma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio1 {
|
||||
switch@1e {
|
||||
compatible = "brcm,bcm5325";
|
||||
reg = <30>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
label = "cpu";
|
||||
|
||||
phy-mode = "internal";
|
||||
ethernet = <ðernet1>;
|
||||
|
||||
fixed-link {
|
||||
speed = <100>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ohci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pflash {
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "cfe";
|
||||
reg = <0x000000 0x020000>;
|
||||
read-only;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_cfe_6a0: macaddr@6a0 {
|
||||
compatible = "mac-base";
|
||||
reg = <0x6a0 0x6>;
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@20000 {
|
||||
label = "firmware";
|
||||
reg = <0x020000 0xec0000>;
|
||||
compatible = "brcm,bcm963xx-imagetag";
|
||||
};
|
||||
|
||||
cal_data: partition@ee0000 {
|
||||
label = "cal_data";
|
||||
reg = <0xee0000 0x100000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@fe0000 {
|
||||
label = "nvram";
|
||||
reg = <0xfe0000 0x020000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbh {
|
||||
status = "okay";
|
||||
};
|
|
@ -1,5 +1,19 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
define Device/huawei_hg556a-a
|
||||
$(Device/bcm63xx-cfe-legacy)
|
||||
DEVICE_VENDOR := Huawei
|
||||
DEVICE_MODEL := EchoLife HG556a
|
||||
DEVICE_VARIANT := A
|
||||
CHIP_ID := 6358
|
||||
CFE_BOARD_ID := HW556
|
||||
CFE_EXTRAS += --rsa-signature "EchoLife_HG556a" --tag-version 8
|
||||
IMAGE_OFFSET := 0x20000
|
||||
DEVICE_PACKAGES += $(USB2_PACKAGES) $(ATH9K_PACKAGES) \
|
||||
kmod-leds-gpio
|
||||
endef
|
||||
TARGET_DEVICES += huawei_hg556a-a
|
||||
|
||||
define Device/huawei_hg556a-b
|
||||
$(Device/bcm63xx-cfe-legacy)
|
||||
DEVICE_VENDOR := Huawei
|
||||
|
|
Loading…
Reference in a new issue