aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/board/broadcom
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot/board/broadcom
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot/board/broadcom')
-rw-r--r--roms/u-boot/board/broadcom/bcm11130/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm11130_nand/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm28155_w1d/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm963158/Kconfig17
-rw-r--r--roms/u-boot/board/broadcom/bcm963158/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm963158/Makefile3
-rw-r--r--roms/u-boot/board/broadcom/bcm963158/bcm963158.c62
-rw-r--r--roms/u-boot/board/broadcom/bcm968360bg/Kconfig17
-rw-r--r--roms/u-boot/board/broadcom/bcm968360bg/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm968360bg/Makefile3
-rw-r--r--roms/u-boot/board/broadcom/bcm968360bg/bcm968360bg.c62
-rw-r--r--roms/u-boot/board/broadcom/bcm968380gerg/Kconfig12
-rw-r--r--roms/u-boot/board/broadcom/bcm968380gerg/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm968380gerg/Makefile3
-rw-r--r--roms/u-boot/board/broadcom/bcm968380gerg/bcm968380gerg.c6
-rw-r--r--roms/u-boot/board/broadcom/bcm968380gerg/board.c6
-rw-r--r--roms/u-boot/board/broadcom/bcm968580xref/Kconfig17
-rw-r--r--roms/u-boot/board/broadcom/bcm968580xref/MAINTAINERS6
-rw-r--r--roms/u-boot/board/broadcom/bcm968580xref/Makefile3
-rw-r--r--roms/u-boot/board/broadcom/bcm968580xref/bcm968580xref.c62
-rw-r--r--roms/u-boot/board/broadcom/bcm_ep/Makefile5
-rw-r--r--roms/u-boot/board/broadcom/bcm_ep/board.c86
-rw-r--r--roms/u-boot/board/broadcom/bcmns3/Kconfig22
-rw-r--r--roms/u-boot/board/broadcom/bcmns3/Makefile5
-rw-r--r--roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.crt21
-rw-r--r--roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.key28
-rw-r--r--roms/u-boot/board/broadcom/bcmns3/fit/multi.its59
-rw-r--r--roms/u-boot/board/broadcom/bcmns3/ns3.c217
-rw-r--r--roms/u-boot/board/broadcom/bcmstb/MAINTAINERS15
-rw-r--r--roms/u-boot/board/broadcom/bcmstb/Makefile8
-rw-r--r--roms/u-boot/board/broadcom/bcmstb/bcmstb.c137
31 files changed, 918 insertions, 0 deletions
diff --git a/roms/u-boot/board/broadcom/bcm11130/MAINTAINERS b/roms/u-boot/board/broadcom/bcm11130/MAINTAINERS
new file mode 100644
index 000000000..54783501e
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm11130/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM11130 BOARD
+M: Steve Rae <steve.rae@raedomain.com>
+S: Maintained
+F: board/broadcom/bcm28155_ap/
+F: include/configs/bcm_ep_board.h
+F: configs/bcm11130_defconfig
diff --git a/roms/u-boot/board/broadcom/bcm11130_nand/MAINTAINERS b/roms/u-boot/board/broadcom/bcm11130_nand/MAINTAINERS
new file mode 100644
index 000000000..4cf66b7e4
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm11130_nand/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM11130_NAND BOARD
+M: Steve Rae <steve.rae@raedomain.com>
+S: Maintained
+F: board/broadcom/bcm28155_ap/
+F: include/configs/bcm_ep_board.h
+F: configs/bcm11130_nand_defconfig
diff --git a/roms/u-boot/board/broadcom/bcm28155_w1d/MAINTAINERS b/roms/u-boot/board/broadcom/bcm28155_w1d/MAINTAINERS
new file mode 100644
index 000000000..c0558e7f2
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm28155_w1d/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM28155_W1D BOARD
+M: Steve Rae <steve.rae@raedomain.com>
+S: Maintained
+F: board/broadcom/bcm28155_ap/
+F: include/configs/bcm28155_ap.h
+F: configs/bcm28155_w1d_defconfig
diff --git a/roms/u-boot/board/broadcom/bcm963158/Kconfig b/roms/u-boot/board/broadcom/bcm963158/Kconfig
new file mode 100644
index 000000000..08a8bc1c1
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm963158/Kconfig
@@ -0,0 +1,17 @@
+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/roms/u-boot/board/broadcom/bcm963158/MAINTAINERS b/roms/u-boot/board/broadcom/bcm963158/MAINTAINERS
new file mode 100644
index 000000000..d28d971f9
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm963158/MAINTAINERS
@@ -0,0 +1,6 @@
+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/roms/u-boot/board/broadcom/bcm963158/Makefile b/roms/u-boot/board/broadcom/bcm963158/Makefile
new file mode 100644
index 000000000..0a902c9cf
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm963158/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+obj-y += bcm963158.o
diff --git a/roms/u-boot/board/broadcom/bcm963158/bcm963158.c b/roms/u-boot/board/broadcom/bcm963158/bcm963158.c
new file mode 100644
index 000000000..9feaee3c0
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm963158/bcm963158.c
@@ -0,0 +1,62 @@
+// 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/roms/u-boot/board/broadcom/bcm968360bg/Kconfig b/roms/u-boot/board/broadcom/bcm968360bg/Kconfig
new file mode 100644
index 000000000..dd372f126
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968360bg/Kconfig
@@ -0,0 +1,17 @@
+if ARCH_BCM68360
+
+config SYS_VENDOR
+ default "broadcom"
+
+config SYS_BOARD
+ default "bcm968360bg"
+
+config SYS_CONFIG_NAME
+ default "broadcom_bcm968360bg"
+
+endif
+
+config TARGET_BCM968360BG
+ bool "Support Broadcom bcm968360bg"
+ depends on ARCH_BCM68360
+ select ARM64
diff --git a/roms/u-boot/board/broadcom/bcm968360bg/MAINTAINERS b/roms/u-boot/board/broadcom/bcm968360bg/MAINTAINERS
new file mode 100644
index 000000000..cfcbbc51f
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968360bg/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM968360BG BOARD
+M: Philippe Reynes <philippe.reynes@softathome.com>
+S: Maintained
+F: board/broadcom/bcm968360bg
+F: include/configs/broadcom_bcm968360bg.h
+F: configs/bcm968360bg_ram_defconfig
diff --git a/roms/u-boot/board/broadcom/bcm968360bg/Makefile b/roms/u-boot/board/broadcom/bcm968360bg/Makefile
new file mode 100644
index 000000000..d099c1cf3
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968360bg/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+obj-y += bcm968360bg.o
diff --git a/roms/u-boot/board/broadcom/bcm968360bg/bcm968360bg.c b/roms/u-boot/board/broadcom/bcm968360bg/bcm968360bg.c
new file mode 100644
index 000000000..90af6b88b
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968360bg/bcm968360bg.c
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2020 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_bcm968360bg_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_bcm968360bg_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/roms/u-boot/board/broadcom/bcm968380gerg/Kconfig b/roms/u-boot/board/broadcom/bcm968380gerg/Kconfig
new file mode 100644
index 000000000..c33e25d1a
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968380gerg/Kconfig
@@ -0,0 +1,12 @@
+if BOARD_BROADCOM_BCM968380GERG
+
+config SYS_BOARD
+ default "bcm968380gerg"
+
+config SYS_VENDOR
+ default "broadcom"
+
+config SYS_CONFIG_NAME
+ default "broadcom_bcm968380gerg"
+
+endif
diff --git a/roms/u-boot/board/broadcom/bcm968380gerg/MAINTAINERS b/roms/u-boot/board/broadcom/bcm968380gerg/MAINTAINERS
new file mode 100644
index 000000000..52747cd9e
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968380gerg/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM968380GERG BOARD
+M: Philippe Reynes <philippe.reynes@softathome.com>
+S: Maintained
+F: board/broadcom/bcm968380gerg/
+F: include/configs/broadcom_bcm968380gerg.h
+F: configs/bcm968380gerg_ram_defconfig
diff --git a/roms/u-boot/board/broadcom/bcm968380gerg/Makefile b/roms/u-boot/board/broadcom/bcm968380gerg/Makefile
new file mode 100644
index 000000000..a525b7b9b
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968380gerg/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+obj-y += bcm968380gerg.o
diff --git a/roms/u-boot/board/broadcom/bcm968380gerg/bcm968380gerg.c b/roms/u-boot/board/broadcom/bcm968380gerg/bcm968380gerg.c
new file mode 100644
index 000000000..044b3554b
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968380gerg/bcm968380gerg.c
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Philippe Reynes <philippe.reynes@softathome.com>
+ */
+
+#include <common.h>
diff --git a/roms/u-boot/board/broadcom/bcm968380gerg/board.c b/roms/u-boot/board/broadcom/bcm968380gerg/board.c
new file mode 100644
index 000000000..044b3554b
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968380gerg/board.c
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Philippe Reynes <philippe.reynes@softathome.com>
+ */
+
+#include <common.h>
diff --git a/roms/u-boot/board/broadcom/bcm968580xref/Kconfig b/roms/u-boot/board/broadcom/bcm968580xref/Kconfig
new file mode 100644
index 000000000..b5730367a
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968580xref/Kconfig
@@ -0,0 +1,17 @@
+if ARCH_BCM6858
+
+config SYS_VENDOR
+ default "broadcom"
+
+config SYS_BOARD
+ default "bcm968580xref"
+
+config SYS_CONFIG_NAME
+ default "broadcom_bcm968580xref"
+
+endif
+
+config TARGET_BCM968580XREF
+ bool "Support Broadcom bcm968580xref"
+ depends on ARCH_BCM6858
+ select ARM64
diff --git a/roms/u-boot/board/broadcom/bcm968580xref/MAINTAINERS b/roms/u-boot/board/broadcom/bcm968580xref/MAINTAINERS
new file mode 100644
index 000000000..5ee0c4dd4
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968580xref/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM968580XREF BOARD
+M: Philippe Reynes <philippe.reynes@softathome.com>
+S: Maintained
+F: board/broadcom/bcm968580xref/
+F: include/configs/broadcom_bcm968580xref.h
+F: configs/bcm968580xref_ram_defconfig
diff --git a/roms/u-boot/board/broadcom/bcm968580xref/Makefile b/roms/u-boot/board/broadcom/bcm968580xref/Makefile
new file mode 100644
index 000000000..5cd393b19
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968580xref/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+obj-y += bcm968580xref.o
diff --git a/roms/u-boot/board/broadcom/bcm968580xref/bcm968580xref.c b/roms/u-boot/board/broadcom/bcm968580xref/bcm968580xref.c
new file mode 100644
index 000000000..1bd723d49
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm968580xref/bcm968580xref.c
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 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_bcm968580xref_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_bcm968580xref_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/roms/u-boot/board/broadcom/bcm_ep/Makefile b/roms/u-boot/board/broadcom/bcm_ep/Makefile
new file mode 100644
index 000000000..29a3ea7ed
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm_ep/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright 2014 Broadcom Corporation.
+
+obj-y += board.o
diff --git a/roms/u-boot/board/broadcom/bcm_ep/board.c b/roms/u-boot/board/broadcom/bcm_ep/board.c
new file mode 100644
index 000000000..6064eb43d
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcm_ep/board.c
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2014 Broadcom Corporation.
+ */
+
+#include <common.h>
+#include <cpu_func.h>
+#include <init.h>
+#include <net.h>
+#include <asm/cache.h>
+#include <asm/global_data.h>
+#include <asm/io.h>
+#include <config.h>
+#include <netdev.h>
+#include <asm/system.h>
+#include <asm/iproc-common/armpll.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * board_init - early hardware init
+ */
+int board_init(void)
+{
+ /*
+ * Address of boot parameters passed to kernel
+ * Use default offset 0x100
+ */
+ gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+
+ return 0;
+}
+
+/*
+ * dram_init - sets u-boot's idea of sdram size
+ */
+int dram_init(void)
+{
+ gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
+ CONFIG_SYS_SDRAM_SIZE);
+ return 0;
+}
+
+int dram_init_banksize(void)
+{
+ gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+ gd->bd->bi_dram[0].size = gd->ram_size;
+
+ return 0;
+}
+
+int board_early_init_f(void)
+{
+ uint32_t status = 0;
+
+ /* Setup PLL if required */
+#if defined(CONFIG_ARMCLK)
+ armpll_config(CONFIG_ARMCLK);
+#endif
+
+ return status;
+}
+
+#ifdef CONFIG_ARMV7_NONSEC
+void smp_set_core_boot_addr(unsigned long addr, int corenr)
+{
+}
+
+void smp_kick_all_cpus(void)
+{
+}
+
+void smp_waitloop(unsigned previous_address)
+{
+}
+#endif
+
+#ifdef CONFIG_BCM_SF2_ETH
+int board_eth_init(struct bd_info *bis)
+{
+ int rc = -1;
+ printf("Registering BCM sf2 eth\n");
+ rc = bcm_sf2_eth_register(bis, 0);
+ return rc;
+}
+#endif
diff --git a/roms/u-boot/board/broadcom/bcmns3/Kconfig b/roms/u-boot/board/broadcom/bcmns3/Kconfig
new file mode 100644
index 000000000..cb73f98ea
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmns3/Kconfig
@@ -0,0 +1,22 @@
+if TARGET_BCMNS3
+
+config SYS_BOARD
+ default "bcmns3"
+
+config SYS_VENDOR
+ default "broadcom"
+
+config SYS_SOC
+ default "bcmns3"
+
+config SYS_CONFIG_NAME
+ default "bcm_ns3"
+
+config CMD_BCM_EXT_UTILS
+ bool "Enable Broadcom-specific U-Boot commands"
+ default y
+ help
+ Enable Broadcom specific U-Boot commands such as error log setup
+ command or any other commands specific to NS3 platform.
+
+endif
diff --git a/roms/u-boot/board/broadcom/bcmns3/Makefile b/roms/u-boot/board/broadcom/bcmns3/Makefile
new file mode 100644
index 000000000..340426014
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmns3/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright 2020 Broadcom.
+
+obj-y := ns3.o
diff --git a/roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.crt b/roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.crt
new file mode 100644
index 000000000..75b75db95
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDXTCCAkWgAwIBAgIJAJgq/5aiJttEMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQwHhcNMTgwOTE5MDkzMzEwWhcNMTgxMDE5MDkzMzEwWjBF
+MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
+ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAzeMQ92YqrejtMCfxjDyHvDW34ATozXSlWsudR+AyCSuJVAIoHEenVh+/
+PuT0+/EMiwsUnLXYBeOsIXDW3k3eHgm88ccb+0g9J6mlHqMaN0tXP+Ua2GFEk2Wv
+5Bj5QynorOPoaWL/ecWus2Bvkmyt2pvIpaTjmkUKZ9al3z8WyS6wFlFitXyOWFcK
+7Xkl43cOHxYAfbny5loWYDCgpkV+dgYZOoCEmL+Y9HfrQ+uBKGducpzNKeQjX9bn
+UT9cleCtHZx0uY4wSGNgfmUMy7oUyVZhFpmjlcfjcfNFcBcoVF6StluoL6v1KRbH
+4xJDD/UCn2Uk0S6Zpd7TRc26faOtfwIDAQABo1AwTjAdBgNVHQ4EFgQUZk/KKaWG
+p4BtksPdQ8FLzWL/gAIwHwYDVR0jBBgwFoAUZk/KKaWGp4BtksPdQ8FLzWL/gAIw
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAPNveTvOC2bw91cUN1e+B
+95qFp2Xd5XGiV35F10dT3VN/Iv2dzHlThq7xaJGkA53lHIXgLUUfnDTHJmoluw+t
+UCpG8OWCxM0FbT8ZnXR4SmHK8k4yb7iZa7iu+Ey5B6F3247gJpEl+1iYxus0lqQW
+E9dTwMf1YP9Jdf+dRoLKAAI0n5J1PMuseQkGdlRBNUcEg+kXqBSz5hq0xkuPRtey
+GiAvpg3G93ft84Q4ov7IjAhJkY7whm6WktisU8mFPru3e9EouxjVtAvu6s9gQThm
+pvn6hSL2/3gEOP3v9yBsH6//SOgNdVBGZIdX+HkvD8NZLftbIrDaeL/IfKUm/zXB
+zA==
+-----END CERTIFICATE-----
diff --git a/roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.key b/roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.key
new file mode 100644
index 000000000..55b7033e9
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmns3/fit/keys/dev.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDN4xD3Ziqt6O0w
+J/GMPIe8NbfgBOjNdKVay51H4DIJK4lUAigcR6dWH78+5PT78QyLCxSctdgF46wh
+cNbeTd4eCbzxxxv7SD0nqaUeoxo3S1c/5RrYYUSTZa/kGPlDKeis4+hpYv95xa6z
+YG+SbK3am8ilpOOaRQpn1qXfPxbJLrAWUWK1fI5YVwrteSXjdw4fFgB9ufLmWhZg
+MKCmRX52Bhk6gISYv5j0d+tD64EoZ25ynM0p5CNf1udRP1yV4K0dnHS5jjBIY2B+
+ZQzLuhTJVmEWmaOVx+Nx80VwFyhUXpK2W6gvq/UpFsfjEkMP9QKfZSTRLpml3tNF
+zbp9o61/AgMBAAECggEBAJ/TZClZk0ob5nyalWVS29/cJ5hs1zgfE/nu1HKmdNEv
+jdS8M9z4Nsuhq3msjQ1Da4RInsCkXUT9H3N6QCKkeggBcT6TXYJs6qRuijLFVKWW
+A+4i8PsGTxDJQIimZmGgF/KWnaWp5z7lmZ+//fzCBxgMFO+Zl+H7NH+1XmB2fj6/
+bfgnxLbiIqq/2oVJfdjA1Zs2ie3SE5U2hPNiE6TIajFS0PxUOGrojsSQ8z+gfqs3
+hyqo9msAqNQciT79vyXp+3HsxZo9rq5Tk5OtCEfgu0GED/d4/FHbDrZT3TorVYXr
+Z3dADxvnnJfBdlQIMetCy/X8z2vKRRXaoWpqg1aiFVECgYEA7Ap5D4nvOie2NXgI
+gMPzuYtpH4uF/cZMLGxTKZ3NG4RH6oVUdd4whETXfzBJdnJbIXDTphoHxjUhpGh8
+Ga+U1iqjp9c6Nd8ueVp/c5T1bD8/2RG0QM4iWgPbZDKtj1MqRg7vwAfpJ3kOIc/5
+bKJ4jAopNJMChL6vAZ9+ShPsRqkCgYEA30vbj6K7/giclJnyWkluQTqS8X/XjdAf
+F5PkCBHGJnYxkDSzWPq7O5E1wYqTAou1U6nNNoUvZZdpRvo39NSrMCaagQ7GE+xA
+j/h7tinD/lPlvoW9N4f4ddqWzsmf7I8OGZtP4IwVi9Pms+zPtrQ7TvuPT4UHTH2E
+eE1hlJtic+cCgYEA6oKdNGr+WvEJfqX7DLOiej2f+89LGI7jL1+QYFB/b09FhCNj
+fpd57G/ZCmyXEC8di2PlY6mI/8vZ2NZWNc7UONO0NRUIqG1MZxUae2MLUrikXq3Q
+QHKMfpJGbo5LEZK29VPxrwAtDSKgf8d5MA1bZwbRWYKVhf1NMnebqU2R+cECgYEA
+kOTKXhP85MR1xj928XtAnfcCLs8D8jOgWU5P46SU7ZQ4aRipYA2ivO5m8WWYK0i4
+qsc+MCiQLt3nJHVtJeNyCdai3yfVBEyDQGi+7d+AHGIYbF6f/46tfNwQi7JtobTa
+M2eCl3SO7qLbytjZl/avnXrC7Zimuc2gzed4cFO7uPUCgYAo66MLtRWLdHqPDTaa
+WhSQZkdKfZxlWNP6XIpBgHnYDIQGZddrjv+zZVFRxLCduh1v8xybbSDKwRkGuXVb
+eTQHP2Nc5XsOopCSsDP0v0dUxaOu14C0jJJG2E+EhJsWJ2Eua7o40LEIX2WY7N7f
+UqR3bLO5Qh/1OOwJj5WbpzkMwA==
+-----END PRIVATE KEY-----
diff --git a/roms/u-boot/board/broadcom/bcmns3/fit/multi.its b/roms/u-boot/board/broadcom/bcmns3/fit/multi.its
new file mode 100644
index 000000000..a0ff4bc90
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmns3/fit/multi.its
@@ -0,0 +1,59 @@
+/*
+ * U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs
+ */
+
+/dts-v1/;
+
+/ {
+ description = "Various kernels, ramdisks and FDT blobs";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ description = "Linux kernel Image";
+ data = /incbin/("./Image");
+ type = "kernel";
+ arch = "arm64";
+ os = "linux";
+ compression = "none";
+ load = <0x80080000>;
+ entry = <0x80080000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ };
+ };
+
+ fdt-ns3 {
+ description = "FDT Blob";
+ data = /incbin/("./dt-blob.bin");
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+ hash-1 {
+ algo = "sha1";
+ };
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ };
+ };
+ };
+
+ configurations {
+ default = "config-ns3";
+ config-ns3 {
+ description = "FIT1 configuration";
+ kernel = "kernel";
+ fdt = "fdt-ns3";
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ sign-images = "fdt", "kernel";
+ };
+ };
+ };
+};
diff --git a/roms/u-boot/board/broadcom/bcmns3/ns3.c b/roms/u-boot/board/broadcom/bcmns3/ns3.c
new file mode 100644
index 000000000..758a358f5
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmns3/ns3.c
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 Broadcom.
+ *
+ */
+
+#include <common.h>
+#include <fdt_support.h>
+#include <asm/io.h>
+#include <asm/gic-v3.h>
+#include <asm/global_data.h>
+#include <asm/system.h>
+#include <asm/armv8/mmu.h>
+#include <asm/arch-bcmns3/bl33_info.h>
+#include <dt-bindings/memory/bcm-ns3-mc.h>
+#include <broadcom/chimp.h>
+
+#define BANK_OFFSET(bank) ((u64)BCM_NS3_DDR_INFO_BASE + 8 + ((bank) * 16))
+
+/*
+ * ns3_dram_bank - DDR bank details
+ *
+ * @start: DDR bank start address
+ * @len: DDR bank length
+ */
+struct ns3_dram_bank {
+ u64 start[BCM_NS3_MAX_NR_BANKS];
+ u64 len[BCM_NS3_MAX_NR_BANKS];
+};
+
+/*
+ * ns3_dram_hdr - DDR header info
+ *
+ * @sig: DDR info signature
+ * @bank: DDR bank details
+ */
+struct ns3_dram_hdr {
+ u32 sig;
+ struct ns3_dram_bank bank;
+};
+
+static struct mm_region ns3_mem_map[] = {
+ {
+ .virt = 0x0UL,
+ .phys = 0x0UL,
+ .size = 0x80000000UL,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+ PTE_BLOCK_NON_SHARE |
+ PTE_BLOCK_PXN | PTE_BLOCK_UXN
+ }, {
+ .virt = BCM_NS3_MEM_START,
+ .phys = BCM_NS3_MEM_START,
+ .size = BCM_NS3_MEM_LEN,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
+ PTE_BLOCK_INNER_SHARE
+ }, {
+ .virt = BCM_NS3_BANK_1_MEM_START,
+ .phys = BCM_NS3_BANK_1_MEM_START,
+ .size = BCM_NS3_BANK_1_MEM_LEN,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
+ PTE_BLOCK_INNER_SHARE
+ }, {
+ /* List terminator */
+ 0,
+ }
+};
+
+struct mm_region *mem_map = ns3_mem_map;
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * Force the bl33_info to the data-section, as .bss will not be valid
+ * when save_boot_params is invoked.
+ */
+struct bl33_info *bl33_info __section(".data");
+
+/*
+ * Run modulo 256 checksum calculation and return the calculated checksum
+ */
+static u8 checksum_calc(u8 *p, unsigned int len)
+{
+ unsigned int i;
+ u8 chksum = 0;
+
+ for (i = 0; i < len; i++)
+ chksum += p[i];
+
+ return chksum;
+}
+
+/*
+ * This function parses the memory layout information from a reserved area in
+ * DDR, and then fix up the FDT before passing it to Linux.
+ *
+ * In the case of error, do nothing and the default memory layout in DT will
+ * be used
+ */
+static int mem_info_parse_fixup(void *fdt)
+{
+ struct ns3_dram_hdr hdr;
+ u32 *p32, i, nr_banks;
+ u64 *p64;
+
+ /* validate signature */
+ p32 = (u32 *)BCM_NS3_DDR_INFO_BASE;
+ hdr.sig = *p32;
+ if (hdr.sig != BCM_NS3_DDR_INFO_SIG) {
+ printf("DDR info signature 0x%x invalid\n", hdr.sig);
+ return -EINVAL;
+ }
+
+ /* run checksum test to validate data */
+ if (checksum_calc((u8 *)p32, BCM_NS3_DDR_INFO_LEN) != 0) {
+ printf("Checksum on DDR info failed\n");
+ return -EINVAL;
+ }
+
+ /* parse information for each bank */
+ nr_banks = 0;
+ for (i = 0; i < BCM_NS3_MAX_NR_BANKS; i++) {
+ /* skip banks with a length of zero */
+ p64 = (u64 *)BANK_OFFSET(i);
+ if (*(p64 + 1) == 0)
+ continue;
+
+ hdr.bank.start[i] = *p64;
+ hdr.bank.len[i] = *(p64 + 1);
+
+ printf("mem[%u] 0x%llx - 0x%llx\n", i, hdr.bank.start[i],
+ hdr.bank.start[i] + hdr.bank.len[i] - 1);
+ nr_banks++;
+ }
+
+ if (!nr_banks) {
+ printf("No DDR banks detected\n");
+ return -ENOMEM;
+ }
+
+ return fdt_fixup_memory_banks(fdt, hdr.bank.start, hdr.bank.len,
+ nr_banks);
+}
+
+int board_init(void)
+{
+ /* Setup memory using "memory" node from DTB */
+ if (fdtdec_setup_mem_size_base() != 0)
+ return -EINVAL;
+ fdtdec_setup_memory_banksize();
+
+ if (bl33_info->version != BL33_INFO_VERSION)
+ printf("*** warning: ATF BL31 and U-Boot not in sync! ***\n");
+
+ return 0;
+}
+
+int board_late_init(void)
+{
+ return 0;
+}
+
+int dram_init(void)
+{
+ /*
+ * Mark ram base as the last 16MB of 2GB DDR, which is 0xFF00_0000.
+ * So that relocation happens with in the last 16MB memory.
+ */
+ gd->ram_base = (phys_size_t)(BCM_NS3_MEM_END - SZ_16M);
+ gd->ram_size = (unsigned long)SZ_16M;
+
+ return 0;
+}
+
+int dram_init_banksize(void)
+{
+ gd->bd->bi_dram[0].start = (BCM_NS3_MEM_END - SZ_16M);
+ gd->bd->bi_dram[0].size = SZ_16M;
+
+ return 0;
+}
+
+/* Limit RAM used by U-Boot to the DDR first bank End region */
+ulong board_get_usable_ram_top(ulong total_size)
+{
+ return BCM_NS3_MEM_END;
+}
+
+void reset_cpu(void)
+{
+ /* Perform a level 3 reset */
+ psci_system_reset2(3, 0);
+}
+
+#ifdef CONFIG_OF_BOARD_SETUP
+int ft_board_setup(void *fdt, struct bd_info *bd)
+{
+ u32 chimp_hs = CHIMP_HANDSHAKE_WAIT_TIMEOUT;
+
+ gic_lpi_tables_init();
+
+ /*
+ * Check for chimp handshake status.
+ * Zero timeout value will actually fall to default timeout.
+ *
+ * System boot is independent of chimp handshake.
+ * chimp handshake failure is not a catastrophic error.
+ * Hence continue booting if chimp handshake fails.
+ */
+ chimp_handshake_status_optee(0, &chimp_hs);
+ if (chimp_hs == CHIMP_HANDSHAKE_SUCCESS)
+ printf("ChiMP handshake successful\n");
+ else
+ printf("ERROR: ChiMP handshake status 0x%x\n", chimp_hs);
+
+ return mem_info_parse_fixup(fdt);
+}
+#endif /* CONFIG_OF_BOARD_SETUP */
diff --git a/roms/u-boot/board/broadcom/bcmstb/MAINTAINERS b/roms/u-boot/board/broadcom/bcmstb/MAINTAINERS
new file mode 100644
index 000000000..eda29b95c
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmstb/MAINTAINERS
@@ -0,0 +1,15 @@
+BCM7445 BOARD
+M: Thomas Fitzsimmons <fitzsim@fitzsim.org>
+S: Maintained
+F: board/broadcom/bcmstb/
+F: include/configs/bcmstb.h
+F: include/configs/bcm7445.h
+F: configs/bcm7445_defconfig
+
+BCM7260 BOARD
+M: Thomas Fitzsimmons <fitzsim@fitzsim.org>
+S: Maintained
+F: board/broadcom/bcmstb/
+F: include/configs/bcmstb.h
+F: include/configs/bcm7260.h
+F: configs/bcm7260_defconfig
diff --git a/roms/u-boot/board/broadcom/bcmstb/Makefile b/roms/u-boot/board/broadcom/bcmstb/Makefile
new file mode 100644
index 000000000..960988776
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmstb/Makefile
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2018 Cisco Systems, Inc.
+#
+# Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
+#
+
+obj-y := bcmstb.o
diff --git a/roms/u-boot/board/broadcom/bcmstb/bcmstb.c b/roms/u-boot/board/broadcom/bcmstb/bcmstb.c
new file mode 100644
index 000000000..076ac9414
--- /dev/null
+++ b/roms/u-boot/board/broadcom/bcmstb/bcmstb.c
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2018 Cisco Systems, Inc.
+ * (C) Copyright 2019 Synamedia
+ *
+ * Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
+ */
+
+#include <cpu_func.h>
+#include <init.h>
+#include <log.h>
+#include <time.h>
+#include <asm/global_data.h>
+#include <linux/types.h>
+#include <common.h>
+#include <env.h>
+#include <asm/io.h>
+#include <asm/bootm.h>
+#include <mach/timer.h>
+#include <mmc.h>
+#include <fdtdec.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define BCMSTB_DATA_SECTION __section(".data")
+
+struct bcmstb_boot_parameters bcmstb_boot_parameters BCMSTB_DATA_SECTION;
+
+phys_addr_t prior_stage_fdt_address BCMSTB_DATA_SECTION;
+
+union reg_value_union {
+ const char *data;
+ const phys_addr_t *address;
+};
+
+int board_init(void)
+{
+ return 0;
+}
+
+u32 get_board_rev(void)
+{
+ return 0;
+}
+
+void reset_cpu(void)
+{
+}
+
+int print_cpuinfo(void)
+{
+ return 0;
+}
+
+int dram_init(void)
+{
+ if (fdtdec_setup_mem_size_base() != 0)
+ return -EINVAL;
+
+ return 0;
+}
+
+int dram_init_banksize(void)
+{
+ fdtdec_setup_memory_banksize();
+
+ /*
+ * On this SoC, U-Boot is running as an ELF file. Change the
+ * relocation address to CONFIG_SYS_TEXT_BASE, so that in
+ * setup_reloc, gd->reloc_off works out to 0, effectively
+ * disabling relocation. Otherwise U-Boot hangs in the setup
+ * instructions just before relocate_code in
+ * arch/arm/lib/crt0.S.
+ */
+ gd->relocaddr = CONFIG_SYS_TEXT_BASE;
+
+ return 0;
+}
+
+void enable_caches(void)
+{
+ /*
+ * This port assumes that the prior stage bootloader has
+ * enabled I-cache and D-cache already. Implementing this
+ * function silences the warning in the default function.
+ */
+}
+
+int timer_init(void)
+{
+ gd->arch.timer_rate_hz = readl(BCMSTB_TIMER_FREQUENCY);
+
+ return 0;
+}
+
+ulong get_tbclk(void)
+{
+ return gd->arch.timer_rate_hz;
+}
+
+uint64_t get_ticks(void)
+{
+ gd->timebase_h = readl(BCMSTB_TIMER_HIGH);
+ gd->timebase_l = readl(BCMSTB_TIMER_LOW);
+
+ return ((uint64_t)gd->timebase_h << 32) | gd->timebase_l;
+}
+
+int board_late_init(void)
+{
+ debug("Arguments from prior stage bootloader:\n");
+ debug("General Purpose Register 0: 0x%x\n", bcmstb_boot_parameters.r0);
+ debug("General Purpose Register 1: 0x%x\n", bcmstb_boot_parameters.r1);
+ debug("General Purpose Register 2: 0x%x\n", bcmstb_boot_parameters.r2);
+ debug("General Purpose Register 3: 0x%x\n", bcmstb_boot_parameters.r3);
+ debug("Stack Pointer Register: 0x%x\n", bcmstb_boot_parameters.sp);
+ debug("Link Register: 0x%x\n", bcmstb_boot_parameters.lr);
+ debug("Assuming timer frequency register at: 0x%p\n",
+ (void *)BCMSTB_TIMER_FREQUENCY);
+ debug("Read timer frequency (in Hz): %ld\n", gd->arch.timer_rate_hz);
+ debug("Prior stage provided DTB at: 0x%p\n",
+ (void *)prior_stage_fdt_address);
+
+ /*
+ * Set fdtcontroladdr in the environment so that scripts can
+ * refer to it, for example, to reuse it for fdtaddr.
+ */
+ env_set_hex("fdtcontroladdr", prior_stage_fdt_address);
+
+ /*
+ * Do not set machid to the machine identifier value provided
+ * by the prior stage bootloader (bcmstb_boot_parameters.r1)
+ * because we're using a device tree to boot Linux.
+ */
+
+ return 0;
+}