summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards
diff options
context:
space:
mode:
authorJuergen Borleis <jbe@pengutronix.de>2022-03-21 15:08:56 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2022-03-28 10:28:00 +0200
commitb19c853fe2416ffc33610c14aafd22ef36755a26 (patch)
treeecb8b9f7c967be5e1d33d2cee7c6ea65fbc78405 /arch/arm/boards
parentd90cc947d97fd893a65f382598c4728f8419961c (diff)
downloadbarebox-b19c853fe2416ffc33610c14aafd22ef36755a26.tar.gz
barebox-b19c853fe2416ffc33610c14aafd22ef36755a26.tar.xz
ARM: webasto-marvel: share the run-time setup with the ccbv2 variant
Signed-off-by: Juergen Borleis <jbe@pengutronix.de> Link: https://lore.barebox.org/20220321140856.59479-3-jbe@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards')
-rw-r--r--arch/arm/boards/webasto-ccbv2/board.c6
-rw-r--r--arch/arm/boards/webasto-ccbv2/lowlevel.c24
2 files changed, 23 insertions, 7 deletions
diff --git a/arch/arm/boards/webasto-ccbv2/board.c b/arch/arm/boards/webasto-ccbv2/board.c
index 477771309e..fd6ea6f406 100644
--- a/arch/arm/boards/webasto-ccbv2/board.c
+++ b/arch/arm/boards/webasto-ccbv2/board.c
@@ -22,7 +22,10 @@ static int ccbv2_probe(struct device_d *dev)
imx6_bbu_internal_mmcboot_register_handler("emmc", "/dev/mmc1",
BBU_HANDLER_FLAG_DEFAULT);
- barebox_set_hostname("weabsto-ccbv2");
+ if (of_machine_is_compatible("webasto,imx6ul-marvel"))
+ barebox_set_hostname("webasto-marvel");
+ else
+ barebox_set_hostname("webasto-ccbv2");
if(!IS_ENABLED(CONFIG_FIRMWARE_CCBV2_OPTEE))
return 0;
@@ -48,6 +51,7 @@ err:
static const struct of_device_id ccbv2_of_match[] = {
{ .compatible = "webasto,imx6ul-ccbv2" },
+ { .compatible = "webasto,imx6ul-marvel" },
{ /* sentinel */ },
};
diff --git a/arch/arm/boards/webasto-ccbv2/lowlevel.c b/arch/arm/boards/webasto-ccbv2/lowlevel.c
index dfc5c0fd4c..2bf0c3636f 100644
--- a/arch/arm/boards/webasto-ccbv2/lowlevel.c
+++ b/arch/arm/boards/webasto-ccbv2/lowlevel.c
@@ -15,8 +15,6 @@
#include "ccbv2.h"
-extern char __dtb_z_imx6ul_webasto_ccbv2_start[];
-
static void configure_uart(void)
{
void __iomem *iomuxbase = (void *)MX6_IOMUXC_BASE_ADDR;
@@ -32,7 +30,7 @@ static void configure_uart(void)
}
-static void noinline start_ccbv2(u32 r0, unsigned long mem_size)
+static void noinline start_ccbv2(u32 r0, unsigned long mem_size, char *fdt)
{
int tee_size;
void *tee;
@@ -56,9 +54,10 @@ static void noinline start_ccbv2(u32 r0, unsigned long mem_size)
start_optee_early(NULL, tee);
}
- imx6ul_barebox_entry(__dtb_z_imx6ul_webasto_ccbv2_start);
+ imx6ul_barebox_entry(fdt);
}
+extern char __dtb_z_imx6ul_webasto_ccbv2_start[];
ENTRY_FUNCTION(start_imx6ul_ccbv2_256m, r0, r1, r2)
{
@@ -70,12 +69,25 @@ ENTRY_FUNCTION(start_imx6ul_ccbv2_256m, r0, r1, r2)
setup_c();
barrier();
- start_ccbv2(r0, SZ_256M);
+ start_ccbv2(r0, SZ_256M, __dtb_z_imx6ul_webasto_ccbv2_start);
}
ENTRY_FUNCTION(start_imx6ul_ccbv2_512m, r0, r1, r2)
{
+ imx6ul_cpu_lowlevel_init();
+ arm_setup_stack(0x00910000);
+
+ relocate_to_current_adr();
+ setup_c();
+ barrier();
+
+ start_ccbv2(r0, SZ_512M, __dtb_z_imx6ul_webasto_ccbv2_start);
+}
+
+extern char __dtb_z_imx6ul_webasto_marvel_start[];
+ENTRY_FUNCTION(start_imx6ul_marvel, r0, r1, r2)
+{
imx6ul_cpu_lowlevel_init();
arm_setup_stack(0x00910000);
@@ -84,5 +96,5 @@ ENTRY_FUNCTION(start_imx6ul_ccbv2_512m, r0, r1, r2)
setup_c();
barrier();
- start_ccbv2(r0, SZ_512M);
+ start_ccbv2(r0, SZ_512M, __dtb_z_imx6ul_webasto_marvel_start);
}