summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-11-19 15:07:24 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-11-30 08:31:09 +0100
commitbca55b664adb3843c1a63e2ad666bd879b4690a8 (patch)
treed62d5dc0a8ae5f35ff106e98eea16e2c3dca6631 /arch
parentde82449fe39794ac786ac06c149291748bee771a (diff)
downloadbarebox-bca55b664adb3843c1a63e2ad666bd879b4690a8.tar.gz
barebox-bca55b664adb3843c1a63e2ad666bd879b4690a8.tar.xz
ARM: i.MX: GuF Vincell: Make pbl smaller
The PBL unnecessarily contains two dtb files when only one is needed. Be a bit more smart and compile in only one. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boards/guf-vincell/lowlevel.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/arch/arm/boards/guf-vincell/lowlevel.c b/arch/arm/boards/guf-vincell/lowlevel.c
index 47b3543336..715e8b386f 100644
--- a/arch/arm/boards/guf-vincell/lowlevel.c
+++ b/arch/arm/boards/guf-vincell/lowlevel.c
@@ -16,11 +16,10 @@
extern char __dtb_imx53_guf_vincell_lt_start[];
extern char __dtb_imx53_guf_vincell_start[];
-static noinline void imx53_guf_vincell_init(int is_lt)
+static noinline void imx53_guf_vincell_init(void *fdt)
{
void __iomem *ccm = (void *)MX53_CCM_BASE_ADDR;
void __iomem *uart = IOMEM(MX53_UART2_BASE_ADDR);
- void *fdt;
arm_setup_stack(MX53_IRAM_BASE_ADDR + MX53_IRAM_SIZE - 8);
@@ -36,15 +35,10 @@ static noinline void imx53_guf_vincell_init(int is_lt)
pbl_set_putc(imx_uart_putc, uart);
pr_debug("GuF Vincell\n");
- if (is_lt)
- fdt = __dtb_imx53_guf_vincell_lt_start;
- else
- fdt = __dtb_imx53_guf_vincell_start;
-
imx53_barebox_entry(fdt);
}
-static void __imx53_guf_vincell_init(int is_lt)
+static noinline void __imx53_guf_vincell_init(void *fdt)
{
arm_early_mmu_cache_invalidate();
imx5_cpu_lowlevel_init();
@@ -52,15 +46,19 @@ static void __imx53_guf_vincell_init(int is_lt)
setup_c();
barrier();
- imx53_guf_vincell_init(is_lt);
+ imx53_guf_vincell_init(fdt);
}
ENTRY_FUNCTION(start_imx53_guf_vincell_lt, r0, r1, r2)
{
- __imx53_guf_vincell_init(1);
+ void *fdt = __dtb_imx53_guf_vincell_lt_start + get_runtime_offset();
+
+ __imx53_guf_vincell_init(fdt);
}
ENTRY_FUNCTION(start_imx53_guf_vincell, r0, r1, r2)
{
- __imx53_guf_vincell_init(0);
+ void *fdt = __dtb_imx53_guf_vincell_start + get_runtime_offset();
+
+ __imx53_guf_vincell_init(fdt);
}