--- /dev/null
+/dts-v1/;
+
+/include/ "bcm6358.dtsi"
+
+/ {
+ model = "Huawei EchoLife HG553";
+ compatible = "huawei,hg553", "brcm,bcm6358";
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
$(7) $(8) $(9) $(10)
endef
-define Image/Build/CFEHW553
- # Generate the tagged image
- $(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux.lzma.cfe -f $(KDIR)/root.$(1) \
- --output $(BIN_DIR)/openwrt-$(5)-$(1)-cfe.bin \
- --boardid $(2) --chipid $(3) --entry $(LOADADDR) \
- --load-addr $(LOADADDR) --tag-version 7 \
- --block-size 0x20000 --image-offset $(4)
-endef
-
define Image/Build/CFEAGPF
# Generate the tagged image
$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux.lzma.cfe -f $(KDIR)/root.$(1) \
# Telsey CPVA642-type (e.g. CPA-ZNTE60T)
$(call Image/Build/CFE,$(1),CPVA642,6358,CPA-ZNTE60T,,--signature "Telsey Tlc",--signature2 "99.99.999",--second-image-flag "0")
- #HW553
- $(call Image/Build/CFEHW553,$(1),HW553,6358,0x20000,HW553)
-
# T-Com Speedport W 303V Typ B
$(call Image/Build/SPW303V,$(1),96358-502V,6358,SPW303V)
$(eval $(call CfeImageDTB,DVAG3810BN,dva-g3810bn_tl,96358VW,6358,DVAG3810BN))
# Huawei HG520v
$(eval $(call CfeImageDTB,HG520v,hg520v,HW6358GW_B,6358,HG520v,EchoLife_HG520v))
+# Huawei HG553
+$(eval $(call CfeImageDTB,HG553,hg553,HW553,6358,HG553,EchoLife_HG553,--image-offset 0x20000 --block-size 0x20000 --tag-version 7))
# Huawei HG556a
$(eval $(call CfeImageDTB,HG556a_AB,hg556a-a,HW556,6358,HG556a_A,EchoLife_HG556a,--image-offset 0x20000 --block-size 0x10000 --tag-version 8))
$(eval $(call CfeImageDTB,HG556a_AB,hg556a-b,HW556,6358,HG556a_B,EchoLife_HG556a,--image-offset 0x20000 --block-size 0x20000 --tag-version 8))
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1471,6 +1471,83 @@ static struct board_info __initdata boar
+@@ -1471,6 +1471,84 @@ static struct board_info __initdata boar
.spis = nb4_spi_devices,
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
+
+static struct board_info __initdata board_HW553 = {
+ .name = "HW553",
++ .of_board_id = "huawei,hg553",
+ .expected_cpu_id = 0x6358,
+
+ .has_uart0 = 1,
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -1516,6 +1593,7 @@ static const struct board_info __initcon
+@@ -1516,6 +1594,7 @@ static const struct board_info __initcon
&board_dsl_274xb_rev_c,
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
-@@ -1564,6 +1603,7 @@ static const struct board_info __initcon
+@@ -1565,6 +1604,7 @@ static const struct board_info __initcon
&board_96338gw,
&board_96338w,
&board_96338w2_e7t,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1587,6 +1587,72 @@ static struct board_info __initdata boar
+@@ -1588,6 +1588,72 @@ static struct board_info __initdata boar
.pci_dev = 1,
},
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -1634,6 +1700,7 @@ static const struct board_info __initcon
+@@ -1635,6 +1701,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_HW553,
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
-@@ -1688,6 +1747,7 @@ static const struct board_info __initcon
+@@ -1689,6 +1748,7 @@ static const struct board_info __initcon
&board_96348_D4PW,
&board_spw500v,
&board_96348sv,
#endif
#ifdef CONFIG_BCM63XX_CPU_6358
-@@ -1726,6 +1786,22 @@ void __init board_bcm963xx_init(void)
+@@ -1727,6 +1787,22 @@ void __init board_bcm963xx_init(void)
val &= MPI_CSBASE_BASE_MASK;
}
boot_addr = (u8 *)KSEG1ADDR(val);
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.of_board_id = "brcm,bcm96348gw",
-@@ -1748,6 +1806,7 @@ static const struct board_info __initcon
+@@ -1749,6 +1807,7 @@ static const struct board_info __initcon
&board_spw500v,
&board_96348sv,
&board_V2500V_BB,
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.of_board_id = "brcm,bcm96348gw",
-@@ -1807,6 +1860,7 @@ static const struct board_info __initcon
+@@ -1808,6 +1861,7 @@ static const struct board_info __initcon
&board_96348sv,
&board_V2500V_BB,
&board_V2110,
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.of_board_id = "brcm,bcm96348gw",
-@@ -1864,6 +1935,7 @@ static const struct board_info __initcon
+@@ -1865,6 +1936,7 @@ static const struct board_info __initcon
&board_V2500V_BB,
&board_V2110,
&board_ct536_ct5621,
static struct board_info __initdata board_ct536_ct5621 = {
.name = "CT536_CT5621",
-@@ -1937,6 +1971,7 @@ static const struct board_info __initcon
+@@ -1938,6 +1972,7 @@ static const struct board_info __initcon
&board_V2110,
&board_ct536_ct5621,
&board_96348A_122,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1935,6 +1935,85 @@ static struct board_info __initdata boar
+@@ -1936,6 +1936,85 @@ static struct board_info __initdata boar
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
* all boards
*/
static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -1986,6 +2065,10 @@ static const struct board_info __initcon
+@@ -1987,6 +2066,10 @@ static const struct board_info __initcon
&board_HW553,
&board_spw303v,
#endif
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2011,6 +2011,72 @@ static struct board_info __initdata boar
+@@ -2012,6 +2012,72 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
-@@ -2068,6 +2134,7 @@ static const struct board_info __initcon
+@@ -2069,6 +2135,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -2120,6 +2190,7 @@ static const struct board_info __initcon
+@@ -2121,6 +2191,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -2191,6 +2296,7 @@ static const struct board_info __initcon
+@@ -2192,6 +2297,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,
static struct board_info __initdata board_96348_D4PW = {
.name = "D-4P-W",
.expected_cpu_id = 0x6348,
-@@ -2326,6 +2379,7 @@ static const struct board_info __initcon
+@@ -2327,6 +2380,7 @@ static const struct board_info __initcon
&board_ct536_ct5621,
&board_96348A_122,
&board_CPVA502plus,
+
static struct board_info __initdata board_HW553 = {
.name = "HW553",
- .expected_cpu_id = 0x6358,
-@@ -2391,6 +2516,7 @@ static const struct board_info __initcon
+ .of_board_id = "huawei,hg553",
+@@ -2392,6 +2517,7 @@ static const struct board_info __initcon
&board_dsl_274xb_rev_c,
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2317,6 +2317,74 @@ static struct board_info __initdata boar
+@@ -2318,6 +2318,74 @@ static struct board_info __initdata boar
},
}
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -2519,6 +2587,7 @@ static const struct board_info __initcon
+@@ -2520,6 +2588,7 @@ static const struct board_info __initcon
&board_ct6373_1,
&board_HW553,
&board_spw303v,
#define CT6373_PID_OFFSET 0xff80
#define CT6373_74X164_GPIO_BASE 64
-@@ -2387,6 +2390,105 @@ static struct board_info __initdata boar
+@@ -2388,6 +2391,105 @@ static struct board_info __initdata boar
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
* known 6368 boards
*/
-@@ -2590,6 +2692,10 @@ static const struct board_info __initcon
+@@ -2591,6 +2693,10 @@ static const struct board_info __initcon
&board_DVAG3810BN,
#endif
static struct board_info __initdata board_rta1025w_16 = {
.name = "RTA1025W_16",
.of_board_id = "dynalink,rta1025w",
-@@ -2663,6 +2714,7 @@ static const struct board_info __initcon
+@@ -2664,6 +2715,7 @@ static const struct board_info __initcon
&board_96348gw_10,
&board_96348gw_11,
&board_FAST2404,
static struct board_info __initdata board_dsl_274xb_f1 = {
.name = "AW4339U",
.expected_cpu_id = 0x6328,
-@@ -2695,6 +2823,7 @@ static const struct board_info __initcon
+@@ -2696,6 +2824,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,
static struct board_info __initdata board_963281TAN = {
.name = "963281TAN",
.expected_cpu_id = 0x6328,
-@@ -2822,6 +2932,7 @@ static const struct board_info __initcon
+@@ -2823,6 +2933,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
static struct sprom_fixup __initdata ar5387un_fixups[] = {
{ .offset = 2, .value = 0x05bb },
{ .offset = 65, .value = 0x1204 },
-@@ -2932,6 +3018,7 @@ static const struct board_info __initcon
+@@ -2933,6 +3019,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
#endif /* CONFIG_BCM63XX_CPU_6345 */
/*
-@@ -3032,6 +3081,7 @@ static const struct board_info __initcon
+@@ -3033,6 +3082,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
-@@ -2679,6 +2680,405 @@ static struct board_info __initdata boar
+@@ -2680,6 +2681,405 @@ static struct board_info __initdata boar
},
};
/* T-Home Speedport W 303V Typ B */
static struct board_info __initdata board_spw303v = {
.name = "96358-502V",
-@@ -3117,6 +3517,9 @@ static const struct board_info __initcon
+@@ -3118,6 +3518,9 @@ static const struct board_info __initcon
&board_nb4_fxc_r1,
&board_ct6373_1,
&board_HW553,
#endif /* CONFIG_BCM63XX_CPU_6345 */
/*
-@@ -3482,6 +3536,7 @@ static const struct board_info __initcon
+@@ -3483,6 +3537,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
&board_rta770bw,
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -3526,6 +3642,7 @@ static const struct board_info __initcon
+@@ -3527,6 +3643,7 @@ static const struct board_info __initcon
&board_963281TAN,
&board_A4001N1,
&board_dsl_274xb_f1,
---
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -3481,6 +3481,96 @@ static struct board_info __initdata boar
+@@ -3482,6 +3482,96 @@ static struct board_info __initdata boar
.devs = nb6_devices,
.num_devs = ARRAY_SIZE(nb6_devices),
};
#endif /* CONFIG_BCM63XX_CPU_6362 */
/*
-@@ -3698,6 +3788,7 @@ static const struct board_info __initcon
+@@ -3699,6 +3789,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6362
&board_nb6,
* known 6328 boards
*/
#ifdef CONFIG_BCM63XX_CPU_6328
-@@ -3956,6 +4043,9 @@ static const struct board_info __initcon
+@@ -3957,6 +4044,9 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_3368
&board_cvg834g,
#endif
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -4045,6 +4133,7 @@ static const struct board_info __initcon
+@@ -4046,6 +4134,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4125,6 +4125,75 @@ static struct board_info __initdata boar
+@@ -4126,6 +4126,75 @@ static struct board_info __initdata boar
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
* all boards
*/
static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -4205,6 +4274,9 @@ static const struct board_info __initcon
+@@ -4206,6 +4275,9 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
#endif
/* BT Voyager 2110 */
static struct board_info __initdata board_V2110 = {
-@@ -4245,6 +4291,7 @@ static const struct board_info __initcon
+@@ -4246,6 +4292,7 @@ static const struct board_info __initcon
&board_96348A_122,
&board_CPVA502plus,
&board_96348W3,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4237,6 +4237,108 @@ static struct board_info __initdata boar
+@@ -4238,6 +4238,108 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_63268 */
/*
-@@ -4323,6 +4425,7 @@ static const struct board_info __initcon
+@@ -4324,6 +4426,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963269bhr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4174,6 +4174,131 @@ static struct board_info __initdata boar
+@@ -4175,6 +4175,131 @@ static struct board_info __initdata boar
* known 63268/63269 boards
*/
#ifdef CONFIG_BCM63XX_CPU_63268
static struct board_info __initdata board_963269bhr = {
.name = "963269BHR",
.expected_cpu_id = 0x63268,
-@@ -4424,6 +4549,7 @@ static const struct board_info __initcon
+@@ -4425,6 +4550,7 @@ static const struct board_info __initcon
&board_96368mvngr,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
-@@ -4168,6 +4169,118 @@ static struct board_info __initdata boar
+@@ -4169,6 +4170,118 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
-@@ -4547,6 +4660,7 @@ static const struct board_info __initcon
+@@ -4548,6 +4661,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4170,6 +4170,117 @@ static struct board_info __initdata boar
+@@ -4171,6 +4171,117 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
static struct b53_platform_data WAP5813n_b53_pdata = {
.alias = "eth0",
};
-@@ -4660,6 +4771,7 @@ static const struct board_info __initcon
+@@ -4661,6 +4772,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4281,6 +4281,117 @@ static struct board_info __initdata boar
+@@ -4282,6 +4282,117 @@ static struct board_info __initdata boar
},
};
static struct b53_platform_data WAP5813n_b53_pdata = {
.alias = "eth0",
};
-@@ -4772,6 +4883,7 @@ static const struct board_info __initcon
+@@ -4773,6 +4884,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_VR3025u,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4179,6 +4179,96 @@ static struct sprom_fixup __initdata vr3
+@@ -4180,6 +4180,96 @@ static struct sprom_fixup __initdata vr3
{ .offset = 115, .value = 0xfad9 },
};
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.of_board_id = "comtrend,vr-3025u",
-@@ -4882,6 +4972,7 @@ static const struct board_info __initcon
+@@ -4883,6 +4973,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
+
static struct board_info __initdata board_HW553 = {
.name = "HW553",
- .expected_cpu_id = 0x6358,
-@@ -4956,6 +5007,7 @@ static const struct board_info __initcon
+ .of_board_id = "huawei,hg553",
+@@ -4957,6 +5008,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_ct6373_1,
static struct board_info __initdata board_A4001N1 = {
.name = "963281T_TEF",
.of_board_id = "adb,a4001n1",
-@@ -4958,6 +5048,7 @@ static const struct board_info __initcon
+@@ -4959,6 +5049,7 @@ static const struct board_info __initcon
&board_AR5381u,
&board_AR5387un,
&board_963281TAN,
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -5042,6 +5177,7 @@ static const struct board_info __initcon
+@@ -5043,6 +5178,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,
endef
$(eval $(call Profile,HG520v))
+define Profile/HG553
+ NAME:=Huawei EchoLife HG553
+ PACKAGES:=kmod-b43 wpad-mini \
+ kmod-usb2 kmod-usb-ohci kmod-ledtrig-usbdev
+endef
+define Profile/HG553/Description
+ Package set optimized for Huawei HG553.
+endef
+$(eval $(call Profile,HG553))
+
define Profile/HG556a_AB
NAME:=Huawei EchoLife HG556a (version A/B - Atheros)
PACKAGES:=kmod-ath9k wpad-mini \