mbox series

[0/4] arm: bcmbca: add basic support for more Broadcom BCA SoCs

Message ID 20220806013403.1344-1-william.zhang@broadcom.com
Headers show
Series arm: bcmbca: add basic support for more Broadcom BCA SoCs | expand

Message

William Zhang Aug. 6, 2022, 1:33 a.m. UTC
Broadcom BCA (Broadband Carrier Access origin) chipset family includes
DSL, PON and WLAN access point and gateway SoC. Now that the ARCH_BCMBCA
architecture and its first SoC BCM47622 are supported in u-boot 2022.07,
this patch series add the basic support for following BCA chips under
ARCH_BCMBCA: BCM4908, BCM4912, BCM63146 and BCM6813.

This patch series applies on top of the my previous patch [1].

[1] https://lists.denx.de/pipermail/u-boot/2022-August/491060.html


William Zhang (4):
  arm: bcmbca: add bcm63146 SoC support
  arm: bcmbca: add bcm4912 SoC support
  arm: bcmbca: add bcm6813 SoC support
  arm: bcmbca: add bcm4908 SoC support

 MAINTAINERS                               |   4 +
 arch/arm/dts/Makefile                     |   8 ++
 arch/arm/dts/bcm4908.dtsi                 | 127 +++++++++++++++++++++
 arch/arm/dts/bcm4912.dtsi                 | 128 ++++++++++++++++++++++
 arch/arm/dts/bcm63146.dtsi                | 110 +++++++++++++++++++
 arch/arm/dts/bcm6813.dtsi                 | 128 ++++++++++++++++++++++
 arch/arm/dts/bcm94908.dts                 |  30 +++++
 arch/arm/dts/bcm94912.dts                 |  30 +++++
 arch/arm/dts/bcm963146.dts                |  30 +++++
 arch/arm/dts/bcm96813.dts                 |  30 +++++
 arch/arm/mach-bcmbca/Kconfig              |  32 ++++++
 arch/arm/mach-bcmbca/Makefile             |   4 +
 arch/arm/mach-bcmbca/bcm4908/Kconfig      |  17 +++
 arch/arm/mach-bcmbca/bcm4908/Makefile     |   5 +
 arch/arm/mach-bcmbca/bcm4908/mmu_table.c  |  32 ++++++
 arch/arm/mach-bcmbca/bcm4912/Kconfig      |  17 +++
 arch/arm/mach-bcmbca/bcm4912/Makefile     |   5 +
 arch/arm/mach-bcmbca/bcm4912/mmu_table.c  |  32 ++++++
 arch/arm/mach-bcmbca/bcm63146/Kconfig     |  17 +++
 arch/arm/mach-bcmbca/bcm63146/Makefile    |   5 +
 arch/arm/mach-bcmbca/bcm63146/mmu_table.c |  32 ++++++
 arch/arm/mach-bcmbca/bcm6813/Kconfig      |  17 +++
 arch/arm/mach-bcmbca/bcm6813/Makefile     |   5 +
 arch/arm/mach-bcmbca/bcm6813/mmu_table.c  |  32 ++++++
 board/broadcom/bcmbca/Kconfig             |  28 +++++
 configs/bcm94908_defconfig                |  23 ++++
 configs/bcm94912_defconfig                |  23 ++++
 configs/bcm963146_defconfig               |  23 ++++
 configs/bcm96813_defconfig                |  23 ++++
 include/configs/bcm94908.h                |  11 ++
 include/configs/bcm94912.h                |  11 ++
 include/configs/bcm963146.h               |  11 ++
 include/configs/bcm96813.h                |  11 ++
 33 files changed, 1041 insertions(+)
 create mode 100644 arch/arm/dts/bcm4908.dtsi
 create mode 100644 arch/arm/dts/bcm4912.dtsi
 create mode 100644 arch/arm/dts/bcm63146.dtsi
 create mode 100644 arch/arm/dts/bcm6813.dtsi
 create mode 100644 arch/arm/dts/bcm94908.dts
 create mode 100644 arch/arm/dts/bcm94912.dts
 create mode 100644 arch/arm/dts/bcm963146.dts
 create mode 100644 arch/arm/dts/bcm96813.dts
 create mode 100644 arch/arm/mach-bcmbca/bcm4908/Kconfig
 create mode 100644 arch/arm/mach-bcmbca/bcm4908/Makefile
 create mode 100644 arch/arm/mach-bcmbca/bcm4908/mmu_table.c
 create mode 100644 arch/arm/mach-bcmbca/bcm4912/Kconfig
 create mode 100644 arch/arm/mach-bcmbca/bcm4912/Makefile
 create mode 100644 arch/arm/mach-bcmbca/bcm4912/mmu_table.c
 create mode 100644 arch/arm/mach-bcmbca/bcm63146/Kconfig
 create mode 100644 arch/arm/mach-bcmbca/bcm63146/Makefile
 create mode 100644 arch/arm/mach-bcmbca/bcm63146/mmu_table.c
 create mode 100644 arch/arm/mach-bcmbca/bcm6813/Kconfig
 create mode 100644 arch/arm/mach-bcmbca/bcm6813/Makefile
 create mode 100644 arch/arm/mach-bcmbca/bcm6813/mmu_table.c
 create mode 100644 configs/bcm94908_defconfig
 create mode 100644 configs/bcm94912_defconfig
 create mode 100644 configs/bcm963146_defconfig
 create mode 100644 configs/bcm96813_defconfig
 create mode 100644 include/configs/bcm94908.h
 create mode 100644 include/configs/bcm94912.h
 create mode 100644 include/configs/bcm963146.h
 create mode 100644 include/configs/bcm96813.h

Comments

Florian Fainelli Aug. 9, 2022, 3:29 a.m. UTC | #1
On 8/5/2022 6:33 PM, William Zhang wrote:
> Broadcom BCA (Broadband Carrier Access origin) chipset family includes
> DSL, PON and WLAN access point and gateway SoC. Now that the ARCH_BCMBCA
> architecture and its first SoC BCM47622 are supported in u-boot 2022.07,
> this patch series add the basic support for following BCA chips under
> ARCH_BCMBCA: BCM4908, BCM4912, BCM63146 and BCM6813.
> 
> This patch series applies on top of the my previous patch [1].
> 
> [1] https://lists.denx.de/pipermail/u-boot/2022-August/491060.html

Looks good to me, thanks William! On the mmu_table.c implementation 
maybe just a few nits:

- should not we do an early parsing of the memory node for the given 
board(s) to ensure that we map no more than the amount of available DRAM?

- the exact same file is currently being re-used, so it would make sense 
to make it a common object

- you could create a memory mapping for the AXI bus region right away to 
avoid forgetting about it later if you start bringing up drivers that 
make use of that peripheral region

Thanks!
William Zhang Aug. 9, 2022, 5:51 a.m. UTC | #2
Hi Florian,

Thanks for the review!  Please see my comments inline blow,

On 08/08/2022 08:29 PM, Florian Fainelli wrote:
> 
> 
> On 8/5/2022 6:33 PM, William Zhang wrote:
>> Broadcom BCA (Broadband Carrier Access origin) chipset family includes
>> DSL, PON and WLAN access point and gateway SoC. Now that the ARCH_BCMBCA
>> architecture and its first SoC BCM47622 are supported in u-boot 2022.07,
>> this patch series add the basic support for following BCA chips under
>> ARCH_BCMBCA: BCM4908, BCM4912, BCM63146 and BCM6813.
>>
>> This patch series applies on top of the my previous patch [1].
>>
>> [1] https://lists.denx.de/pipermail/u-boot/2022-August/491060.html
> 
> Looks good to me, thanks William! On the mmu_table.c implementation 
> maybe just a few nits:
> 
> - should not we do an early parsing of the memory node for the given 
> board(s) to ensure that we map no more than the amount of available DRAM?
> 
Yes there will be a patch after all these SoC patches to set the ddr 
size during the dram_init based on the actually memory size.

> - the exact same file is currently being re-used, so it would make sense 
> to make it a common object
For these initial soc support patches,  I just include the ddr and 
periph block and they happen to be the same range. But different SoC has 
different ip block address as we add more more blocks/drivers late. To 
avoid many ifdef,  I would prefer to have one file per chip.

> 
> - you could create a memory mapping for the AXI bus region right away to 
> avoid forgetting about it later if you start bringing up drivers that 
> make use of that peripheral region
> 
Yeah I could but we won't forget either because system will crash if we 
miss that entry in the mmu table.  IMHO it is better to limit the access 
than opening a wide range that we don't use.  We can catch 
invalid/unintended access by only allowing the regions that we need to 
access.

> Thanks!