bcm63xx: add support for Technicolor TG582n
authorDaniele Castro <danielecastro@hotmail.it>
Thu, 10 Sep 2020 19:14:11 +0000 (21:14 +0200)
committerÁlvaro Fernández Rojas <noltari@gmail.com>
Sun, 6 Dec 2020 18:17:41 +0000 (19:17 +0100)
Technicolor TG582n has a similar PCB as the OpenWrt's ADB P.DG A4001N1
with LEDs connected to different GPIO PINs in active low configuration.

Hardware:
* Board ID: DANT-1
* SoC: Broadcom BCM6328 (rev b0) @ 320MHz, CPU BMIPS4350
* RAM DDR2: 64 Mbyte - Winbond W9751G6KB-25
* Serial flash: 16 Mbyte - MXIC MX25L6445EMI
* Ethernet: 4x Ethernet 10/100 baseT
* Wifi 2.4GHz: Broadcom Corporation BCM43227 Wireless Network Adapter (rev 30)
* LEDs: 2x Power, 1x Ethernet, 1x Broadband, 2x Wi-Fi, 2x WPS, 4x ethernet
* Buttons: 1x Reset, 1x WPS, 1x WiFi
* UART: 1x TTL 115200n8, VCC GND TX RX, on J3 connector (short R62 and R63)

Installation via CFE:
* Stock CFE has to be overwritten with a generic 6328 one that can upload
  .bin images with no signature check (cfe6328_configured.bin)
* Connect a serial port to the board
* Stop the CFE boot process after power on by pressing enter
* Set static IP 192.168.2.10 and subnet mask 255.255.255.0
* Navigate to http://192.168.2.50/
* Upload the OpenWrt image file

PCB:   |GPIO:   |TG582n:

LED2R  |488(08) |red    Power
LED2G  |484(04) |green  Power

LED10R |486(06) |
LED13G |485(05) |green  Ethernet

LED11R |494(14) |
LED14G |491(11) |green  Broadband

LED5R  |487(07) |red    Internet
LED5G  |481(01) |green  Internet

LED12R |498(18) |
LED12G |499(19) |

LED6R  |482(02) |red    Wi-Fi
LED6G  |483(03) |green  Wi-Fi

LED7R  |490(10) |red    WPS
LED7G  |489(09) |green  WPS

LED4   |508(28) |ethernet port 4
LED3   |507(27) |ethernet port 3

LED9   |506(26) |ethernet port 2
LED8   |505(25) |ethernet port 1

SW3    |503(23) |key Reset

SW5    |504(24) |key WPS

SW4    |495(15) |key Wi-Fi

SW6    |493(13) |

SW1    |492(12) |

Signed-off-by: Daniele Castro <danielecastro@hotmail.it>
[Fix base-files, refresh patch]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
14 files changed:
target/linux/bcm63xx/base-files/etc/board.d/01_leds
target/linux/bcm63xx/base-files/etc/board.d/02_network
target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc
target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n.dts [new file with mode: 0644]
target/linux/bcm63xx/image/bcm63xx.mk
target/linux/bcm63xx/patches-5.4/512-board_bcm6328.patch
target/linux/bcm63xx/patches-5.4/513-board-bcm6338.patch
target/linux/bcm63xx/patches-5.4/514-board_bcm6345.patch
target/linux/bcm63xx/patches-5.4/515-board-bcm6348.patch
target/linux/bcm63xx/patches-5.4/516-board-bcm6358.patch
target/linux/bcm63xx/patches-5.4/517-board_bcm6362.patch
target/linux/bcm63xx/patches-5.4/518-board_bcm6368.patch
target/linux/bcm63xx/patches-5.4/519-board_bcm63268.patch
target/linux/bcm63xx/patches-5.4/531-board_bcm6348-bt-voyager-2500v-bb.patch

index 5a2a933b0cbf0cd79f777a590a8aa0165319e407..299bb117e997180aa42badee0dae6d95b7954c83 100755 (executable)
@@ -94,6 +94,10 @@ sercomm,h500-s-lowi|\
 sercomm,h500-s-vfes)
        ucidef_set_led_netdev "wan" "WAN" "green:internet" "eth0.2"
        ;;
+technicolor,tg582n)
+       ucidef_set_led_netdev "wlan0" "WIFI" "green:wifi" "wlan0"
+       ucidef_set_led_usbdev "usb" "USB" "red:power" "1-1"
+       ;;
 technicolor,tg582n-telecom-italia)
        ucidef_set_led_netdev "wlan0" "WIFI" "green:wifi" "wlan0"
        ucidef_set_led_usbdev "usb1" "USB1" "green:service" "1-1"
index 9c9047b2fbcccb63d10d04c08ce12b9831b68bfa..700439ec36f6226a4eb963b9227dde219d096164 100755 (executable)
@@ -39,6 +39,7 @@ huawei,echolife-hg655b|\
 nucom,r5010un-v2|\
 sagem,fast-2504n|\
 sagem,fast-2704-v2|\
+technicolor,tg582n|\
 technicolor,tg582n-telecom-italia|\
 zyxel,p870hw-51a-v2)
        ucidef_add_switch "switch0" \
index 9b94a23eaf9b2bb5b5b051a52a88ff9b58c3dcd8..a176eb17350fbf6b63e538161a99d216a2a53f25 100644 (file)
@@ -34,6 +34,7 @@ case "$(board_name)" in
        nucom,r5010un-v2|\
        observa,vh4032n|\
        t-com,speedport-w-303v|\
+       technicolor,tg582n|\
        technicolor,tg582n-telecom-italia|\
        telsey,cpva502plus|\
        telsey,cpva642|\
diff --git a/target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n.dts b/target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n.dts
new file mode 100644 (file)
index 0000000..6ec2004
--- /dev/null
@@ -0,0 +1,166 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Technicolor TG582n";
+       compatible = "technicolor,tg582n", "brcm,bcm6328";
+
+       aliases {
+               led-boot = &led_power_green;
+               led-failsafe = &led_power_green;
+               led-running = &led_power_green;
+               led-upgrade = &led_power_green;
+       };
+
+       chosen {
+               bootargs = "rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200";
+               stdout-path = "serial0:115200n8";
+       };
+
+       keys {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <20>;
+
+               wifi {
+                       label = "wifi";
+                       gpios = <&pinctrl 15 1>;
+                       linux,code = <KEY_WLAN>;
+                       debounce-interval = <60>;
+               };
+
+               reset {
+                       label = "reset";
+                       gpios = <&pinctrl 23 1>;
+                       linux,code = <KEY_RESTART>;
+                       debounce-interval = <60>;
+               };
+
+               wps {
+                       label = "wps";
+                       gpios = <&pinctrl 24 1>;
+                       linux,code = <KEY_WPS_BUTTON>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&leds {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_leds>;
+
+       led@1 {
+               reg = <1>;
+               active-low;
+               label = "green:internet";
+       };
+
+       led@2 {
+               reg = <2>;
+               active-low;
+               label = "red:wifi";
+       };
+
+       led@3 {
+               reg = <3>;
+               active-low;
+               label = "green:wifi";
+       };
+
+       led_power_green: led@4 {
+               reg = <4>;
+               active-low;
+               label = "green:power";
+               default-state = "on";
+       };
+
+       led@5 {
+               reg = <5>;
+               active-low;
+               label = "green:ethernet";
+       };
+
+       led@7 {
+               reg = <7>;
+               active-low;
+               label = "red:internet";
+       };
+
+       led@8 {
+               reg = <8>;
+               active-low;
+               label = "red:power";
+       };
+
+       led@9 {
+               reg = <9>;
+               active-low;
+               label = "green:wps";
+       };
+
+       led@10 {
+               reg = <10>;
+               active-low;
+               label = "red:wps";
+       };
+
+       led@11 {
+               reg = <11>;
+               active-low;
+               label = "green:broadband";
+       };
+};
+
+&hsspi {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <16666667>;
+               spi-tx-bus-width = <2>;
+               spi-rx-bus-width = <2>;
+               reg = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               reg = <0x000000 0x010000>;
+                               label = "cfe";
+                               read-only;
+                       };
+
+                       partition@10000 {
+                               reg = <0x010000 0xff0000>;
+                               label = "linux";
+                               compatible = "brcm,bcm963xx-imagetag";
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       pinctrl_leds: leds {
+               function = "led";
+               pins = "gpio1", "gpio2",
+                      "gpio3", "gpio4",
+                      "gpio5", "gpio7",
+                      "gpio8", "gpio9",
+                      "gpio10", "gpio11";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
index 81cf98b44bac4c27b4ddafc3b002f782df75c6c0..773f098dea0a50cf479e71b1ab3eab0346ad93ce 100644 (file)
@@ -1099,6 +1099,18 @@ endef
 TARGET_DEVICES += t-com_speedport-w-500v
 
 ### Technicolor ###
+define Device/technicolor_tg582n
+  $(Device/bcm63xx)
+  DEVICE_VENDOR := Technicolor
+  DEVICE_MODEL := TG582n
+  IMAGES += sysupgrade.bin
+  CFE_BOARD_ID := DANT-1
+  CHIP_ID := 6328
+  FLASH_MB := 16
+  DEVICE_PACKAGES := $(USB2_PACKAGES) $(B43_PACKAGES)
+endef
+TARGET_DEVICES += technicolor_tg582n
+
 define Device/technicolor_tg582n-telecom-italia
   $(Device/bcm63xx)
   DEVICE_VENDOR := Technicolor
index ebe1ac4d94102ed97a1609c7045d872508cf8b0f..ae0c538660b5343b458cecb6c2590c00538e0d08 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -348,6 +348,568 @@ static struct board_info __initdata boar
+@@ -348,6 +348,611 @@ static struct board_info __initdata boar
                },
        },
  };
 +      },
 +};
 +
++static struct board_info __initdata board_TG582N = {
++      .name = "DANT-1",
++      .expected_cpu_id = 0x6328,
++
++      .has_pci = 1,
++      .has_ohci0 = 1,
++      .has_ehci0 = 1,
++      .num_usbh_ports = 1,
++
++      .has_enetsw = 1,
++      .enetsw = {
++              .used_ports = {
++                      [0] = {
++                              .used = 1,
++                              .phy_id = 1,
++                              .name = "Port 1",
++                      },
++                      [1] = {
++                              .used = 1,
++                              .phy_id = 2,
++                              .name = "Port 2",
++                      },
++                      [2] = {
++                              .used = 1,
++                              .phy_id = 3,
++                              .name = "Port 3",
++                      },
++                      [3] = {
++                              .used = 1,
++                              .phy_id = 4,
++                              .name = "Port 4",
++                      },
++              },
++      },
++
++      .use_fallback_sprom = 1,
++      .fallback_sprom = {
++              .type = SPROM_BCM43225,
++              .pci_bus = 1,
++              .pci_dev = 0,
++      },
++};
++
 +static struct board_info __initdata board_TG582N_TELECOM_ITALIA = {
 +      .name = "DANT-V",
 +      .expected_cpu_id = 0x6328,
  #endif /* CONFIG_BCM63XX_CPU_6328 */
  
  /*
-@@ -703,6 +1265,18 @@ static const struct board_info __initcon
+@@ -703,6 +1308,19 @@ static const struct board_info __initcon
  #endif /* CONFIG_BCM63XX_CPU_6318 */
  #ifdef CONFIG_BCM63XX_CPU_6328
        &board_96328avng,
 +      &board_FAST2704V2,
 +      &board_PDG_A4001N_A_000_1A1_AX,
 +      &board_PDG_A4101N_A_000_1A1_AE,
++      &board_TG582N,
 +      &board_TG582N_TELECOM_ITALIA,
 +      &board_R5010UNV2,
  #endif /* CONFIG_BCM63XX_CPU_6328 */
  #ifdef CONFIG_BCM63XX_CPU_6338
        &board_96338gw,
-@@ -742,7 +1316,21 @@ static struct of_device_id const bcm963x
+@@ -742,7 +1360,22 @@ static struct of_device_id const bcm963x
        { .compatible = "sagem,fast-2704n", .data = &board_FAST2704N, },
  #endif /* CONFIG_BCM63XX_CPU_6318 */
  #ifdef CONFIG_BCM63XX_CPU_6328
 +      { .compatible = "sagem,fast-2704-v2", .data = &board_FAST2704V2, },
 +      { .compatible = "sercomm,ad1018", .data = &board_AD1018, },
 +      { .compatible = "sercomm,ad1018-nor", .data = &board_AD1018, },
++      { .compatible = "technicolor,tg582n", .data = &board_TG582N, },
 +      { .compatible = "technicolor,tg582n-telecom-italia", .data = &board_TG582N_TELECOM_ITALIA, },
  #endif /* CONFIG_BCM63XX_CPU_6328 */
  #ifdef CONFIG_BCM63XX_CPU_6338
index 1b3110a2ae55aed4d8fe6c8bbc8a55316c4c5e6d..9319f974accab8cfb85bcb1d7611940d44b1a461 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -943,6 +943,32 @@ static struct board_info __initdata boar
+@@ -986,6 +986,32 @@ static struct board_info __initdata boar
                .force_duplex_full      = 1,
        },
  };
@@ -33,7 +33,7 @@
  #endif /* CONFIG_BCM63XX_CPU_6338 */
  
  /*
-@@ -1281,6 +1307,8 @@ static const struct board_info __initcon
+@@ -1325,6 +1351,8 @@ static const struct board_info __initcon
  #ifdef CONFIG_BCM63XX_CPU_6338
        &board_96338gw,
        &board_96338w,
@@ -42,7 +42,7 @@
  #endif /* CONFIG_BCM63XX_CPU_6338 */
  #ifdef CONFIG_BCM63XX_CPU_6345
        &board_96345gw2,
-@@ -1335,6 +1363,8 @@ static struct of_device_id const bcm963x
+@@ -1380,6 +1408,8 @@ static struct of_device_id const bcm963x
  #ifdef CONFIG_BCM63XX_CPU_6338
        { .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
        { .compatible = "brcm,bcm96338w", .data = &board_96338w, },
index e037b321ac7e293ea934f644453cebf466dd8901..3b1f2842b5f1c978282965d413718bafd8add8f1 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -979,6 +979,19 @@ static struct board_info __initdata boar
+@@ -1022,6 +1022,19 @@ static struct board_info __initdata boar
        .name                           = "96345GW2",
        .expected_cpu_id                = 0x6345,
  };
@@ -20,7 +20,7 @@
  #endif /* CONFIG_BCM63XX_CPU_6345 */
  
  /*
-@@ -1312,6 +1325,7 @@ static const struct board_info __initcon
+@@ -1356,6 +1369,7 @@ static const struct board_info __initcon
  #endif /* CONFIG_BCM63XX_CPU_6338 */
  #ifdef CONFIG_BCM63XX_CPU_6345
        &board_96345gw2,
@@ -28,7 +28,7 @@
  #endif /* CONFIG_BCM63XX_CPU_6345 */
  #ifdef CONFIG_BCM63XX_CPU_6348
        &board_96348r,
-@@ -1368,6 +1382,8 @@ static struct of_device_id const bcm963x
+@@ -1413,6 +1427,8 @@ static struct of_device_id const bcm963x
  #endif /* CONFIG_BCM63XX_CPU_6338 */
  #ifdef CONFIG_BCM63XX_CPU_6345
        { .compatible = "brcm,bcm96345gw2", .data = &board_96345gw2, },
index c4fe0da97bbaa9d8819bbcda01c77027793e8879..eb3eb26dd0dcc8d0f6713a3e5fb58f73b3f75803 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1178,6 +1178,275 @@ static struct board_info __initdata boar
+@@ -1221,6 +1221,275 @@ static struct board_info __initdata boar
  
        .has_ohci0 = 1,
  };
  #endif /* CONFIG_BCM63XX_CPU_6348 */
  
  /*
-@@ -1336,6 +1605,19 @@ static const struct board_info __initcon
+@@ -1380,6 +1649,19 @@ static const struct board_info __initcon
        &board_DV201AMR,
        &board_96348gw_a,
        &board_rta1025w_16,
  #endif /* CONFIG_BCM63XX_CPU_6348 */
  #ifdef CONFIG_BCM63XX_CPU_6358
        &board_96358vw,
-@@ -1386,15 +1668,29 @@ static struct of_device_id const bcm963x
+@@ -1431,15 +1713,29 @@ static struct of_device_id const bcm963x
        { .compatible = "dynalink,rta770w", .data = &board_rta770w, },
  #endif /* CONFIG_BCM63XX_CPU_6345 */
  #ifdef CONFIG_BCM63XX_CPU_6348
index 4e33123f5ac0f6c37ca67307e7601a23b89ff639..6af94bdbe085257350b859bc515bd3c60ebe4d7d 100644 (file)
@@ -8,7 +8,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -1531,6 +1532,88 @@ static struct board_info __initdata boar
+@@ -1574,6 +1575,88 @@ static struct board_info __initdata boar
        .has_ehci0 = 1,
  };
  
@@ -97,7 +97,7 @@
  static struct board_info __initdata board_DWVS0 = {
        .name                           = "DWV-S0",
        .expected_cpu_id                = 0x6358,
-@@ -1555,6 +1638,238 @@ static struct board_info __initdata boar
+@@ -1598,6 +1681,238 @@ static struct board_info __initdata boar
        .has_ohci0                      = 1,
        .has_ehci0                      = 1,
  };
  #endif /* CONFIG_BCM63XX_CPU_6358 */
  
  /*
-@@ -1623,7 +1938,20 @@ static const struct board_info __initcon
+@@ -1667,7 +1982,20 @@ static const struct board_info __initcon
        &board_96358vw,
        &board_96358vw2,
        &board_AGPFS0,
  #endif /* CONFIG_BCM63XX_CPU_6358 */
  };
  
-@@ -1698,11 +2026,24 @@ static struct of_device_id const bcm963x
+@@ -1743,11 +2071,24 @@ static struct of_device_id const bcm963x
        { .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
        { .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
        { .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },
index 18f571c061f1e2b8a026d5b28b3140edc5e1c854..c917914dd17b30254cb456308184f3813ded6e8c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1872,6 +1872,117 @@ static struct board_info __initdata boar
+@@ -1915,6 +1915,117 @@ static struct board_info __initdata boar
  };
  #endif /* CONFIG_BCM63XX_CPU_6358 */
  
  /*
   * all boards
   */
-@@ -1953,6 +2064,12 @@ static const struct board_info __initcon
+@@ -1997,6 +2108,12 @@ static const struct board_info __initcon
        &board_nb4_fxc_r1,
        &board_spw303v,
  #endif /* CONFIG_BCM63XX_CPU_6358 */
  };
  
  static struct of_device_id const bcm963xx_boards_dt[] = {
-@@ -2046,6 +2163,10 @@ static struct of_device_id const bcm963x
+@@ -2091,6 +2208,10 @@ static struct of_device_id const bcm963x
        { .compatible = "telsey,cpva642", .data = &board_CPVA642, },
  #endif /* CONFIG_BCM63XX_CPU_6358 */
  #ifdef CONFIG_BCM63XX_CPU_6362
index 181c8fe46636e1769d7b6aacd7f444a6a6007b39..31d724ca24a4631743182bd6402f86d401ff70ea 100644 (file)
@@ -9,7 +9,7 @@
  #include <asm/addrspace.h>
  #include <bcm63xx_board.h>
  #include <bcm63xx_cpu.h>
-@@ -1984,6 +1986,648 @@ static struct board_info __initdata boar
+@@ -2027,6 +2029,648 @@ static struct board_info __initdata boar
  #endif /* CONFIG_BCM63XX_CPU_6362 */
  
  /*
   * all boards
   */
  static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -2070,6 +2714,22 @@ static const struct board_info __initcon
+@@ -2114,6 +2758,22 @@ static const struct board_info __initcon
        &board_hg253s_v2,
        &board_nb6,
  #endif /* CONFIG_BCM63XX_CPU_6362 */
  };
  
  static struct of_device_id const bcm963xx_boards_dt[] = {
-@@ -2169,6 +2829,20 @@ static struct of_device_id const bcm963x
+@@ -2214,6 +2874,20 @@ static struct of_device_id const bcm963x
        { .compatible = "sfr,neufbox-6-sercomm-r0", .data = &board_nb6, },
  #endif /* CONFIG_BCM63XX_CPU_6362 */
  #ifdef CONFIG_BCM63XX_CPU_6368
index 5737bee24d25ac7810006f07634318bcc17aca90..20fbf5e68e942d08a45871049187069fefc33e57 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2628,6 +2628,273 @@ static struct board_info __initdata boar
+@@ -2671,6 +2671,273 @@ static struct board_info __initdata boar
  #endif /* CONFIG_BCM63XX_CPU_6368 */
  
  /*
   * all boards
   */
  static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -2730,6 +2997,15 @@ static const struct board_info __initcon
+@@ -2774,6 +3041,15 @@ static const struct board_info __initcon
        &board_VR3026e,
        &board_WAP5813n,
  #endif /* CONFIG_BCM63XX_CPU_6368 */
  };
  
  static struct of_device_id const bcm963xx_boards_dt[] = {
-@@ -2845,6 +3121,14 @@ static struct of_device_id const bcm963x
+@@ -2890,6 +3166,14 @@ static struct of_device_id const bcm963x
        { .compatible = "zyxel,p870hw-51a-v2", .data = &board_P870HW51A_V2, },
  #endif /* CONFIG_BCM63XX_CPU_6368 */
  #ifdef CONFIG_BCM63XX_CPU_63268
index ba47e209ace3bc053d665d890b3fe685f73263d3..23fefee97a5c550cdefef98d10d0e7d5c4727a92 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -3157,6 +3157,22 @@ void __init board_bcm963xx_init(void)
+@@ -3202,6 +3202,22 @@ void __init board_bcm963xx_init(void)
                val &= MPI_CSBASE_BASE_MASK;
        }
        boot_addr = (u8 *)KSEG1ADDR(val);