All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: William Zhang <william.zhang@broadcom.com>
Cc: U-Boot Mailing List <u-boot@lists.denx.de>,
	Kursad Oney <kursad.oney@broadcom.com>,
	Anand Gore <anand.gore@broadcom.com>,
	Bharat Gooty <bharat.gooty@broadcom.com>,
	Christian Hewitt <christianshewitt@gmail.com>,
	Fabio Estevam <festevam@denx.de>,
	Jagan Teki <jagan@amarulasolutions.com>,
	Joel Peshkin <joel.peshkin@broadcom.com>,
	Kever Yang <kever.yang@rock-chips.com>,
	Peter Robinson <pbrobinson@gmail.com>,
	Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>,
	Simon Glass <sjg@chromium.org>,
	Tim Harvey <tharvey@gateworks.com>, Tom Rini <trini@konsulko.com>,
	"Ying-Chun Liu (PaulLiu)" <paul.liu@linaro.org>
Subject: Re: [PATCH 1/1] arm: bcmbca: introduce the bcmbca architecture and 47622 SOC
Date: Fri, 25 Mar 2022 01:13:38 +0000	[thread overview]
Message-ID: <20220325011338.789c2bce@slackpad.lan> (raw)
In-Reply-To: <20220323190202.1.I299769afcaf6c3274569466c1bcce0d13f4fdbb8@changeid>

On Wed, 23 Mar 2022 19:03:48 -0700
William Zhang <william.zhang@broadcom.com> wrote:

Hi,

> This is the initial support for Broadcom's ARM-based 47622 SOC.
> 
> In this change, our first SOC is an armv7 platform called 47622. The
> initial support includes a bare-bone implementation and dts with ARM
> PL011 uart.

As Tom said, you need to run the DT through the kernel review first.
To maybe save you one round there, see below my comments.

> The SOC-specific code resides in arch/arm/mach-bcmbca/<soc> and board
> related code is in board/broadcom/bcmba.
> 
> The u-boot image can be loaded from flash or network to the entry point
> address in the memory and boot from there.
> 
> Signed-off-by: William Zhang <william.zhang@broadcom.com>
> Signed-off-by: Kursad Oney <kursad.oney@broadcom.com>
> Signed-off-by: Anand Gore <anand.gore@broadcom.com>
> ---
> 
>  MAINTAINERS                            | 11 ++++++++
>  arch/arm/Kconfig                       |  7 ++++++
>  arch/arm/Makefile                      |  1 +
>  arch/arm/dts/Makefile                  |  3 +++
>  arch/arm/dts/bcm47622.dtsi             | 25 ++++++++++++++++++
>  arch/arm/dts/bcm947622.dts             | 31 +++++++++++++++++++++++
>  arch/arm/mach-bcmbca/Kconfig           | 17 +++++++++++++
>  arch/arm/mach-bcmbca/Makefile          |  6 +++++
>  arch/arm/mach-bcmbca/bcm47622/Kconfig  | 17 +++++++++++++
>  arch/arm/mach-bcmbca/bcm47622/Makefile |  5 ++++
>  board/broadcom/bcmbca/Kconfig          | 17 +++++++++++++
>  board/broadcom/bcmbca/Makefile         |  5 ++++
>  board/broadcom/bcmbca/board.c          | 35 ++++++++++++++++++++++++++
>  configs/bcm947622_defconfig            | 18 +++++++++++++
>  include/configs/bcm947622.h            | 21 ++++++++++++++++
>  15 files changed, 219 insertions(+)
>  create mode 100644 arch/arm/dts/bcm47622.dtsi
>  create mode 100644 arch/arm/dts/bcm947622.dts
>  create mode 100644 arch/arm/mach-bcmbca/Kconfig
>  create mode 100644 arch/arm/mach-bcmbca/Makefile
>  create mode 100644 arch/arm/mach-bcmbca/bcm47622/Kconfig
>  create mode 100644 arch/arm/mach-bcmbca/bcm47622/Makefile
>  create mode 100644 board/broadcom/bcmbca/Kconfig
>  create mode 100644 board/broadcom/bcmbca/Makefile
>  create mode 100644 board/broadcom/bcmbca/board.c
>  create mode 100644 configs/bcm947622_defconfig
>  create mode 100644 include/configs/bcm947622.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 96582fc677..ef4a9b04e8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -195,6 +195,17 @@ F:	drivers/pinctrl/broadcom/
>  F:	configs/rpi_*
>  T:	git https://source.denx.de/u-boot/custodians/u-boot-arm.git
>  
> +ARM BROADCOM BCMBCA
> +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>
> +S:	Maintained
> +F:	arch/arm/mach-bcmbca/
> +F:	board/broadcom/bcmbca/
> +F:	configs/bcm947622_defconfig
> +F:	include/configs/bcm947622.h
> +
>  ARM BROADCOM BCMSTB
>  M:	Thomas Fitzsimmons <fitzsim@fitzsim.org>
>  S:	Maintained
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 4567c183fb..9a75d2e6bb 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -641,6 +641,11 @@ config ARCH_BCMSTB
>  	  This enables support for Broadcom ARM-based set-top box
>  	  chipsets, including the 7445 family of chips.
>  
> +config ARCH_BCMBCA
> +	bool "Broadcom broadband chip family"
> +	select DM
> +	select OF_CONTROL
> +
>  config TARGET_VEXPRESS_CA9X4
>  	bool "Support vexpress_ca9x4"
>  	select CPU_V7A
> @@ -2092,6 +2097,8 @@ source "arch/arm/mach-at91/Kconfig"
>  
>  source "arch/arm/mach-bcm283x/Kconfig"
>  
> +source "arch/arm/mach-bcmbca/Kconfig"
> +
>  source "arch/arm/mach-bcmstb/Kconfig"
>  
>  source "arch/arm/mach-davinci/Kconfig"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index ad757e982e..0fd127e0e7 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -59,6 +59,7 @@ machine-$(CONFIG_ARCH_APPLE)		+= apple
>  machine-$(CONFIG_ARCH_ASPEED)		+= aspeed
>  machine-$(CONFIG_ARCH_AT91)		+= at91
>  machine-$(CONFIG_ARCH_BCM283X)		+= bcm283x
> +machine-$(CONFIG_ARCH_BCMBCA)		+= bcmbca
>  machine-$(CONFIG_ARCH_BCMSTB)		+= bcmstb
>  machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
>  machine-$(CONFIG_ARCH_EXYNOS)		+= exynos
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 644ba961a2..448347d278 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -1112,6 +1112,9 @@ dtb-$(CONFIG_TARGET_BCMNS3) += ns3-board.dtb
>  
>  dtb-$(CONFIG_ARCH_BCMSTB) += bcm7xxx.dtb
>  
> +dtb-$(CONFIG_BCM47622) += \
> +	bcm947622.dtb
> +
>  dtb-$(CONFIG_ASPEED_AST2500) += ast2500-evb.dtb
>  dtb-$(CONFIG_ASPEED_AST2600) += ast2600-evb.dtb
>  
> diff --git a/arch/arm/dts/bcm47622.dtsi b/arch/arm/dts/bcm47622.dtsi
> new file mode 100644
> index 0000000000..1fe05daa67
> --- /dev/null
> +++ b/arch/arm/dts/bcm47622.dtsi
> @@ -0,0 +1,25 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2019 Broadcom Ltd.
> + */
> +
> +#include "skeleton.dtsi"

skeleton is not used anymore in the kernel.

> +
> +/ {
> +	compatible = "brcm,bcm47622";
> +	#address-cells = <0x1>;
> +	#size-cells = <0x1>;

Just use decimals: ... = <1>;

> +
> +	ubus@ff800000 {

just: bus@ff800000 {

Actually not sure you need that at all. Are there going to be more
devices later?

> +		compatible = "simple-bus";
> +		#address-cells = <0x1>;
> +		#size-cells = <0x1>;
> +
> +		uart0: serial@ff812000 {
> +			compatible = "arm,pl011", "arm,primecell";
> +			reg = <0xff812000 0x1000>;
> +			clock = <50000000>;

This is not an official property. Please use a fixed-clock and the
clocks property.

In general, once you have those files in the kernel tree, run your DT
through "make dtbs_check". This will report a lot of unrelated failures
initially, so ignore the first run, "touch" your .dts file, then re-run.

If this SoC contains Cortex-A7 cores, then please also add the GIC, arch
timer and CPU nodes, for basic functionality.

Cheers,
Andre


> +			status = "disabled";
> +		};
> +	};
> +};
> diff --git a/arch/arm/dts/bcm947622.dts b/arch/arm/dts/bcm947622.dts
> new file mode 100644
> index 0000000000..e241c4ec56
> --- /dev/null
> +++ b/arch/arm/dts/bcm947622.dts
> @@ -0,0 +1,31 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright 2019 Broadcom Ltd.
> + */
> +
> +/dts-v1/;
> +
> +#include "bcm47622.dtsi"
> +
> +/ {
> +	model = "Broadcom bcm947622";
> +	compatible = "broadcom,bcm947622", "brcm,bcm947622";
> +
> +	aliases {
> +		serial0 = &uart0;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <0x0 0x08000000>;
> +	};
> +};
> +
> +&uart0 {
> +	status = "okay";
> +};
> +
> diff --git a/arch/arm/mach-bcmbca/Kconfig b/arch/arm/mach-bcmbca/Kconfig
> new file mode 100644
> index 0000000000..2d49380f87
> --- /dev/null
> +++ b/arch/arm/mach-bcmbca/Kconfig
> @@ -0,0 +1,17 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2022 Broadcom Ltd
> +#
> +
> +if ARCH_BCMBCA
> +
> +config BCM47622
> +	bool "Support for Broadcom 47622 Family"
> +	select SYS_ARCH_TIMER
> +	select CPU_V7A
> +	select DM_SERIAL
> +	select PL01X_SERIAL
> +
> +endif
> +
> +source "arch/arm/mach-bcmbca/bcm47622/Kconfig"
> diff --git a/arch/arm/mach-bcmbca/Makefile b/arch/arm/mach-bcmbca/Makefile
> new file mode 100644
> index 0000000000..072d4ea7b5
> --- /dev/null
> +++ b/arch/arm/mach-bcmbca/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2022 Broadcom Ltd
> +#
> +
> +obj-$(CONFIG_BCM47622) += bcm47622/
> diff --git a/arch/arm/mach-bcmbca/bcm47622/Kconfig b/arch/arm/mach-bcmbca/bcm47622/Kconfig
> new file mode 100644
> index 0000000000..bce30892e3
> --- /dev/null
> +++ b/arch/arm/mach-bcmbca/bcm47622/Kconfig
> @@ -0,0 +1,17 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2022 Broadcom Ltd
> +#
> +
> +if BCM47622
> +
> +config TARGET_BCM947622
> +	bool "Broadcom 47622 Reference Board"
> +	depends on ARCH_BCMBCA
> +
> +config SYS_SOC
> +	default "bcm47622"
> +
> +source "board/broadcom/bcmbca/Kconfig"
> +
> +endif
> diff --git a/arch/arm/mach-bcmbca/bcm47622/Makefile b/arch/arm/mach-bcmbca/bcm47622/Makefile
> new file mode 100644
> index 0000000000..beb979af75
> --- /dev/null
> +++ b/arch/arm/mach-bcmbca/bcm47622/Makefile
> @@ -0,0 +1,5 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2022 Broadcom Ltd
> +#
> +obj- += dummy.o
> diff --git a/board/broadcom/bcmbca/Kconfig b/board/broadcom/bcmbca/Kconfig
> new file mode 100644
> index 0000000000..63d4252da6
> --- /dev/null
> +++ b/board/broadcom/bcmbca/Kconfig
> @@ -0,0 +1,17 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2022 Broadcom Ltd
> +#
> +
> +config SYS_BOARD
> +	default "bcmbca"
> +
> +config SYS_VENDOR
> +	default "broadcom"
> +
> +if TARGET_BCM947622
> +
> +config SYS_CONFIG_NAME
> +	default "bcm947622"
> +
> +endif
> diff --git a/board/broadcom/bcmbca/Makefile b/board/broadcom/bcmbca/Makefile
> new file mode 100644
> index 0000000000..8f06c3111b
> --- /dev/null
> +++ b/board/broadcom/bcmbca/Makefile
> @@ -0,0 +1,5 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2022 Broadcom Ltd
> +
> +obj-y	+= board.o
> diff --git a/board/broadcom/bcmbca/board.c b/board/broadcom/bcmbca/board.c
> new file mode 100644
> index 0000000000..4aa1d659d5
> --- /dev/null
> +++ b/board/broadcom/bcmbca/board.c
> @@ -0,0 +1,35 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2022 Broadcom Ltd.
> + */
> +
> +#include <common.h>
> +#include <fdtdec.h>
> +
> +int board_init(void)
> +{
> +	return 0;
> +}
> +
> +int dram_init(void)
> +{
> +	if (fdtdec_setup_mem_size_base() != 0)
> +		puts("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;
> +}
> +
> +void reset_cpu(ulong addr)
> +{
> +}
> diff --git a/configs/bcm947622_defconfig b/configs/bcm947622_defconfig
> new file mode 100644
> index 0000000000..c8d14820af
> --- /dev/null
> +++ b/configs/bcm947622_defconfig
> @@ -0,0 +1,18 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_BCMBCA=y
> +CONFIG_SYS_TEXT_BASE=0x10000000
> +CONFIG_SYS_MALLOC_LEN=0x2000000
> +CONFIG_SYS_MALLOC_F_LEN=0x8000
> +CONFIG_BCM47622=y
> +CONFIG_TARGET_BCM947622=y
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_DEFAULT_DEVICE_TREE="bcm947622"
> +CONFIG_IDENT_STRING=" Broadcom BCM47622"
> +CONFIG_ENV_VARS_UBOOT_CONFIG=y
> +CONFIG_SYS_LOAD_ADDR=0x10000000
> +CONFIG_OF_STDOUT_VIA_ALIAS=y
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_HUSH_PARSER=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_OF_EMBED=y
> +CONFIG_CLK=y
> diff --git a/include/configs/bcm947622.h b/include/configs/bcm947622.h
> new file mode 100644
> index 0000000000..7c80e88be0
> --- /dev/null
> +++ b/include/configs/bcm947622.h
> @@ -0,0 +1,21 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * (C) Copyright 2022 Broadcom Ltd.
> + */
> +
> +#ifndef __BCM947622_H
> +#define __BCM947622_H
> +#include <linux/sizes.h>
> +
> +#define CONFIG_SYS_MAXARGS		64
> +#define CONFIG_SYS_BOOTM_LEN		(32 * 1024 * 1024)
> +
> +/* UART */
> +#define CONFIG_SYS_BAUDRATE_TABLE	{ 115200 }
> +
> +#define CONFIG_SYS_SDRAM_BASE		0x00000000
> +
> +#define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_TEXT_BASE + SZ_16M)
> +
> +#define COUNTER_FREQUENCY		50000000
> +#endif


  parent reply	other threads:[~2022-03-25  1:33 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-24  2:03 [PATCH 0/1] arm: bcmbca: introduce the bcmbca architecture and 47622 SOC William Zhang
2022-03-24  2:03 ` [PATCH 1/1] " William Zhang
2022-03-24  3:08   ` Tom Rini
2022-03-24  4:21     ` William Zhang
2022-03-24 18:53     ` William Zhang
2022-03-24 18:58       ` Tom Rini
2022-03-24 21:12         ` William Zhang
2022-03-25  1:13   ` Andre Przywara [this message]
2022-03-25  4:52     ` William Zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220325011338.789c2bce@slackpad.lan \
    --to=andre.przywara@arm.com \
    --cc=anand.gore@broadcom.com \
    --cc=bharat.gooty@broadcom.com \
    --cc=christianshewitt@gmail.com \
    --cc=festevam@denx.de \
    --cc=jagan@amarulasolutions.com \
    --cc=joel.peshkin@broadcom.com \
    --cc=kever.yang@rock-chips.com \
    --cc=kursad.oney@broadcom.com \
    --cc=paul.liu@linaro.org \
    --cc=pbrobinson@gmail.com \
    --cc=rayagonda.kokatanur@broadcom.com \
    --cc=sjg@chromium.org \
    --cc=tharvey@gateworks.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=william.zhang@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.