[PATCH v3 0/5] arm: bcmbca: move bcm63158 support under CONFIG_ARCH_BCMBCA

Sorry for another version of patch series with some minor updates. Please see the change log and specific patch for details.
BCM63158 is one of the Broadcom Broadband origin DSL Gateway router SoC. It was originally added by Philippe before Broadcom started to upstream the support for broadband SoCs. The ARM based Broadcom Broadband SoC family is now supported under the same ARCH_BCMBCA config. This patch series migrate the BCM63158 support to ARCH_BCMBCA.
This patch series need to apply on top of my previous patch series [1].
[1]: https://lists.denx.de/pipermail/u-boot/2022-August/491061.html
Changes in v3: -Update subject line to be more clear for patch 3 -Fix reset_cpu function prototype.
Changes in v2: - Remove extra nodes from bcm963158.dts and keep it as a generic minimun board support dts following other BCA chip convention. - Remove bcm963158_ram_defconfig per discussion with Philippe as a basic config version of bcm963158_defconfig is now added.
William Zhang (5): arm: bcmbca: add bcm63158 SoC support under CONFIG_ARCH_BCMBCA arm: bcmbca: remove bcm63158 support under CONFIG_ARCH_BCM63158 arm: bcmbca: replace ARCH_BCM63158 symbols in Kconfig with BCM63158 MAINTAINERS: Add BCM63158 maintainer to BCMBCA entry arm: bcmbca: make reset_cpu function weak
MAINTAINERS | 2 + arch/arm/Kconfig | 8 +- arch/arm/dts/Makefile | 5 +- arch/arm/dts/bcm63158.dtsi | 207 +++++++++++++--------- arch/arm/dts/bcm963158.dts | 121 +------------ arch/arm/mach-bcmbca/Kconfig | 8 + arch/arm/mach-bcmbca/Makefile | 1 + arch/arm/mach-bcmbca/bcm63158/Kconfig | 17 ++ arch/arm/mach-bcmbca/bcm63158/Makefile | 5 + arch/arm/mach-bcmbca/bcm63158/mmu_table.c | 32 ++++ board/broadcom/bcm963158/Kconfig | 17 -- board/broadcom/bcm963158/MAINTAINERS | 6 - board/broadcom/bcm963158/Makefile | 3 - board/broadcom/bcm963158/bcm963158.c | 62 ------- board/broadcom/bcmbca/Kconfig | 7 + board/broadcom/bcmbca/board.c | 2 +- configs/bcm963158_defconfig | 23 +++ configs/bcm963158_ram_defconfig | 67 ------- drivers/gpio/Kconfig | 2 +- drivers/led/Kconfig | 2 +- drivers/mtd/nand/raw/Kconfig | 2 +- drivers/spi/Kconfig | 2 +- drivers/watchdog/Kconfig | 2 +- include/configs/bcm963158.h | 15 ++ include/configs/broadcom_bcm963158.h | 32 ---- 25 files changed, 251 insertions(+), 399 deletions(-) create mode 100644 arch/arm/mach-bcmbca/bcm63158/Kconfig create mode 100644 arch/arm/mach-bcmbca/bcm63158/Makefile create mode 100644 arch/arm/mach-bcmbca/bcm63158/mmu_table.c delete mode 100644 board/broadcom/bcm963158/Kconfig delete mode 100644 board/broadcom/bcm963158/MAINTAINERS delete mode 100644 board/broadcom/bcm963158/Makefile delete mode 100644 board/broadcom/bcm963158/bcm963158.c create mode 100644 configs/bcm963158_defconfig delete mode 100644 configs/bcm963158_ram_defconfig create mode 100644 include/configs/bcm963158.h delete mode 100644 include/configs/broadcom_bcm963158.h

BCM63158 is a Broadcom B53 based DSL Gateway SoC. It is part of the BCA (Broadband Carrier Access origin) chipset family. Like other Broadband SoC, this patch adds it under CONFIG_BCM63158 chip config and CONFIG_ARCH_BCMBCA platform config.
This initial support includes a bare-bone implementation and dts with CPU subsystem, memory and ARM PL011 uart. This SoC is supported in the linux-next git repository so the dts and dtsi files are copied from linux.
The u-boot image can be loaded from flash or network to the entry point address in the memory and boot from there to the console.
Signed-off-by: William Zhang william.zhang@broadcom.com
---
(no changes since v2)
Changes in v2: - Remove extra nodes from bcm963158.dts and keep it as a generic minimun board support dts following other BCA chip convention.
MAINTAINERS | 1 + arch/arm/dts/Makefile | 2 + arch/arm/dts/bcm63158.dtsi | 207 +++++++++++++--------- arch/arm/dts/bcm963158.dts | 121 +------------ arch/arm/mach-bcmbca/Kconfig | 8 + arch/arm/mach-bcmbca/Makefile | 1 + arch/arm/mach-bcmbca/bcm63158/Kconfig | 17 ++ arch/arm/mach-bcmbca/bcm63158/Makefile | 5 + arch/arm/mach-bcmbca/bcm63158/mmu_table.c | 32 ++++ board/broadcom/bcmbca/Kconfig | 7 + configs/bcm963158_defconfig | 23 +++ include/configs/bcm963158.h | 11 ++ 12 files changed, 239 insertions(+), 196 deletions(-) create mode 100644 arch/arm/mach-bcmbca/bcm63158/Kconfig create mode 100644 arch/arm/mach-bcmbca/bcm63158/Makefile create mode 100644 arch/arm/mach-bcmbca/bcm63158/mmu_table.c create mode 100644 configs/bcm963158_defconfig create mode 100644 include/configs/bcm963158.h
diff --git a/MAINTAINERS b/MAINTAINERS index 3f250942ced1..5b219d62f6bf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -224,6 +224,7 @@ N: bcm[9]?4912 N: bcm[9]?63138 N: bcm[9]?63146 N: bcm[9]?63148 +N: bcm[9]?63158 N: bcm[9]?63178 N: bcm[9]?6756 N: bcm[9]?6813 diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 9a6582d9c1c8..a7fc3d7d7021 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1175,6 +1175,8 @@ dtb-$(CONFIG_BCM63146) += \ bcm963146.dtb dtb-$(CONFIG_BCM63148) += \ bcm963148.dtb +dtb-$(CONFIG_BCM63158) += \ + bcm963158.dtb dtb-$(CONFIG_BCM63178) += \ bcm963178.dtb dtb-$(CONFIG_BCM6756) += \ diff --git a/arch/arm/dts/bcm63158.dtsi b/arch/arm/dts/bcm63158.dtsi index 7dd285843849..8b179ba0fca8 100644 --- a/arch/arm/dts/bcm63158.dtsi +++ b/arch/arm/dts/bcm63158.dtsi @@ -1,122 +1,167 @@ // SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com + * Copyright 2022 Broadcom Ltd. */
-#include "skeleton64.dtsi" +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/interrupt-controller/arm-gic.h>
/ { - compatible = "brcm,bcm63158"; + compatible = "brcm,bcm63158", "brcm,bcmbca"; #address-cells = <2>; #size-cells = <2>;
- aliases { - spi0 = &hsspi; - }; + interrupt-parent = <&gic>;
cpus { #address-cells = <2>; #size-cells = <0>; - u-boot,dm-pre-reloc;
- cpu0: cpu@0 { - compatible = "arm,cortex-a53", "arm,armv8"; + B53_0: cpu@0 { + compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x0>; - next-level-cache = <&l2>; - u-boot,dm-pre-reloc; + next-level-cache = <&L2_0>; + enable-method = "psci"; };
- cpu1: cpu@1 { - compatible = "arm,cortex-a53", "arm,armv8"; + B53_1: cpu@1 { + compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x1>; - next-level-cache = <&l2>; - u-boot,dm-pre-reloc; + next-level-cache = <&L2_0>; + enable-method = "psci"; };
- cpu2: cpu@2 { - compatible = "arm,cortex-a53", "arm,armv8"; + B53_2: cpu@2 { + compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x2>; - next-level-cache = <&l2>; - u-boot,dm-pre-reloc; + next-level-cache = <&L2_0>; + enable-method = "psci"; };
- cpu3: cpu@3 { - compatible = "arm,cortex-a53", "arm,armv8"; + B53_3: cpu@3 { + compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x3>; - next-level-cache = <&l2>; - u-boot,dm-pre-reloc; + next-level-cache = <&L2_0>; + enable-method = "psci"; };
- l2: l2-cache0 { + L2_0: l2-cache0 { compatible = "cache"; - u-boot,dm-pre-reloc; }; };
+ timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; + }; + + pmu: pmu { + compatible = "arm,cortex-a53-pmu"; + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&B53_0>, <&B53_1>, + <&B53_2>, <&B53_3>; + }; + clocks { - compatible = "simple-bus"; - #address-cells = <2>; - #size-cells = <2>; - ranges; u-boot,dm-pre-reloc; - - periph_osc: periph-osc { + periph_clk: periph-clk { compatible = "fixed-clock"; #clock-cells = <0>; - clock-frequency = <0xbebc200>; - u-boot,dm-pre-reloc; + clock-frequency = <200000000>; };
hsspi_pll: hsspi-pll { compatible = "fixed-factor-clock"; #clock-cells = <0>; - clocks = <&periph_osc>; + clocks = <&periph_clk>; clock-mult = <2>; clock-div = <1>; };
- refclk50mhz: refclk50mhz { - compatible = "fixed-clock"; + uart_clk: uart-clk { + compatible = "fixed-factor-clock"; #clock-cells = <0>; - clock-frequency = <50000000>; + clocks = <&periph_clk>; + clock-div = <4>; + clock-mult = <1>; + }; + + wdt_clk: wdt-clk { + compatible = "fixed-factor-clock"; + #clock-cells = <0>; + clocks = <&periph_clk>; + clock-div = <4>; + clock-mult = <1>; }; };
- ubus { + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + + axi@81000000 { compatible = "simple-bus"; - #address-cells = <2>; - #size-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x0 0x81000000 0x8000>; + + gic: interrupt-controller@1000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + interrupt-controller; + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; + reg = <0x1000 0x1000>, + <0x2000 0x2000>, + <0x4000 0x2000>, + <0x6000 0x2000>; + }; + }; + + bus@ff800000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x0 0xff800000 0x800000>; u-boot,dm-pre-reloc;
- uart0: serial@ff812000 { + uart0: serial@12000 { compatible = "arm,pl011", "arm,primecell"; - reg = <0x0 0xff812000 0x0 0x1000>; - clock = <50000000>; - + reg = <0x12000 0x1000>; + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&uart_clk>, <&uart_clk>; + clock-names = "uartclk", "apb_pclk"; status = "disabled"; };
- leds: led-controller@ff800800 { + leds: led-controller@800 { compatible = "brcm,bcm6858-leds"; - reg = <0x0 0xff800800 0x0 0xe4>; + reg = <0x800 0xe4>;
status = "disabled"; };
- wdt1: watchdog@ff800480 { + wdt1: watchdog@480 { compatible = "brcm,bcm6345-wdt"; - reg = <0x0 0xff800480 0x0 0x14>; - clocks = <&refclk50mhz>; + reg = <0x480 0x14>; + clocks = <&wdt_clk>; };
- wdt2: watchdog@ff8004c0 { + wdt2: watchdog@4c0 { compatible = "brcm,bcm6345-wdt"; - reg = <0x0 0xff8004c0 0x0 0x14>; - clocks = <&refclk50mhz>; + reg = <0x4c0 0x14>; + clocks = <&wdt_clk>; };
wdt-reboot { @@ -124,91 +169,91 @@ wdt = <&wdt1>; };
- gpio0: gpio-controller@0xff800500 { + gpio0: gpio-controller@500 { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff800500 0x0 0x4>, - <0x0 0xff800520 0x0 0x4>; + reg = <0x500 0x4>, + <0x520 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio1: gpio-controller@0xff800504 { + gpio1: gpio-controller@504 { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff800504 0x0 0x4>, - <0x0 0xff800524 0x0 0x4>; + reg = <0x504 0x4>, + <0x524 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio2: gpio-controller@0xff800508 { + gpio2: gpio-controller@508 { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff800508 0x0 0x4>, - <0x0 0xff800528 0x0 0x4>; + reg = <0x508 0x4>, + <0x528 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio3: gpio-controller@0xff80050c { + gpio3: gpio-controller@50c { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff80050c 0x0 0x4>, - <0x0 0xff80052c 0x0 0x4>; + reg = <0x50c 0x4>, + <0x52c 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio4: gpio-controller@0xff800510 { + gpio4: gpio-controller@510 { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff800510 0x0 0x4>, - <0x0 0xff800530 0x0 0x4>; + reg = <0x510 0x4>, + <0x530 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio5: gpio-controller@0xff800514 { + gpio5: gpio-controller@514 { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff800514 0x0 0x4>, - <0x0 0xff800534 0x0 0x4>; + reg = <0x514 0x4>, + <0x534 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio6: gpio-controller@0xff800518 { + gpio6: gpio-controller@518 { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff800518 0x0 0x4>, - <0x0 0xff800538 0x0 0x4>; + reg = <0x518 0x4>, + <0x538 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- gpio7: gpio-controller@0xff80051c { + gpio7: gpio-controller@51c { compatible = "brcm,bcm6345-gpio"; - reg = <0x0 0xff80051c 0x0 0x4>, - <0x0 0xff80053c 0x0 0x4>; + reg = <0x51c 0x4>, + <0x53c 0x4>; gpio-controller; #gpio-cells = <2>;
status = "disabled"; };
- hsspi: spi-controller@ff801000 { + hsspi: spi-controller@1000 { compatible = "brcm,bcm6328-hsspi"; #address-cells = <1>; #size-cells = <0>; - reg = <0x0 0xff801000 0x0 0x600>; + reg = <0x1000 0x600>; clocks = <&hsspi_pll>, <&hsspi_pll>; clock-names = "hsspi", "pll"; spi-max-frequency = <100000000>; @@ -217,14 +262,14 @@ status = "disabled"; };
- nand: nand-controller@ff801800 { + nand: nand-controller@1800 { compatible = "brcm,nand-bcm63158", "brcm,brcmnand-v5.0", "brcm,brcmnand"; reg-names = "nand", "nand-int-base", "nand-cache"; - reg = <0x0 0xff801800 0x0 0x180>, - <0x0 0xff802000 0x0 0x10>, - <0x0 0xff801c00 0x0 0x200>; + reg = <0x1800 0x180>, + <0x2000 0x10>, + <0x1c00 0x200>; parameter-page-big-endian = <0>;
status = "disabled"; diff --git a/arch/arm/dts/bcm963158.dts b/arch/arm/dts/bcm963158.dts index c2bdd332745d..eba07e0b1ca6 100644 --- a/arch/arm/dts/bcm963158.dts +++ b/arch/arm/dts/bcm963158.dts @@ -1,6 +1,6 @@ -// SPDX-License-Identifier: GPL-2.0+ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* - * Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com + * Copyright 2022 Broadcom Ltd. */
/dts-v1/; @@ -8,8 +8,8 @@ #include "bcm63158.dtsi"
/ { - model = "Broadcom bcm963158"; - compatible = "broadcom,bcm963158", "brcm,bcm63158"; + model = "Broadcom BCM963158 Reference Board"; + compatible = "brcm,bcm963158", "brcm,bcm63158", "brcm,bcmbca";
aliases { serial0 = &uart0; @@ -19,121 +19,12 @@ stdout-path = "serial0:115200n8"; };
- memory { + memory@0 { device_type = "memory"; - reg = <0x0 0x0 0x0 0x40000000>; + reg = <0x0 0x0 0x0 0x08000000>; }; };
&uart0 { - u-boot,dm-pre-reloc; status = "okay"; }; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&gpio2 { - status = "okay"; -}; - -&gpio3 { - status = "okay"; -}; - -&gpio4 { - status = "okay"; -}; - -&gpio5 { - status = "okay"; -}; - -&gpio6 { - status = "okay"; -}; - -&gpio7 { - status = "okay"; -}; - -&nand { - status = "okay"; - write-protect = <0>; - #address-cells = <1>; - #size-cells = <0>; - - nandcs@0 { - compatible = "brcm,nandcs"; - reg = <0>; - nand-ecc-strength = <4>; - nand-ecc-step-size = <512>; - brcm,nand-oob-sector-size = <16>; - }; -}; - -&leds { - status = "okay"; - #address-cells = <1>; - #size-cells = <0>; - brcm,serial-led-en-pol; - brcm,serial-led-data-ppol; - - led@16 { - reg = <16>; - label = "red:dsl2"; - }; - - led@17 { - reg = <17>; - label = "green:dsl1"; - }; - - led@18 { - reg = <18>; - label = "green:fxs2"; - }; - - led@19 { - reg = <19>; - label = "green:fxs1"; - }; - - led@26 { - reg = <26>; - label = "green:wan1_act"; - }; - - led@27 { - reg = <27>; - label = "green:wps"; - }; - - led@28 { - reg = <28>; - active-low; - label = "green:aggregate_act"; - }; - - led@29 { - reg = <29>; - label = "green:aggregate_link"; - }; -}; - -&hsspi { - status = "okay"; - - flash: mt25@0 { - compatible = "jedec,spi-nor"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0>; - spi-max-frequency = <25000000>; - }; -}; diff --git a/arch/arm/mach-bcmbca/Kconfig b/arch/arm/mach-bcmbca/Kconfig index eb03ef42b8d2..d78618820b58 100644 --- a/arch/arm/mach-bcmbca/Kconfig +++ b/arch/arm/mach-bcmbca/Kconfig @@ -48,6 +48,13 @@ config BCM63148 select DM_SERIAL select BCM6345_SERIAL
+config BCM63158 + bool "Support for Broadcom 63158 Family" + select ARM64 + select SYS_ARCH_TIMER + select DM_SERIAL + select PL01X_SERIAL + config BCM63178 bool "Support for Broadcom 63178 Family" select SYS_ARCH_TIMER @@ -89,6 +96,7 @@ source "arch/arm/mach-bcmbca/bcm4912/Kconfig" source "arch/arm/mach-bcmbca/bcm63138/Kconfig" source "arch/arm/mach-bcmbca/bcm63146/Kconfig" source "arch/arm/mach-bcmbca/bcm63148/Kconfig" +source "arch/arm/mach-bcmbca/bcm63158/Kconfig" source "arch/arm/mach-bcmbca/bcm63178/Kconfig" source "arch/arm/mach-bcmbca/bcm6756/Kconfig" source "arch/arm/mach-bcmbca/bcm6813/Kconfig" diff --git a/arch/arm/mach-bcmbca/Makefile b/arch/arm/mach-bcmbca/Makefile index c8c344ba7271..e5df60e7648b 100644 --- a/arch/arm/mach-bcmbca/Makefile +++ b/arch/arm/mach-bcmbca/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_BCM4912) += bcm4912/ obj-$(CONFIG_BCM63138) += bcm63138/ obj-$(CONFIG_BCM63146) += bcm63146/ obj-$(CONFIG_BCM63148) += bcm63148/ +obj-$(CONFIG_BCM63158) += bcm63158/ obj-$(CONFIG_BCM63178) += bcm63178/ obj-$(CONFIG_BCM6756) += bcm6756/ obj-$(CONFIG_BCM6813) += bcm6813/ diff --git a/arch/arm/mach-bcmbca/bcm63158/Kconfig b/arch/arm/mach-bcmbca/bcm63158/Kconfig new file mode 100644 index 000000000000..b77444369ec9 --- /dev/null +++ b/arch/arm/mach-bcmbca/bcm63158/Kconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# (C) Copyright 2022 Broadcom Ltd +# + +if BCM63158 + +config TARGET_BCM963158 + bool "Broadcom 63158 Reference Board" + depends on ARCH_BCMBCA + +config SYS_SOC + default "bcm63158" + +source "board/broadcom/bcmbca/Kconfig" + +endif diff --git a/arch/arm/mach-bcmbca/bcm63158/Makefile b/arch/arm/mach-bcmbca/bcm63158/Makefile new file mode 100644 index 000000000000..62624977034b --- /dev/null +++ b/arch/arm/mach-bcmbca/bcm63158/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# (C) Copyright 2022 Broadcom Ltd +# +obj-y += mmu_table.o diff --git a/arch/arm/mach-bcmbca/bcm63158/mmu_table.c b/arch/arm/mach-bcmbca/bcm63158/mmu_table.c new file mode 100644 index 000000000000..fe7efb30e22b --- /dev/null +++ b/arch/arm/mach-bcmbca/bcm63158/mmu_table.c @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 Broadcom Ltd. + */ +#include <common.h> +#include <asm/armv8/mmu.h> +#include <linux/sizes.h> + +static struct mm_region bcm963158_mem_map[] = { + { + .virt = 0x00000000UL, + .phys = 0x00000000UL, + .size = 1UL * SZ_1G, + .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | + PTE_BLOCK_INNER_SHARE + }, + { + /* SoC peripheral */ + .virt = 0xff800000UL, + .phys = 0xff800000UL, + .size = 0x100000, + .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | + PTE_BLOCK_NON_SHARE | + PTE_BLOCK_PXN | PTE_BLOCK_UXN + }, + { + /* List terminator */ + 0, + } +}; + +struct mm_region *mem_map = bcm963158_mem_map; diff --git a/board/broadcom/bcmbca/Kconfig b/board/broadcom/bcmbca/Kconfig index c9155fb48e0a..13815fd7975f 100644 --- a/board/broadcom/bcmbca/Kconfig +++ b/board/broadcom/bcmbca/Kconfig @@ -51,6 +51,13 @@ config SYS_CONFIG_NAME
endif
+if TARGET_BCM963158 + +config SYS_CONFIG_NAME + default "bcm963158" + +endif + if TARGET_BCM963178
config SYS_CONFIG_NAME diff --git a/configs/bcm963158_defconfig b/configs/bcm963158_defconfig new file mode 100644 index 000000000000..b585adbd9b37 --- /dev/null +++ b/configs/bcm963158_defconfig @@ -0,0 +1,23 @@ +CONFIG_ARM=y +CONFIG_COUNTER_FREQUENCY=50000000 +CONFIG_ARCH_BCMBCA=y +CONFIG_SYS_TEXT_BASE=0x01000000 +CONFIG_SYS_MALLOC_LEN=0x2000000 +CONFIG_SYS_MALLOC_F_LEN=0x8000 +CONFIG_BCM63158=y +CONFIG_TARGET_BCM963158=y +CONFIG_NR_DRAM_BANKS=2 +CONFIG_DEFAULT_DEVICE_TREE="bcm963158" +CONFIG_IDENT_STRING=" Broadcom BCM63158" +CONFIG_SYS_LOAD_ADDR=0x01000000 +CONFIG_ENV_VARS_UBOOT_CONFIG=y +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x2000000 +CONFIG_OF_STDOUT_VIA_ALIAS=y +CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_MAXARGS=64 +CONFIG_SYS_BOOTM_LEN=0x4000000 +CONFIG_CMD_CACHE=y +CONFIG_OF_EMBED=y +CONFIG_CLK=y diff --git a/include/configs/bcm963158.h b/include/configs/bcm963158.h new file mode 100644 index 000000000000..b15c4111c967 --- /dev/null +++ b/include/configs/bcm963158.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * (C) Copyright 2022 Broadcom Ltd. + */ + +#ifndef __BCM963158_H +#define __BCM963158_H + +#define CONFIG_SYS_SDRAM_BASE 0x00000000 + +#endif

Hi William,
Le 22/08/2022 à 20:19, William Zhang a écrit :
BCM63158 is a Broadcom B53 based DSL Gateway SoC. It is part of the BCA (Broadband Carrier Access origin) chipset family. Like other Broadband SoC, this patch adds it under CONFIG_BCM63158 chip config and CONFIG_ARCH_BCMBCA platform config.
This initial support includes a bare-bone implementation and dts with CPU subsystem, memory and ARM PL011 uart. This SoC is supported in the linux-next git repository so the dts and dtsi files are copied from linux.
The u-boot image can be loaded from flash or network to the entry point address in the memory and boot from there to the console.
Signed-off-by: William Zhang william.zhang@broadcom.com
Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
(no changes since v2)
Changes in v2:
- Remove extra nodes from bcm963158.dts and keep it as a generic minimun
board support dts following other BCA chip convention.
MAINTAINERS | 1 + arch/arm/dts/Makefile | 2 + arch/arm/dts/bcm63158.dtsi | 207 +++++++++++++--------- arch/arm/dts/bcm963158.dts | 121 +------------ arch/arm/mach-bcmbca/Kconfig | 8 + arch/arm/mach-bcmbca/Makefile | 1 + arch/arm/mach-bcmbca/bcm63158/Kconfig | 17 ++ arch/arm/mach-bcmbca/bcm63158/Makefile | 5 + arch/arm/mach-bcmbca/bcm63158/mmu_table.c | 32 ++++ board/broadcom/bcmbca/Kconfig | 7 + configs/bcm963158_defconfig | 23 +++ include/configs/bcm963158.h | 11 ++ 12 files changed, 239 insertions(+), 196 deletions(-) create mode 100644 arch/arm/mach-bcmbca/bcm63158/Kconfig create mode 100644 arch/arm/mach-bcmbca/bcm63158/Makefile create mode 100644 arch/arm/mach-bcmbca/bcm63158/mmu_table.c create mode 100644 configs/bcm963158_defconfig create mode 100644 include/configs/bcm963158.h
diff --git a/MAINTAINERS b/MAINTAINERS index 3f250942ced1..5b219d62f6bf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -224,6 +224,7 @@ N: bcm[9]?4912 N: bcm[9]?63138 N: bcm[9]?63146 N: bcm[9]?63148 +N: bcm[9]?63158 N: bcm[9]?63178 N: bcm[9]?6756 N: bcm[9]?6813 diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 9a6582d9c1c8..a7fc3d7d7021 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1175,6 +1175,8 @@ dtb-$(CONFIG_BCM63146) += \ bcm963146.dtb dtb-$(CONFIG_BCM63148) += \ bcm963148.dtb +dtb-$(CONFIG_BCM63158) += \
- bcm963158.dtb dtb-$(CONFIG_BCM63178) += \ bcm963178.dtb dtb-$(CONFIG_BCM6756) += \
diff --git a/arch/arm/dts/bcm63158.dtsi b/arch/arm/dts/bcm63158.dtsi index 7dd285843849..8b179ba0fca8 100644 --- a/arch/arm/dts/bcm63158.dtsi +++ b/arch/arm/dts/bcm63158.dtsi @@ -1,122 +1,167 @@ // SPDX-License-Identifier: GPL-2.0+ /*
- Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com
*/
- Copyright 2022 Broadcom Ltd.
-#include "skeleton64.dtsi" +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
- compatible = "brcm,bcm63158";
- compatible = "brcm,bcm63158", "brcm,bcmbca"; #address-cells = <2>; #size-cells = <2>;
- aliases {
spi0 = &hsspi;
- };
interrupt-parent = <&gic>;
cpus { #address-cells = <2>; #size-cells = <0>;
u-boot,dm-pre-reloc;
cpu0: cpu@0 {
compatible = "arm,cortex-a53", "arm,armv8";
B53_0: cpu@0 {
compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x0>;
next-level-cache = <&l2>;
u-boot,dm-pre-reloc;
next-level-cache = <&L2_0>;
};enable-method = "psci";
cpu1: cpu@1 {
compatible = "arm,cortex-a53", "arm,armv8";
B53_1: cpu@1 {
compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x1>;
next-level-cache = <&l2>;
u-boot,dm-pre-reloc;
next-level-cache = <&L2_0>;
};enable-method = "psci";
cpu2: cpu@2 {
compatible = "arm,cortex-a53", "arm,armv8";
B53_2: cpu@2 {
compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x2>;
next-level-cache = <&l2>;
u-boot,dm-pre-reloc;
next-level-cache = <&L2_0>;
};enable-method = "psci";
cpu3: cpu@3 {
compatible = "arm,cortex-a53", "arm,armv8";
B53_3: cpu@3 {
compatible = "brcm,brahma-b53"; device_type = "cpu"; reg = <0x0 0x3>;
next-level-cache = <&l2>;
u-boot,dm-pre-reloc;
next-level-cache = <&L2_0>;
};enable-method = "psci";
l2: l2-cache0 {
L2_0: l2-cache0 { compatible = "cache";
}; };u-boot,dm-pre-reloc;
- timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
- };
- pmu: pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>,
<&B53_2>, <&B53_3>;
- };
- clocks {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
u-boot,dm-pre-reloc;ranges;
periph_osc: periph-osc {
periph_clk: periph-clk { compatible = "fixed-clock"; #clock-cells = <0>;
clock-frequency = <0xbebc200>;
u-boot,dm-pre-reloc;
clock-frequency = <200000000>;
};
hsspi_pll: hsspi-pll { compatible = "fixed-factor-clock"; #clock-cells = <0>;
clocks = <&periph_osc>;
};clocks = <&periph_clk>; clock-mult = <2>; clock-div = <1>;
refclk50mhz: refclk50mhz {
compatible = "fixed-clock";
uart_clk: uart-clk {
compatible = "fixed-factor-clock"; #clock-cells = <0>;
clock-frequency = <50000000>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
wdt_clk: wdt-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
}; };clock-mult = <1>;
- ubus {
- psci {
compatible = "arm,psci-0.2";
method = "smc";
- };
- axi@81000000 { compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
- };
- bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
u-boot,dm-pre-reloc;ranges = <0x0 0x0 0xff800000 0x800000>;
uart0: serial@ff812000 {
uart0: serial@12000 { compatible = "arm,pl011", "arm,primecell";
reg = <0x0 0xff812000 0x0 0x1000>;
clock = <50000000>;
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
};clock-names = "uartclk", "apb_pclk"; status = "disabled";
leds: led-controller@ff800800 {
leds: led-controller@800 { compatible = "brcm,bcm6858-leds";
reg = <0x0 0xff800800 0x0 0xe4>;
reg = <0x800 0xe4>; status = "disabled";
};
wdt1: watchdog@ff800480 {
wdt1: watchdog@480 { compatible = "brcm,bcm6345-wdt";
reg = <0x0 0xff800480 0x0 0x14>;
clocks = <&refclk50mhz>;
reg = <0x480 0x14>;
};clocks = <&wdt_clk>;
wdt2: watchdog@ff8004c0 {
wdt2: watchdog@4c0 { compatible = "brcm,bcm6345-wdt";
reg = <0x0 0xff8004c0 0x0 0x14>;
clocks = <&refclk50mhz>;
reg = <0x4c0 0x14>;
clocks = <&wdt_clk>;
};
wdt-reboot {
@@ -124,91 +169,91 @@ wdt = <&wdt1>; };
gpio0: gpio-controller@0xff800500 {
gpio0: gpio-controller@500 { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff800500 0x0 0x4>,
<0x0 0xff800520 0x0 0x4>;
reg = <0x500 0x4>,
<0x520 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio1: gpio-controller@0xff800504 {
gpio1: gpio-controller@504 { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff800504 0x0 0x4>,
<0x0 0xff800524 0x0 0x4>;
reg = <0x504 0x4>,
<0x524 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio2: gpio-controller@0xff800508 {
gpio2: gpio-controller@508 { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff800508 0x0 0x4>,
<0x0 0xff800528 0x0 0x4>;
reg = <0x508 0x4>,
<0x528 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio3: gpio-controller@0xff80050c {
gpio3: gpio-controller@50c { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff80050c 0x0 0x4>,
<0x0 0xff80052c 0x0 0x4>;
reg = <0x50c 0x4>,
<0x52c 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio4: gpio-controller@0xff800510 {
gpio4: gpio-controller@510 { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff800510 0x0 0x4>,
<0x0 0xff800530 0x0 0x4>;
reg = <0x510 0x4>,
<0x530 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio5: gpio-controller@0xff800514 {
gpio5: gpio-controller@514 { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff800514 0x0 0x4>,
<0x0 0xff800534 0x0 0x4>;
reg = <0x514 0x4>,
<0x534 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio6: gpio-controller@0xff800518 {
gpio6: gpio-controller@518 { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff800518 0x0 0x4>,
<0x0 0xff800538 0x0 0x4>;
reg = <0x518 0x4>,
<0x538 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
gpio7: gpio-controller@0xff80051c {
gpio7: gpio-controller@51c { compatible = "brcm,bcm6345-gpio";
reg = <0x0 0xff80051c 0x0 0x4>,
<0x0 0xff80053c 0x0 0x4>;
reg = <0x51c 0x4>,
<0x53c 0x4>; gpio-controller; #gpio-cells = <2>; status = "disabled";
};
hsspi: spi-controller@ff801000 {
hsspi: spi-controller@1000 { compatible = "brcm,bcm6328-hsspi"; #address-cells = <1>; #size-cells = <0>;
reg = <0x0 0xff801000 0x0 0x600>;
reg = <0x1000 0x600>; clocks = <&hsspi_pll>, <&hsspi_pll>; clock-names = "hsspi", "pll"; spi-max-frequency = <100000000>;
@@ -217,14 +262,14 @@ status = "disabled"; };
nand: nand-controller@ff801800 {
nand: nand-controller@1800 { compatible = "brcm,nand-bcm63158", "brcm,brcmnand-v5.0", "brcm,brcmnand"; reg-names = "nand", "nand-int-base", "nand-cache";
reg = <0x0 0xff801800 0x0 0x180>,
<0x0 0xff802000 0x0 0x10>,
<0x0 0xff801c00 0x0 0x200>;
reg = <0x1800 0x180>,
<0x2000 0x10>,
<0x1c00 0x200>; parameter-page-big-endian = <0>; status = "disabled";
diff --git a/arch/arm/dts/bcm963158.dts b/arch/arm/dts/bcm963158.dts index c2bdd332745d..eba07e0b1ca6 100644 --- a/arch/arm/dts/bcm963158.dts +++ b/arch/arm/dts/bcm963158.dts @@ -1,6 +1,6 @@ -// SPDX-License-Identifier: GPL-2.0+ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /*
- Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com
- Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
@@ -8,8 +8,8 @@ #include "bcm63158.dtsi"
/ {
- model = "Broadcom bcm963158";
- compatible = "broadcom,bcm963158", "brcm,bcm63158";
model = "Broadcom BCM963158 Reference Board";
compatible = "brcm,bcm963158", "brcm,bcm63158", "brcm,bcmbca";
aliases { serial0 = &uart0;
@@ -19,121 +19,12 @@ stdout-path = "serial0:115200n8"; };
- memory {
- memory@0 { device_type = "memory";
reg = <0x0 0x0 0x0 0x40000000>;
reg = <0x0 0x0 0x0 0x08000000>;
}; };
&uart0 {
- u-boot,dm-pre-reloc; status = "okay"; };
-&gpio0 {
- status = "okay";
-};
-&gpio1 {
- status = "okay";
-};
-&gpio2 {
- status = "okay";
-};
-&gpio3 {
- status = "okay";
-};
-&gpio4 {
- status = "okay";
-};
-&gpio5 {
- status = "okay";
-};
-&gpio6 {
- status = "okay";
-};
-&gpio7 {
- status = "okay";
-};
-&nand {
- status = "okay";
- write-protect = <0>;
- #address-cells = <1>;
- #size-cells = <0>;
- nandcs@0 {
compatible = "brcm,nandcs";
reg = <0>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
- };
-};
-&leds {
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
- brcm,serial-led-en-pol;
- brcm,serial-led-data-ppol;
- led@16 {
reg = <16>;
label = "red:dsl2";
- };
- led@17 {
reg = <17>;
label = "green:dsl1";
- };
- led@18 {
reg = <18>;
label = "green:fxs2";
- };
- led@19 {
reg = <19>;
label = "green:fxs1";
- };
- led@26 {
reg = <26>;
label = "green:wan1_act";
- };
- led@27 {
reg = <27>;
label = "green:wps";
- };
- led@28 {
reg = <28>;
active-low;
label = "green:aggregate_act";
- };
- led@29 {
reg = <29>;
label = "green:aggregate_link";
- };
-};
-&hsspi {
- status = "okay";
- flash: mt25@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <25000000>;
- };
-}; diff --git a/arch/arm/mach-bcmbca/Kconfig b/arch/arm/mach-bcmbca/Kconfig index eb03ef42b8d2..d78618820b58 100644 --- a/arch/arm/mach-bcmbca/Kconfig +++ b/arch/arm/mach-bcmbca/Kconfig @@ -48,6 +48,13 @@ config BCM63148 select DM_SERIAL select BCM6345_SERIAL
+config BCM63158
- bool "Support for Broadcom 63158 Family"
- select ARM64
- select SYS_ARCH_TIMER
- select DM_SERIAL
- select PL01X_SERIAL
- config BCM63178 bool "Support for Broadcom 63178 Family" select SYS_ARCH_TIMER
@@ -89,6 +96,7 @@ source "arch/arm/mach-bcmbca/bcm4912/Kconfig" source "arch/arm/mach-bcmbca/bcm63138/Kconfig" source "arch/arm/mach-bcmbca/bcm63146/Kconfig" source "arch/arm/mach-bcmbca/bcm63148/Kconfig" +source "arch/arm/mach-bcmbca/bcm63158/Kconfig" source "arch/arm/mach-bcmbca/bcm63178/Kconfig" source "arch/arm/mach-bcmbca/bcm6756/Kconfig" source "arch/arm/mach-bcmbca/bcm6813/Kconfig" diff --git a/arch/arm/mach-bcmbca/Makefile b/arch/arm/mach-bcmbca/Makefile index c8c344ba7271..e5df60e7648b 100644 --- a/arch/arm/mach-bcmbca/Makefile +++ b/arch/arm/mach-bcmbca/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_BCM4912) += bcm4912/ obj-$(CONFIG_BCM63138) += bcm63138/ obj-$(CONFIG_BCM63146) += bcm63146/ obj-$(CONFIG_BCM63148) += bcm63148/ +obj-$(CONFIG_BCM63158) += bcm63158/ obj-$(CONFIG_BCM63178) += bcm63178/ obj-$(CONFIG_BCM6756) += bcm6756/ obj-$(CONFIG_BCM6813) += bcm6813/ diff --git a/arch/arm/mach-bcmbca/bcm63158/Kconfig b/arch/arm/mach-bcmbca/bcm63158/Kconfig new file mode 100644 index 000000000000..b77444369ec9 --- /dev/null +++ b/arch/arm/mach-bcmbca/bcm63158/Kconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# (C) Copyright 2022 Broadcom Ltd +#
+if BCM63158
+config TARGET_BCM963158
- bool "Broadcom 63158 Reference Board"
- depends on ARCH_BCMBCA
+config SYS_SOC
- default "bcm63158"
+source "board/broadcom/bcmbca/Kconfig"
+endif diff --git a/arch/arm/mach-bcmbca/bcm63158/Makefile b/arch/arm/mach-bcmbca/bcm63158/Makefile new file mode 100644 index 000000000000..62624977034b --- /dev/null +++ b/arch/arm/mach-bcmbca/bcm63158/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# (C) Copyright 2022 Broadcom Ltd +# +obj-y += mmu_table.o diff --git a/arch/arm/mach-bcmbca/bcm63158/mmu_table.c b/arch/arm/mach-bcmbca/bcm63158/mmu_table.c new file mode 100644 index 000000000000..fe7efb30e22b --- /dev/null +++ b/arch/arm/mach-bcmbca/bcm63158/mmu_table.c @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright 2022 Broadcom Ltd.
- */
+#include <common.h> +#include <asm/armv8/mmu.h> +#include <linux/sizes.h>
+static struct mm_region bcm963158_mem_map[] = {
{
.virt = 0x00000000UL,
.phys = 0x00000000UL,
.size = 1UL * SZ_1G,
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
PTE_BLOCK_INNER_SHARE
},
{
/* SoC peripheral */
.virt = 0xff800000UL,
.phys = 0xff800000UL,
.size = 0x100000,
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
PTE_BLOCK_NON_SHARE |
PTE_BLOCK_PXN | PTE_BLOCK_UXN
},
{
/* List terminator */
0,
}
+};
+struct mm_region *mem_map = bcm963158_mem_map; diff --git a/board/broadcom/bcmbca/Kconfig b/board/broadcom/bcmbca/Kconfig index c9155fb48e0a..13815fd7975f 100644 --- a/board/broadcom/bcmbca/Kconfig +++ b/board/broadcom/bcmbca/Kconfig @@ -51,6 +51,13 @@ config SYS_CONFIG_NAME
endif
+if TARGET_BCM963158
+config SYS_CONFIG_NAME
- default "bcm963158"
+endif
if TARGET_BCM963178
config SYS_CONFIG_NAME
diff --git a/configs/bcm963158_defconfig b/configs/bcm963158_defconfig new file mode 100644 index 000000000000..b585adbd9b37 --- /dev/null +++ b/configs/bcm963158_defconfig @@ -0,0 +1,23 @@ +CONFIG_ARM=y +CONFIG_COUNTER_FREQUENCY=50000000 +CONFIG_ARCH_BCMBCA=y +CONFIG_SYS_TEXT_BASE=0x01000000 +CONFIG_SYS_MALLOC_LEN=0x2000000 +CONFIG_SYS_MALLOC_F_LEN=0x8000 +CONFIG_BCM63158=y +CONFIG_TARGET_BCM963158=y +CONFIG_NR_DRAM_BANKS=2 +CONFIG_DEFAULT_DEVICE_TREE="bcm963158" +CONFIG_IDENT_STRING=" Broadcom BCM63158" +CONFIG_SYS_LOAD_ADDR=0x01000000 +CONFIG_ENV_VARS_UBOOT_CONFIG=y +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x2000000 +CONFIG_OF_STDOUT_VIA_ALIAS=y +CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_MAXARGS=64 +CONFIG_SYS_BOOTM_LEN=0x4000000 +CONFIG_CMD_CACHE=y +CONFIG_OF_EMBED=y +CONFIG_CLK=y diff --git a/include/configs/bcm963158.h b/include/configs/bcm963158.h new file mode 100644 index 000000000000..b15c4111c967 --- /dev/null +++ b/include/configs/bcm963158.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/*
- (C) Copyright 2022 Broadcom Ltd.
- */
+#ifndef __BCM963158_H +#define __BCM963158_H
+#define CONFIG_SYS_SDRAM_BASE 0x00000000
+#endif

On Mon, Aug 22, 2022 at 11:19:44AM -0700, William Zhang wrote:
BCM63158 is a Broadcom B53 based DSL Gateway SoC. It is part of the BCA (Broadband Carrier Access origin) chipset family. Like other Broadband SoC, this patch adds it under CONFIG_BCM63158 chip config and CONFIG_ARCH_BCMBCA platform config.
This initial support includes a bare-bone implementation and dts with CPU subsystem, memory and ARM PL011 uart. This SoC is supported in the linux-next git repository so the dts and dtsi files are copied from linux.
The u-boot image can be loaded from flash or network to the entry point address in the memory and boot from there to the console.
Signed-off-by: William Zhang william.zhang@broadcom.com Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
For the series, applied to u-boot/master, thanks!

Now that BCM63158 is supported under CONFIG_ARCH_BCMBCA and CONFIG_BCM63158, remove the original ARCH_BCM63158 support and migrate configuration settings.
Signed-off-by: William Zhang william.zhang@broadcom.com
---
(no changes since v2)
Changes in v2: - Remove bcm963158_ram_defconfig per discussion with Philippe as a basic config version of bcm963158_defconfig is now added.
arch/arm/Kconfig | 8 +--- arch/arm/dts/Makefile | 3 -- board/broadcom/bcm963158/Kconfig | 17 ------- board/broadcom/bcm963158/MAINTAINERS | 6 --- board/broadcom/bcm963158/Makefile | 3 -- board/broadcom/bcm963158/bcm963158.c | 62 ------------------------- configs/bcm963158_ram_defconfig | 67 ---------------------------- include/configs/bcm963158.h | 4 ++ include/configs/broadcom_bcm963158.h | 32 ------------- 9 files changed, 5 insertions(+), 197 deletions(-) delete mode 100644 board/broadcom/bcm963158/Kconfig delete mode 100644 board/broadcom/bcm963158/MAINTAINERS delete mode 100644 board/broadcom/bcm963158/Makefile delete mode 100644 board/broadcom/bcm963158/bcm963158.c delete mode 100644 configs/bcm963158_ram_defconfig delete mode 100644 include/configs/broadcom_bcm963158.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0d4903a2eb5b..da4defa08466 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -665,12 +665,6 @@ config ARCH_BCM283X imply CMD_DM imply FAT_WRITE
-config ARCH_BCM63158 - bool "Broadcom BCM63158 family" - select DM - select OF_CONTROL - imply CMD_DM - config ARCH_BCM6753 bool "Broadcom BCM6753 family" select CPU_V7A @@ -706,6 +700,7 @@ config ARCH_BCMBCA bool "Broadcom broadband chip family" select DM select OF_CONTROL + imply CMD_DM
config TARGET_VEXPRESS_CA9X4 bool "Support vexpress_ca9x4" @@ -2284,7 +2279,6 @@ source "board/Marvell/octeontx2/Kconfig" source "board/armltd/vexpress/Kconfig" source "board/armltd/vexpress64/Kconfig" source "board/cortina/presidio-asic/Kconfig" -source "board/broadcom/bcm963158/Kconfig" source "board/broadcom/bcm96753ref/Kconfig" source "board/broadcom/bcm968360bg/Kconfig" source "board/broadcom/bcm968580xref/Kconfig" diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index a7fc3d7d7021..c55bc3569662 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1147,9 +1147,6 @@ dtb-$(CONFIG_ARCH_BCM283X) += \ bcm2837-rpi-cm3-io3.dtb \ bcm2711-rpi-4-b.dtb
-dtb-$(CONFIG_ARCH_BCM63158) += \ - bcm963158.dtb - dtb-$(CONFIG_ARCH_BCM68360) += \ bcm968360bg.dtb
diff --git a/board/broadcom/bcm963158/Kconfig b/board/broadcom/bcm963158/Kconfig deleted file mode 100644 index 08a8bc1c14d3..000000000000 --- a/board/broadcom/bcm963158/Kconfig +++ /dev/null @@ -1,17 +0,0 @@ -if TARGET_BCM963158 - -config SYS_VENDOR - default "broadcom" - -config SYS_BOARD - default "bcm963158" - -config SYS_CONFIG_NAME - default "broadcom_bcm963158" - -endif - -config TARGET_BCM963158 - bool "Support Broadcom bcm963158" - depends on ARCH_BCM63158 - select ARM64 diff --git a/board/broadcom/bcm963158/MAINTAINERS b/board/broadcom/bcm963158/MAINTAINERS deleted file mode 100644 index d28d971f9d36..000000000000 --- a/board/broadcom/bcm963158/MAINTAINERS +++ /dev/null @@ -1,6 +0,0 @@ -BROADCOM BCM963158 -M: Philippe Reynes philippe.reynes@softathome.com -S: Maintained -F: board/broadcom/bcm963158/ -F: include/configs/broadcom_bcm963158.h -F: configs/bcm963158_ram_defconfig diff --git a/board/broadcom/bcm963158/Makefile b/board/broadcom/bcm963158/Makefile deleted file mode 100644 index 0a902c9cf618..000000000000 --- a/board/broadcom/bcm963158/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ - -obj-y += bcm963158.o diff --git a/board/broadcom/bcm963158/bcm963158.c b/board/broadcom/bcm963158/bcm963158.c deleted file mode 100644 index 9feaee3c0fc4..000000000000 --- a/board/broadcom/bcm963158/bcm963158.c +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com - */ - -#include <common.h> -#include <fdtdec.h> -#include <init.h> -#include <linux/io.h> - -#ifdef CONFIG_ARM64 -#include <asm/armv8/mmu.h> - -static struct mm_region broadcom_bcm963158_mem_map[] = { - { - /* RAM */ - .virt = 0x00000000UL, - .phys = 0x00000000UL, - .size = 8UL * SZ_1G, - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | - PTE_BLOCK_INNER_SHARE - }, { - /* SoC */ - .virt = 0x80000000UL, - .phys = 0x80000000UL, - .size = 0xff80000000UL, - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | - PTE_BLOCK_NON_SHARE | - PTE_BLOCK_PXN | PTE_BLOCK_UXN - }, { - /* List terminator */ - 0, - } -}; - -struct mm_region *mem_map = broadcom_bcm963158_mem_map; -#endif - -int board_init(void) -{ - return 0; -} - -int dram_init(void) -{ - if (fdtdec_setup_mem_size_base() != 0) - printf("fdtdec_setup_mem_size_base() has failed\n"); - - return 0; -} - -int dram_init_banksize(void) -{ - fdtdec_setup_memory_banksize(); - - return 0; -} - -int print_cpuinfo(void) -{ - return 0; -} diff --git a/configs/bcm963158_ram_defconfig b/configs/bcm963158_ram_defconfig deleted file mode 100644 index 424eca7946b8..000000000000 --- a/configs/bcm963158_ram_defconfig +++ /dev/null @@ -1,67 +0,0 @@ -CONFIG_ARM=y -CONFIG_SKIP_LOWLEVEL_INIT=y -# CONFIG_ARM64_SUPPORT_AARCH32 is not set -CONFIG_ARCH_BCM63158=y -CONFIG_SYS_TEXT_BASE=0x10000000 -CONFIG_SYS_MALLOC_LEN=0x100000 -CONFIG_SYS_MALLOC_F_LEN=0x8000 -CONFIG_NR_DRAM_BANKS=1 -CONFIG_ENV_SIZE=0x2000 -CONFIG_DM_GPIO=y -CONFIG_DEFAULT_DEVICE_TREE="bcm963158" -CONFIG_SYS_LOAD_ADDR=0x10000000 -CONFIG_TARGET_BCM963158=y -CONFIG_ENV_VARS_UBOOT_CONFIG=y -CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x11000000 -CONFIG_FIT=y -CONFIG_FIT_SIGNATURE=y -CONFIG_FIT_RSASSA_PSS=y -CONFIG_FIT_VERBOSE=y -CONFIG_LEGACY_IMAGE_FORMAT=y -CONFIG_SUPPORT_RAW_INITRD=y -CONFIG_DISPLAY_BOARDINFO_LATE=y -CONFIG_HUSH_PARSER=y -CONFIG_SYS_MAXARGS=24 -CONFIG_SYS_CBSIZE=256 -CONFIG_SYS_PBSIZE=276 -CONFIG_SYS_BOOTM_LEN=0x1000000 -# CONFIG_CMD_LZMADEC is not set -# CONFIG_CMD_UNZIP is not set -# CONFIG_CMD_FLASH is not set -CONFIG_CMD_GPIO=y -CONFIG_CMD_MTD=y -CONFIG_CMD_NAND=y -CONFIG_CMD_CACHE=y -CONFIG_DOS_PARTITION=y -CONFIG_ISO_PARTITION=y -CONFIG_EFI_PARTITION=y -CONFIG_SYS_RELOC_GD_ENV_ADDR=y -# CONFIG_NET is not set -CONFIG_BLK=y -CONFIG_CLK=y -CONFIG_BCM6345_GPIO=y -CONFIG_LED=y -CONFIG_LED_BCM6858=y -CONFIG_LED_BLINK=y -# CONFIG_MMC is not set -CONFIG_MTD=y -CONFIG_DM_MTD=y -CONFIG_MTD_RAW_NAND=y -CONFIG_NAND_BRCMNAND=y -CONFIG_NAND_BRCMNAND_63158=y -CONFIG_SYS_NAND_ONFI_DETECTION=y -CONFIG_DM_SPI_FLASH=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPECIFY_CONSOLE_INDEX=y -CONFIG_CONS_INDEX=0 -CONFIG_DM_SERIAL=y -CONFIG_SERIAL_SEARCH_ALL=y -CONFIG_PL01X_SERIAL=y -CONFIG_SPI=y -CONFIG_DM_SPI=y -CONFIG_BCM63XX_HSSPI=y -CONFIG_SYSRESET=y -CONFIG_SYSRESET_WATCHDOG=y -CONFIG_WDT_BCM6345=y -# CONFIG_GENERATE_SMBIOS_TABLE is not set diff --git a/include/configs/bcm963158.h b/include/configs/bcm963158.h index b15c4111c967..f47396335868 100644 --- a/include/configs/bcm963158.h +++ b/include/configs/bcm963158.h @@ -8,4 +8,8 @@
#define CONFIG_SYS_SDRAM_BASE 0x00000000
+#ifdef CONFIG_MTD_RAW_NAND +#define CONFIG_SYS_MAX_NAND_DEVICE 1 +#endif /* CONFIG_MTD_RAW_NAND */ + #endif diff --git a/include/configs/broadcom_bcm963158.h b/include/configs/broadcom_bcm963158.h deleted file mode 100644 index 0c8d352be97c..000000000000 --- a/include/configs/broadcom_bcm963158.h +++ /dev/null @@ -1,32 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com - */ - -#include <linux/sizes.h> - -/* - * common - */ - -/* UART */ -#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, \ - 230400, 500000, 1500000 } -/* Memory usage */ - -/* - * 63158 - */ - -/* RAM */ -#define CONFIG_SYS_SDRAM_BASE 0x00000000 - -/* U-Boot */ - -#ifdef CONFIG_MTD_RAW_NAND -#define CONFIG_SYS_MAX_NAND_DEVICE 1 -#endif /* CONFIG_MTD_RAW_NAND */ - -/* - * bcm963158 - */

Hi William,
Le 22/08/2022 à 20:19, William Zhang a écrit :
Now that BCM63158 is supported under CONFIG_ARCH_BCMBCA and CONFIG_BCM63158, remove the original ARCH_BCM63158 support and migrate configuration settings.
Signed-off-by: William Zhang william.zhang@broadcom.com
Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
(no changes since v2)
Changes in v2:
- Remove bcm963158_ram_defconfig per discussion with Philippe as a
basic config version of bcm963158_defconfig is now added.
arch/arm/Kconfig | 8 +--- arch/arm/dts/Makefile | 3 -- board/broadcom/bcm963158/Kconfig | 17 ------- board/broadcom/bcm963158/MAINTAINERS | 6 --- board/broadcom/bcm963158/Makefile | 3 -- board/broadcom/bcm963158/bcm963158.c | 62 ------------------------- configs/bcm963158_ram_defconfig | 67 ---------------------------- include/configs/bcm963158.h | 4 ++ include/configs/broadcom_bcm963158.h | 32 ------------- 9 files changed, 5 insertions(+), 197 deletions(-) delete mode 100644 board/broadcom/bcm963158/Kconfig delete mode 100644 board/broadcom/bcm963158/MAINTAINERS delete mode 100644 board/broadcom/bcm963158/Makefile delete mode 100644 board/broadcom/bcm963158/bcm963158.c delete mode 100644 configs/bcm963158_ram_defconfig delete mode 100644 include/configs/broadcom_bcm963158.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0d4903a2eb5b..da4defa08466 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -665,12 +665,6 @@ config ARCH_BCM283X imply CMD_DM imply FAT_WRITE
-config ARCH_BCM63158
- bool "Broadcom BCM63158 family"
- select DM
- select OF_CONTROL
- imply CMD_DM
- config ARCH_BCM6753 bool "Broadcom BCM6753 family" select CPU_V7A
@@ -706,6 +700,7 @@ config ARCH_BCMBCA bool "Broadcom broadband chip family" select DM select OF_CONTROL
imply CMD_DM
config TARGET_VEXPRESS_CA9X4 bool "Support vexpress_ca9x4"
@@ -2284,7 +2279,6 @@ source "board/Marvell/octeontx2/Kconfig" source "board/armltd/vexpress/Kconfig" source "board/armltd/vexpress64/Kconfig" source "board/cortina/presidio-asic/Kconfig" -source "board/broadcom/bcm963158/Kconfig" source "board/broadcom/bcm96753ref/Kconfig" source "board/broadcom/bcm968360bg/Kconfig" source "board/broadcom/bcm968580xref/Kconfig" diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index a7fc3d7d7021..c55bc3569662 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1147,9 +1147,6 @@ dtb-$(CONFIG_ARCH_BCM283X) += \ bcm2837-rpi-cm3-io3.dtb \ bcm2711-rpi-4-b.dtb
-dtb-$(CONFIG_ARCH_BCM63158) += \
- bcm963158.dtb
- dtb-$(CONFIG_ARCH_BCM68360) += \ bcm968360bg.dtb
diff --git a/board/broadcom/bcm963158/Kconfig b/board/broadcom/bcm963158/Kconfig deleted file mode 100644 index 08a8bc1c14d3..000000000000 --- a/board/broadcom/bcm963158/Kconfig +++ /dev/null @@ -1,17 +0,0 @@ -if TARGET_BCM963158
-config SYS_VENDOR
- default "broadcom"
-config SYS_BOARD
- default "bcm963158"
-config SYS_CONFIG_NAME
- default "broadcom_bcm963158"
-endif
-config TARGET_BCM963158
- bool "Support Broadcom bcm963158"
- depends on ARCH_BCM63158
- select ARM64
diff --git a/board/broadcom/bcm963158/MAINTAINERS b/board/broadcom/bcm963158/MAINTAINERS deleted file mode 100644 index d28d971f9d36..000000000000 --- a/board/broadcom/bcm963158/MAINTAINERS +++ /dev/null @@ -1,6 +0,0 @@ -BROADCOM BCM963158 -M: Philippe Reynes philippe.reynes@softathome.com -S: Maintained -F: board/broadcom/bcm963158/ -F: include/configs/broadcom_bcm963158.h -F: configs/bcm963158_ram_defconfig diff --git a/board/broadcom/bcm963158/Makefile b/board/broadcom/bcm963158/Makefile deleted file mode 100644 index 0a902c9cf618..000000000000 --- a/board/broadcom/bcm963158/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+
-obj-y += bcm963158.o diff --git a/board/broadcom/bcm963158/bcm963158.c b/board/broadcom/bcm963158/bcm963158.c deleted file mode 100644 index 9feaee3c0fc4..000000000000 --- a/board/broadcom/bcm963158/bcm963158.c +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/*
- Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com
- */
-#include <common.h> -#include <fdtdec.h> -#include <init.h> -#include <linux/io.h>
-#ifdef CONFIG_ARM64 -#include <asm/armv8/mmu.h>
-static struct mm_region broadcom_bcm963158_mem_map[] = {
- {
/* RAM */
.virt = 0x00000000UL,
.phys = 0x00000000UL,
.size = 8UL * SZ_1G,
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
PTE_BLOCK_INNER_SHARE
- }, {
/* SoC */
.virt = 0x80000000UL,
.phys = 0x80000000UL,
.size = 0xff80000000UL,
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
PTE_BLOCK_NON_SHARE |
PTE_BLOCK_PXN | PTE_BLOCK_UXN
- }, {
/* List terminator */
0,
- }
-};
-struct mm_region *mem_map = broadcom_bcm963158_mem_map; -#endif
-int board_init(void) -{
- return 0;
-}
-int dram_init(void) -{
- if (fdtdec_setup_mem_size_base() != 0)
printf("fdtdec_setup_mem_size_base() has failed\n");
- return 0;
-}
-int dram_init_banksize(void) -{
- fdtdec_setup_memory_banksize();
- return 0;
-}
-int print_cpuinfo(void) -{
- return 0;
-} diff --git a/configs/bcm963158_ram_defconfig b/configs/bcm963158_ram_defconfig deleted file mode 100644 index 424eca7946b8..000000000000 --- a/configs/bcm963158_ram_defconfig +++ /dev/null @@ -1,67 +0,0 @@ -CONFIG_ARM=y -CONFIG_SKIP_LOWLEVEL_INIT=y -# CONFIG_ARM64_SUPPORT_AARCH32 is not set -CONFIG_ARCH_BCM63158=y -CONFIG_SYS_TEXT_BASE=0x10000000 -CONFIG_SYS_MALLOC_LEN=0x100000 -CONFIG_SYS_MALLOC_F_LEN=0x8000 -CONFIG_NR_DRAM_BANKS=1 -CONFIG_ENV_SIZE=0x2000 -CONFIG_DM_GPIO=y -CONFIG_DEFAULT_DEVICE_TREE="bcm963158" -CONFIG_SYS_LOAD_ADDR=0x10000000 -CONFIG_TARGET_BCM963158=y -CONFIG_ENV_VARS_UBOOT_CONFIG=y -CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x11000000 -CONFIG_FIT=y -CONFIG_FIT_SIGNATURE=y -CONFIG_FIT_RSASSA_PSS=y -CONFIG_FIT_VERBOSE=y -CONFIG_LEGACY_IMAGE_FORMAT=y -CONFIG_SUPPORT_RAW_INITRD=y -CONFIG_DISPLAY_BOARDINFO_LATE=y -CONFIG_HUSH_PARSER=y -CONFIG_SYS_MAXARGS=24 -CONFIG_SYS_CBSIZE=256 -CONFIG_SYS_PBSIZE=276 -CONFIG_SYS_BOOTM_LEN=0x1000000 -# CONFIG_CMD_LZMADEC is not set -# CONFIG_CMD_UNZIP is not set -# CONFIG_CMD_FLASH is not set -CONFIG_CMD_GPIO=y -CONFIG_CMD_MTD=y -CONFIG_CMD_NAND=y -CONFIG_CMD_CACHE=y -CONFIG_DOS_PARTITION=y -CONFIG_ISO_PARTITION=y -CONFIG_EFI_PARTITION=y -CONFIG_SYS_RELOC_GD_ENV_ADDR=y -# CONFIG_NET is not set -CONFIG_BLK=y -CONFIG_CLK=y -CONFIG_BCM6345_GPIO=y -CONFIG_LED=y -CONFIG_LED_BCM6858=y -CONFIG_LED_BLINK=y -# CONFIG_MMC is not set -CONFIG_MTD=y -CONFIG_DM_MTD=y -CONFIG_MTD_RAW_NAND=y -CONFIG_NAND_BRCMNAND=y -CONFIG_NAND_BRCMNAND_63158=y -CONFIG_SYS_NAND_ONFI_DETECTION=y -CONFIG_DM_SPI_FLASH=y -CONFIG_SPI_FLASH_MACRONIX=y -CONFIG_SPECIFY_CONSOLE_INDEX=y -CONFIG_CONS_INDEX=0 -CONFIG_DM_SERIAL=y -CONFIG_SERIAL_SEARCH_ALL=y -CONFIG_PL01X_SERIAL=y -CONFIG_SPI=y -CONFIG_DM_SPI=y -CONFIG_BCM63XX_HSSPI=y -CONFIG_SYSRESET=y -CONFIG_SYSRESET_WATCHDOG=y -CONFIG_WDT_BCM6345=y -# CONFIG_GENERATE_SMBIOS_TABLE is not set diff --git a/include/configs/bcm963158.h b/include/configs/bcm963158.h index b15c4111c967..f47396335868 100644 --- a/include/configs/bcm963158.h +++ b/include/configs/bcm963158.h @@ -8,4 +8,8 @@
#define CONFIG_SYS_SDRAM_BASE 0x00000000
+#ifdef CONFIG_MTD_RAW_NAND +#define CONFIG_SYS_MAX_NAND_DEVICE 1 +#endif /* CONFIG_MTD_RAW_NAND */
- #endif
diff --git a/include/configs/broadcom_bcm963158.h b/include/configs/broadcom_bcm963158.h deleted file mode 100644 index 0c8d352be97c..000000000000 --- a/include/configs/broadcom_bcm963158.h +++ /dev/null @@ -1,32 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/*
- Copyright (C) 2019 Philippe Reynes philippe.reynes@softathome.com
- */
-#include <linux/sizes.h>
-/*
- common
- */
-/* UART */ -#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, \
230400, 500000, 1500000 }
-/* Memory usage */
-/*
- 63158
- */
-/* RAM */ -#define CONFIG_SYS_SDRAM_BASE 0x00000000
-/* U-Boot */
-#ifdef CONFIG_MTD_RAW_NAND -#define CONFIG_SYS_MAX_NAND_DEVICE 1 -#endif /* CONFIG_MTD_RAW_NAND */
-/*
- bcm963158
- */

As CONFIG_ARCH_BCM63158 is replaced with CONFIG_BCM63158, update the Kconfig to use the new config symbol.
Signed-off-by: William Zhang william.zhang@broadcom.com
---
Changes in v3: -Update subject line to be more clear
drivers/gpio/Kconfig | 2 +- drivers/led/Kconfig | 2 +- drivers/mtd/nand/raw/Kconfig | 2 +- drivers/spi/Kconfig | 2 +- drivers/watchdog/Kconfig | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index aaa152fae73b..83f4f5089992 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -111,7 +111,7 @@ config BCM2835_GPIO config BCM6345_GPIO bool "BCM6345 GPIO driver" depends on DM_GPIO && (ARCH_BMIPS || ARCH_BCM68360 || \ - ARCH_BCM6858 || ARCH_BCM63158 || \ + ARCH_BCM6858 || BCM63158 || \ ARCH_BCM6753) help This driver supports the GPIO banks on BCM6345 SoCs. diff --git a/drivers/led/Kconfig b/drivers/led/Kconfig index ccdd7d7395c8..d777414dda8d 100644 --- a/drivers/led/Kconfig +++ b/drivers/led/Kconfig @@ -37,7 +37,7 @@ config LED_BCM6753
config LED_BCM6858 bool "LED Support for BCM6858" - depends on LED && (ARCH_BCM68360 || ARCH_BCM6858 || ARCH_BCM63158) + depends on LED && (ARCH_BCM68360 || ARCH_BCM6858 || BCM63158) help This option enables support for LEDs connected to the BCM6858 HW has blinking capabilities and up to 32 LEDs can be controlled. diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index ce67d1abde25..24c27b6ecf7f 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -121,7 +121,7 @@ config NAND_BRCMNAND_6858
config NAND_BRCMNAND_63158 bool "Support Broadcom NAND controller on bcm63158" - depends on NAND_BRCMNAND && ARCH_BCM63158 + depends on NAND_BRCMNAND && BCM63158 help Enable support for broadcom nand driver on bcm63158.
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 75b794548b22..0a666eee80e7 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -92,7 +92,7 @@ config ATMEL_SPI config BCM63XX_HSSPI bool "BCM63XX HSSPI driver" depends on (ARCH_BMIPS || ARCH_BCM68360 || \ - ARCH_BCM6858 || ARCH_BCM63158) + ARCH_BCM6858 || BCM63158) help Enable the BCM6328 HSSPI driver. This driver can be used to access the SPI NOR flash on platforms embedding this Broadcom diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 50e6a1efba51..ff4d1ee530d2 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -129,7 +129,7 @@ config WDT_AT91 config WDT_BCM6345 bool "BCM6345 watchdog timer support" depends on WDT && (ARCH_BMIPS || ARCH_BCM68360 || \ - ARCH_BCM6858 || ARCH_BCM63158 || \ + ARCH_BCM6858 || BCM63158 || \ ARCH_BCM6753) help Select this to enable watchdog timer for BCM6345 SoCs.

Hi William,
Le 22/08/2022 à 20:19, William Zhang a écrit :
As CONFIG_ARCH_BCM63158 is replaced with CONFIG_BCM63158, update the Kconfig to use the new config symbol.
Signed-off-by: William Zhang william.zhang@broadcom.com
Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
Changes in v3: -Update subject line to be more clear
drivers/gpio/Kconfig | 2 +- drivers/led/Kconfig | 2 +- drivers/mtd/nand/raw/Kconfig | 2 +- drivers/spi/Kconfig | 2 +- drivers/watchdog/Kconfig | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index aaa152fae73b..83f4f5089992 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -111,7 +111,7 @@ config BCM2835_GPIO config BCM6345_GPIO bool "BCM6345 GPIO driver" depends on DM_GPIO && (ARCH_BMIPS || ARCH_BCM68360 || \
ARCH_BCM6858 || ARCH_BCM63158 || \
help This driver supports the GPIO banks on BCM6345 SoCs.ARCH_BCM6858 || BCM63158 || \ ARCH_BCM6753)
diff --git a/drivers/led/Kconfig b/drivers/led/Kconfig index ccdd7d7395c8..d777414dda8d 100644 --- a/drivers/led/Kconfig +++ b/drivers/led/Kconfig @@ -37,7 +37,7 @@ config LED_BCM6753
config LED_BCM6858 bool "LED Support for BCM6858"
- depends on LED && (ARCH_BCM68360 || ARCH_BCM6858 || ARCH_BCM63158)
- depends on LED && (ARCH_BCM68360 || ARCH_BCM6858 || BCM63158) help This option enables support for LEDs connected to the BCM6858 HW has blinking capabilities and up to 32 LEDs can be controlled.
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index ce67d1abde25..24c27b6ecf7f 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -121,7 +121,7 @@ config NAND_BRCMNAND_6858
config NAND_BRCMNAND_63158 bool "Support Broadcom NAND controller on bcm63158"
depends on NAND_BRCMNAND && ARCH_BCM63158
depends on NAND_BRCMNAND && BCM63158 help Enable support for broadcom nand driver on bcm63158.
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 75b794548b22..0a666eee80e7 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -92,7 +92,7 @@ config ATMEL_SPI config BCM63XX_HSSPI bool "BCM63XX HSSPI driver" depends on (ARCH_BMIPS || ARCH_BCM68360 || \
ARCH_BCM6858 || ARCH_BCM63158)
help Enable the BCM6328 HSSPI driver. This driver can be used to access the SPI NOR flash on platforms embedding this BroadcomARCH_BCM6858 || BCM63158)
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 50e6a1efba51..ff4d1ee530d2 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -129,7 +129,7 @@ config WDT_AT91 config WDT_BCM6345 bool "BCM6345 watchdog timer support" depends on WDT && (ARCH_BMIPS || ARCH_BCM68360 || \
ARCH_BCM6858 || ARCH_BCM63158 || \
help Select this to enable watchdog timer for BCM6345 SoCs.ARCH_BCM6858 || BCM63158 || \ ARCH_BCM6753)

Since ARCH_BCM63158 SoC support is merged into ARCH_BCMBCA, add BCM63158 maintainer Philippe to bcmbca maintainer list.
Signed-off-by: William Zhang william.zhang@broadcom.com ---
(no changes since v1)
MAINTAINERS | 1 + 1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS index 5b219d62f6bf..d0a5b2352cc8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -213,6 +213,7 @@ M: Anand Gore anand.gore@broadcom.com M: William Zhang william.zhang@broadcom.com M: Kursad Oney kursad.oney@broadcom.com M: Joel Peshkin joel.peshkin@broadcom.com +M: Philippe Reynes philippe.reynes@softathome.com S: Maintained F: arch/arm/mach-bcmbca/ F: board/broadcom/bcmbca/

Hi William,
Le 22/08/2022 à 20:19, William Zhang a écrit :
Since ARCH_BCM63158 SoC support is merged into ARCH_BCMBCA, add BCM63158 maintainer Philippe to bcmbca maintainer list.
Signed-off-by: William Zhang william.zhang@broadcom.com
Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
(no changes since v1)
MAINTAINERS | 1 + 1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS index 5b219d62f6bf..d0a5b2352cc8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -213,6 +213,7 @@ M: Anand Gore anand.gore@broadcom.com M: William Zhang william.zhang@broadcom.com M: Kursad Oney kursad.oney@broadcom.com M: Joel Peshkin joel.peshkin@broadcom.com +M: Philippe Reynes philippe.reynes@softathome.com S: Maintained F: arch/arm/mach-bcmbca/ F: board/broadcom/bcmbca/

BCM63158 carries the CONFIG_SYSRESET from the original configuration. It provide reset_cpu function already so need to define weak version of the dummy reset_cpu for other BCMBCA SoCs to avoid linking error.
Signed-off-by: William Zhang william.zhang@broadcom.com
---
Changes in v3: -Fix reset_cpu function prototype.
board/broadcom/bcmbca/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/broadcom/bcmbca/board.c b/board/broadcom/bcmbca/board.c index 4aa1d659d5c7..bcecb4d78392 100644 --- a/board/broadcom/bcmbca/board.c +++ b/board/broadcom/bcmbca/board.c @@ -30,6 +30,6 @@ int print_cpuinfo(void) return 0; }
-void reset_cpu(ulong addr) +__weak void reset_cpu(void) { }

Hi William
Le 22/08/2022 à 20:19, William Zhang a écrit :
BCM63158 carries the CONFIG_SYSRESET from the original configuration. It provide reset_cpu function already so need to define weak version of the dummy reset_cpu for other BCMBCA SoCs to avoid linking error.
Signed-off-by: William Zhang william.zhang@broadcom.com
Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
Changes in v3: -Fix reset_cpu function prototype.
board/broadcom/bcmbca/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/broadcom/bcmbca/board.c b/board/broadcom/bcmbca/board.c index 4aa1d659d5c7..bcecb4d78392 100644 --- a/board/broadcom/bcmbca/board.c +++ b/board/broadcom/bcmbca/board.c @@ -30,6 +30,6 @@ int print_cpuinfo(void) return 0; }
-void reset_cpu(ulong addr) +__weak void reset_cpu(void) { }
participants (3)
-
Philippe REYNES
-
Tom Rini
-
William Zhang