Skip to content

Commit 8583a97

Browse files
author
Rafał Miłecki
committed
bcm47xx: add testing support for kernel 6.1
Tested on Luxul XWR-1750 (BCM4706). Working: switch (LAN, WAN), LEDs, sysupgrade. Signed-off-by: Rafał Miłecki <[email protected]>
1 parent d4a4082 commit 8583a97

23 files changed

+2229
-0
lines changed

target/linux/bcm47xx/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ FEATURES:=squashfs usb
1111
SUBTARGETS:=generic mips74k legacy
1212

1313
KERNEL_PATCHVER:=5.15
14+
KERNEL_TESTING_PATCHVER:=6.1
1415

1516
define Target/Description
1617
Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM.

target/linux/bcm47xx/config-6.1

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
CONFIG_ARCH_32BIT_OFF_T=y
2+
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
3+
CONFIG_ARCH_KEEP_MEMBLOCK=y
4+
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
5+
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
6+
CONFIG_ARCH_SUSPEND_POSSIBLE=y
7+
CONFIG_BCM47XX=y
8+
CONFIG_BCM47XX_BCMA=y
9+
CONFIG_BCM47XX_NVRAM=y
10+
CONFIG_BCM47XX_SPROM=y
11+
CONFIG_BCM47XX_SSB=y
12+
CONFIG_BCM47XX_WDT=y
13+
CONFIG_BCMA=y
14+
CONFIG_BCMA_BLOCKIO=y
15+
CONFIG_BCMA_DEBUG=y
16+
CONFIG_BCMA_DRIVER_GMAC_CMN=y
17+
CONFIG_BCMA_DRIVER_GPIO=y
18+
CONFIG_BCMA_DRIVER_MIPS=y
19+
CONFIG_BCMA_DRIVER_PCI=y
20+
CONFIG_BCMA_DRIVER_PCI_HOSTMODE=y
21+
CONFIG_BCMA_HOST_PCI=y
22+
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
23+
CONFIG_BCMA_HOST_SOC=y
24+
CONFIG_BCMA_NFLASH=y
25+
CONFIG_BCMA_PFLASH=y
26+
CONFIG_BCMA_SFLASH=y
27+
# CONFIG_BGMAC_BCMA is not set
28+
CONFIG_BLK_MQ_PCI=y
29+
CONFIG_CEVT_R4K=y
30+
CONFIG_CLONE_BACKWARDS=y
31+
CONFIG_CMDLINE="noinitrd console=ttyS0,115200"
32+
CONFIG_CMDLINE_BOOL=y
33+
# CONFIG_CMDLINE_OVERRIDE is not set
34+
# CONFIG_COMMON_CLK is not set
35+
CONFIG_COMPAT_32BIT_TIME=y
36+
# CONFIG_CPU_BMIPS is not set
37+
CONFIG_CPU_GENERIC_DUMP_TLB=y
38+
CONFIG_CPU_HAS_PREFETCH=y
39+
CONFIG_CPU_HAS_SYNC=y
40+
CONFIG_CPU_LITTLE_ENDIAN=y
41+
CONFIG_CPU_MIPS32=y
42+
CONFIG_CPU_MIPS32_R1=y
43+
# CONFIG_CPU_MIPS32_R2 is not set
44+
CONFIG_CPU_MIPSR1=y
45+
CONFIG_CPU_MIPSR2_IRQ_VI=y
46+
CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y
47+
CONFIG_CPU_R4K_CACHE_TLB=y
48+
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
49+
CONFIG_CPU_SUPPORTS_HIGHMEM=y
50+
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
51+
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2
52+
CONFIG_CRYPTO_RNG2=y
53+
CONFIG_CSRC_R4K=y
54+
CONFIG_DMA_NONCOHERENT=y
55+
# CONFIG_EARLY_PRINTK is not set
56+
CONFIG_FIXED_PHY=y
57+
CONFIG_FW_LOADER_PAGED_BUF=y
58+
CONFIG_GENERIC_ATOMIC64=y
59+
CONFIG_GENERIC_CLOCKEVENTS=y
60+
CONFIG_GENERIC_CMOS_UPDATE=y
61+
CONFIG_GENERIC_CPU_AUTOPROBE=y
62+
CONFIG_GENERIC_FIND_FIRST_BIT=y
63+
CONFIG_GENERIC_GETTIMEOFDAY=y
64+
CONFIG_GENERIC_IOMAP=y
65+
CONFIG_GENERIC_IRQ_CHIP=y
66+
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
67+
CONFIG_GENERIC_IRQ_SHOW=y
68+
CONFIG_GENERIC_LIB_ASHLDI3=y
69+
CONFIG_GENERIC_LIB_ASHRDI3=y
70+
CONFIG_GENERIC_LIB_CMPDI2=y
71+
CONFIG_GENERIC_LIB_LSHRDI3=y
72+
CONFIG_GENERIC_LIB_UCMPDI2=y
73+
CONFIG_GENERIC_PCI_IOMAP=y
74+
CONFIG_GENERIC_SCHED_CLOCK=y
75+
CONFIG_GENERIC_SMP_IDLE_THREAD=y
76+
CONFIG_GENERIC_TIME_VSYSCALL=y
77+
CONFIG_GPIOLIB_IRQCHIP=y
78+
CONFIG_GPIO_CDEV=y
79+
CONFIG_GPIO_WDT=y
80+
CONFIG_HANDLE_DOMAIN_IRQ=y
81+
CONFIG_HARDWARE_WATCHPOINTS=y
82+
CONFIG_HAS_DMA=y
83+
CONFIG_HAS_IOMEM=y
84+
CONFIG_HAS_IOPORT_MAP=y
85+
CONFIG_HW_RANDOM=y
86+
CONFIG_HZ_PERIODIC=y
87+
CONFIG_INITRAMFS_SOURCE=""
88+
CONFIG_IRQ_DOMAIN=y
89+
CONFIG_IRQ_FORCED_THREADING=y
90+
CONFIG_IRQ_MIPS_CPU=y
91+
CONFIG_IRQ_WORK=y
92+
CONFIG_LEDS_GPIO_REGISTER=y
93+
CONFIG_LOCK_DEBUGGING_SUPPORT=y
94+
CONFIG_MDIO_BUS=y
95+
CONFIG_MDIO_DEVICE=y
96+
CONFIG_MDIO_DEVRES=y
97+
CONFIG_MEMFD_CREATE=y
98+
CONFIG_MIGRATION=y
99+
CONFIG_MIPS=y
100+
CONFIG_MIPS_ASID_BITS=8
101+
CONFIG_MIPS_ASID_SHIFT=0
102+
CONFIG_MIPS_CLOCK_VSYSCALL=y
103+
# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set
104+
CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER=y
105+
CONFIG_MIPS_EBPF_JIT=y
106+
CONFIG_MIPS_L1_CACHE_SHIFT=5
107+
CONFIG_MIPS_LD_CAN_LINK_VDSO=y
108+
CONFIG_MODULES_USE_ELF_REL=y
109+
CONFIG_MTD_BCM47XXSFLASH=y
110+
CONFIG_MTD_BCM47XX_PARTS=y
111+
CONFIG_MTD_NAND_BCM47XXNFLASH=y
112+
CONFIG_MTD_NAND_BRCMNAND=y
113+
CONFIG_MTD_NAND_BRCMNAND_BCMA=y
114+
CONFIG_MTD_NAND_CORE=y
115+
CONFIG_MTD_NAND_ECC=y
116+
CONFIG_MTD_PARSER_TRX=y
117+
CONFIG_MTD_PHYSMAP=y
118+
CONFIG_MTD_RAW_NAND=y
119+
CONFIG_NEED_DMA_MAP_STATE=y
120+
CONFIG_NEED_PER_CPU_KM=y
121+
CONFIG_NET_SELFTESTS=y
122+
CONFIG_NO_EXCEPT_FILL=y
123+
CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
124+
# CONFIG_OF is not set
125+
CONFIG_PCI=y
126+
CONFIG_PCI_DISABLE_COMMON_QUIRKS=y
127+
CONFIG_PCI_DOMAINS=y
128+
CONFIG_PCI_DRIVERS_LEGACY=y
129+
CONFIG_PERF_USE_VMALLOC=y
130+
CONFIG_PGTABLE_LEVELS=2
131+
CONFIG_PHYLIB=y
132+
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
133+
CONFIG_SERIAL_8250_EXTENDED=y
134+
CONFIG_SERIAL_8250_SHARE_IRQ=y
135+
CONFIG_SERIAL_MCTRL_GPIO=y
136+
CONFIG_SRCU=y
137+
CONFIG_SSB=y
138+
CONFIG_SSB_B43_PCI_BRIDGE=y
139+
CONFIG_SSB_BLOCKIO=y
140+
CONFIG_SSB_DRIVER_EXTIF=y
141+
CONFIG_SSB_DRIVER_GIGE=y
142+
CONFIG_SSB_DRIVER_GPIO=y
143+
CONFIG_SSB_DRIVER_MIPS=y
144+
CONFIG_SSB_DRIVER_PCICORE=y
145+
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
146+
CONFIG_SSB_EMBEDDED=y
147+
CONFIG_SSB_HOST_SOC=y
148+
CONFIG_SSB_PCICORE_HOSTMODE=y
149+
CONFIG_SSB_PCIHOST=y
150+
CONFIG_SSB_PCIHOST_POSSIBLE=y
151+
CONFIG_SSB_SERIAL=y
152+
CONFIG_SSB_SFLASH=y
153+
CONFIG_SSB_SPROM=y
154+
CONFIG_SWCONFIG=y
155+
CONFIG_SWCONFIG_B53=y
156+
CONFIG_SWCONFIG_B53_PHY_DRIVER=y
157+
CONFIG_SWCONFIG_B53_PHY_FIXUP=y
158+
CONFIG_SWPHY=y
159+
CONFIG_SYSCTL_EXCEPTION_TRACE=y
160+
CONFIG_SYS_HAS_CPU_BMIPS=y
161+
CONFIG_SYS_HAS_CPU_BMIPS32_3300=y
162+
CONFIG_SYS_HAS_CPU_MIPS32_R1=y
163+
CONFIG_SYS_HAS_CPU_MIPS32_R2=y
164+
CONFIG_SYS_HAS_EARLY_PRINTK=y
165+
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
166+
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
167+
CONFIG_SYS_SUPPORTS_HIGHMEM=y
168+
CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
169+
CONFIG_SYS_SUPPORTS_MIPS16=y
170+
CONFIG_SYS_SUPPORTS_ZBOOT=y
171+
CONFIG_TARGET_ISA_REV=1
172+
CONFIG_TICK_CPU_ACCOUNTING=y
173+
CONFIG_TINY_SRCU=y
174+
CONFIG_USB_SUPPORT=y
175+
CONFIG_USE_GENERIC_EARLY_PRINTK_8250=y
176+
CONFIG_WATCHDOG_CORE=y
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
From fc605b914167de75432c3b5aae239fb191e84a31 Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <[email protected]>
3+
Date: Wed, 8 Feb 2023 08:03:01 +0100
4+
Subject: [PATCH] MIPS: BCM47XX: Add support for Linksys E2500 V3
5+
MIME-Version: 1.0
6+
Content-Type: text/plain; charset=UTF-8
7+
Content-Transfer-Encoding: 8bit
8+
9+
It's a BCM5358 based home WiFi router. 16 MiB flash, 64 MiB RAM, BCM5325
10+
switch, on-SoC 802.11n radio.
11+
12+
Signed-off-by: Rafał Miłecki <[email protected]>
13+
Reviewed-by: Florian Fainelli <[email protected]>
14+
Signed-off-by: Thomas Bogendoerfer <[email protected]>
15+
---
16+
arch/mips/bcm47xx/board.c | 1 +
17+
arch/mips/bcm47xx/buttons.c | 9 +++++++++
18+
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
19+
3 files changed, 11 insertions(+)
20+
21+
--- a/arch/mips/bcm47xx/board.c
22+
+++ b/arch/mips/bcm47xx/board.c
23+
@@ -130,6 +130,7 @@ struct bcm47xx_board_type_list2 bcm47xx_
24+
{{BCM47XX_BOARD_LINKSYS_E1000V21, "Linksys E1000 V2.1"}, "E1000", "2.1"},
25+
{{BCM47XX_BOARD_LINKSYS_E1200V2, "Linksys E1200 V2"}, "E1200", "2.0"},
26+
{{BCM47XX_BOARD_LINKSYS_E2000V1, "Linksys E2000 V1"}, "Linksys E2000", "1.0"},
27+
+ {{BCM47XX_BOARD_LINKSYS_E2500V3, "Linksys E2500 V3"}, "E2500", "1.0"},
28+
/* like WRT610N v2.0 */
29+
{{BCM47XX_BOARD_LINKSYS_E3000V1, "Linksys E3000 V1"}, "E300", "1.0"},
30+
{{BCM47XX_BOARD_LINKSYS_E3200V1, "Linksys E3200 V1"}, "E3200", "1.0"},
31+
--- a/arch/mips/bcm47xx/buttons.c
32+
+++ b/arch/mips/bcm47xx/buttons.c
33+
@@ -223,6 +223,12 @@ bcm47xx_buttons_linksys_e2000v1[] __init
34+
};
35+
36+
static const struct gpio_keys_button
37+
+bcm47xx_buttons_linksys_e2500v3[] __initconst = {
38+
+ BCM47XX_GPIO_KEY(9, KEY_WPS_BUTTON),
39+
+ BCM47XX_GPIO_KEY(10, KEY_RESTART),
40+
+};
41+
+
42+
+static const struct gpio_keys_button
43+
bcm47xx_buttons_linksys_e3000v1[] __initconst = {
44+
BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
45+
BCM47XX_GPIO_KEY(6, KEY_RESTART),
46+
@@ -617,6 +623,9 @@ int __init bcm47xx_buttons_register(void
47+
case BCM47XX_BOARD_LINKSYS_E2000V1:
48+
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2000v1);
49+
break;
50+
+ case BCM47XX_BOARD_LINKSYS_E2500V3:
51+
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2500v3);
52+
+ break;
53+
case BCM47XX_BOARD_LINKSYS_E3000V1:
54+
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e3000v1);
55+
break;
56+
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
57+
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
58+
@@ -61,6 +61,7 @@ enum bcm47xx_board {
59+
BCM47XX_BOARD_LINKSYS_E1000V21,
60+
BCM47XX_BOARD_LINKSYS_E1200V2,
61+
BCM47XX_BOARD_LINKSYS_E2000V1,
62+
+ BCM47XX_BOARD_LINKSYS_E2500V3,
63+
BCM47XX_BOARD_LINKSYS_E3000V1,
64+
BCM47XX_BOARD_LINKSYS_E3200V1,
65+
BCM47XX_BOARD_LINKSYS_E4200V1,
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <[email protected]>
2+
Date: Mon, 27 Feb 2023 07:44:38 +0100
3+
Subject: [PATCH] MIPS: BCM47XX: Add support for Huawei B593u-12
4+
MIME-Version: 1.0
5+
Content-Type: text/plain; charset=UTF-8
6+
Content-Transfer-Encoding: 8bit
7+
8+
It's a BCM5358 based home router. One of very few bcm47xx devices with
9+
cellular modems (here: LTE).
10+
11+
Signed-off-by: Rafał Miłecki <[email protected]>
12+
---
13+
arch/mips/bcm47xx/board.c | 1 +
14+
arch/mips/bcm47xx/leds.c | 8 ++++++++
15+
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
16+
3 files changed, 10 insertions(+)
17+
18+
--- a/arch/mips/bcm47xx/board.c
19+
+++ b/arch/mips/bcm47xx/board.c
20+
@@ -193,6 +193,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
21+
/* boardtype, boardnum, boardrev */
22+
static const
23+
struct bcm47xx_board_type_list3 bcm47xx_board_list_board[] __initconst = {
24+
+ {{BCM47XX_BOARD_HUAWEI_B593U_12, "Huawei B593u-12"}, "0x053d", "1234", "0x1301"},
25+
{{BCM47XX_BOARD_HUAWEI_E970, "Huawei E970"}, "0x048e", "0x5347", "0x11"},
26+
{{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
27+
{{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
28+
--- a/arch/mips/bcm47xx/leds.c
29+
+++ b/arch/mips/bcm47xx/leds.c
30+
@@ -223,6 +223,11 @@ bcm47xx_leds_dlink_dir330[] __initconst
31+
/* Huawei */
32+
33+
static const struct gpio_led
34+
+bcm47xx_leds_huawei_b593u_12[] __initconst = {
35+
+ BCM47XX_GPIO_LED(5, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
36+
+};
37+
+
38+
+static const struct gpio_led
39+
bcm47xx_leds_huawei_e970[] __initconst = {
40+
BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
41+
};
42+
@@ -672,6 +677,9 @@ void __init bcm47xx_leds_register(void)
43+
bcm47xx_set_pdata(bcm47xx_leds_dlink_dir330);
44+
break;
45+
46+
+ case BCM47XX_BOARD_HUAWEI_B593U_12:
47+
+ bcm47xx_set_pdata(bcm47xx_leds_huawei_b593u_12);
48+
+ break;
49+
case BCM47XX_BOARD_HUAWEI_E970:
50+
bcm47xx_set_pdata(bcm47xx_leds_huawei_e970);
51+
break;
52+
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
53+
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
54+
@@ -53,6 +53,7 @@ enum bcm47xx_board {
55+
BCM47XX_BOARD_DLINK_DIR130,
56+
BCM47XX_BOARD_DLINK_DIR330,
57+
58+
+ BCM47XX_BOARD_HUAWEI_B593U_12,
59+
BCM47XX_BOARD_HUAWEI_E970,
60+
61+
BCM47XX_BOARD_LINKSYS_E900V1,

0 commit comments

Comments
 (0)