[U-Boot] [PATCH v4 1/1] board: arm: Add support for Broadcom BCM7445

Bin Meng bmeng.cn at gmail.com
Mon Aug 26 15:54:35 UTC 2019


Hi Thomas,

On Sat, Jun 9, 2018 at 6:06 AM Thomas Fitzsimmons <fitzsim at fitzsim.org> wrote:
>
> Add support for loading U-Boot on the Broadcom 7445 SoC.  This port
> assumes Broadcom's BOLT bootloader is acting as the second stage
> bootloader, and U-Boot is acting as the third stage bootloader, loaded
> as an ELF program by BOLT.
>
> Signed-off-by: Thomas Fitzsimmons <fitzsim at fitzsim.org>
> Cc: Stefan Roese <sr at denx.de>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: Florian Fainelli <f.fainelli at gmail.com>
> ---
> Changes for v4:
>    - Use high timer register for get_ticks
>    - Move hard-coded register addresses from Kconfig to header
>    - Document I-cache/D-cache expectation
>
>  MAINTAINERS                                     |  10 +
>  arch/arm/Kconfig                                |  12 +
>  arch/arm/Makefile                               |   1 +
>  arch/arm/mach-bcmstb/Kconfig                    |  36 ++
>  arch/arm/mach-bcmstb/Makefile                   |   8 +
>  arch/arm/mach-bcmstb/include/mach/gpio.h        |  11 +
>  arch/arm/mach-bcmstb/include/mach/hardware.h    |  11 +
>  arch/arm/mach-bcmstb/include/mach/prior_stage.h |  30 ++
>  arch/arm/mach-bcmstb/include/mach/sdhci.h       |  15 +
>  arch/arm/mach-bcmstb/include/mach/timer.h       |  13 +
>  arch/arm/mach-bcmstb/lowlevel_init.S            |  21 ++
>  board/broadcom/bcmstb/MAINTAINERS               |   7 +
>  board/broadcom/bcmstb/Makefile                  |   8 +
>  board/broadcom/bcmstb/bcmstb.c                  | 194 +++++++++++
>  configs/bcm7445_defconfig                       |  27 ++
>  doc/README.bcm7xxx                              | 150 ++++++++
>  drivers/mmc/Kconfig                             |  11 +
>  drivers/mmc/Makefile                            |   1 +
>  drivers/mmc/bcmstb_sdhci.c                      |  67 ++++
>  drivers/spi/Kconfig                             |   7 +
>  drivers/spi/Makefile                            |   1 +
>  drivers/spi/bcmstb_spi.c                        | 439 ++++++++++++++++++++++++
>  drivers/spi/spi-uclass.c                        |   2 +-
>  dts/Kconfig                                     |   7 +
>  include/configs/bcm7445.h                       |  26 ++
>  include/configs/bcmstb.h                        | 183 ++++++++++
>  include/fdtdec.h                                |   4 +
>  lib/fdtdec.c                                    |   4 +
>  28 files changed, 1305 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/mach-bcmstb/Kconfig
>  create mode 100644 arch/arm/mach-bcmstb/Makefile
>  create mode 100644 arch/arm/mach-bcmstb/include/mach/gpio.h
>  create mode 100644 arch/arm/mach-bcmstb/include/mach/hardware.h
>  create mode 100644 arch/arm/mach-bcmstb/include/mach/prior_stage.h
>  create mode 100644 arch/arm/mach-bcmstb/include/mach/sdhci.h
>  create mode 100644 arch/arm/mach-bcmstb/include/mach/timer.h
>  create mode 100644 arch/arm/mach-bcmstb/lowlevel_init.S
>  create mode 100644 board/broadcom/bcmstb/MAINTAINERS
>  create mode 100644 board/broadcom/bcmstb/Makefile
>  create mode 100644 board/broadcom/bcmstb/bcmstb.c
>  create mode 100644 configs/bcm7445_defconfig
>  create mode 100644 doc/README.bcm7xxx
>  create mode 100644 drivers/mmc/bcmstb_sdhci.c
>  create mode 100644 drivers/spi/bcmstb_spi.c
>  create mode 100644 include/configs/bcm7445.h
>  create mode 100644 include/configs/bcmstb.h
>

[snip]

> diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c
> index d2d091f..c517d06 100644
> --- a/drivers/spi/spi-uclass.c
> +++ b/drivers/spi/spi-uclass.c
> @@ -273,7 +273,7 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode,
>         bool created = false;
>         int ret;
>
> -#if CONFIG_IS_ENABLED(OF_PLATDATA)
> +#if CONFIG_IS_ENABLED(OF_PLATDATA) || CONFIG_IS_ENABLED(OF_PRIOR_STAGE)

Could you please explain this change a little bit? Why should we call
uclass_first_device_err() for OF_PRIOR_STAGE?

>         ret = uclass_first_device_err(UCLASS_SPI, &bus);
>  #else
>         ret = uclass_get_device_by_seq(UCLASS_SPI, busnum, &bus);
> diff --git a/dts/Kconfig b/dts/Kconfig
> index 0cef225..a1a92f2 100644
> --- a/dts/Kconfig
> +++ b/dts/Kconfig
> @@ -101,6 +101,13 @@ config OF_HOSTFILE
>           This is only useful for Sandbox.  Use the -d flag to U-Boot to
>           specify the file to read.
>
> +config OF_PRIOR_STAGE
> +       bool "Prior stage bootloader DTB for DT control"
> +       help
> +         If this option is enabled, the device tree used for DT
> +         control will be read from a device tree binary, at a memory
> +         location passed to U-Boot by the prior stage bootloader.
> +
>  endchoice
>

[snip]

Regards,
Bin


More information about the U-Boot mailing list