diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2019-09-12 13:11:05 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-10-02 08:42:20 +0200 |
commit | 1149c75be920ec38f359923e0f3f88382f8b8dfb (patch) | |
tree | 02cfbcbf46eabd398c641aa50e936fa966045e8c /arch/arm | |
parent | e82c880a053687ef7684b79819403e32b51ac99c (diff) | |
download | barebox-1149c75be920ec38f359923e0f3f88382f8b8dfb.tar.gz barebox-1149c75be920ec38f359923e0f3f88382f8b8dfb.tar.xz |
ARM: Freescale i.MX23 evk: Check machine type in initcalls
Check for the right machine type in initcalls before executing them to
make the board multi image safe.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/boards/freescale-mx23-evk/lowlevel.c | 3 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx23-evk/mx23-evk.c | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/boards/freescale-mx23-evk/lowlevel.c b/arch/arm/boards/freescale-mx23-evk/lowlevel.c index 13c7435cd6..2321a469ab 100644 --- a/arch/arm/boards/freescale-mx23-evk/lowlevel.c +++ b/arch/arm/boards/freescale-mx23-evk/lowlevel.c @@ -1,5 +1,6 @@ #include <common.h> #include <linux/sizes.h> +#include <generated/mach-types.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx23-regs.h> @@ -7,5 +8,5 @@ void __naked barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2) { arm_cpu_lowlevel_init(); - barebox_arm_entry(IMX_MEMORY_BASE, SZ_32M, NULL); + barebox_arm_entry(IMX_MEMORY_BASE, SZ_32M, (void *)MACH_TYPE_MX23EVK); } diff --git a/arch/arm/boards/freescale-mx23-evk/mx23-evk.c b/arch/arm/boards/freescale-mx23-evk/mx23-evk.c index a3587db063..75a7d5a6b4 100644 --- a/arch/arm/boards/freescale-mx23-evk/mx23-evk.c +++ b/arch/arm/boards/freescale-mx23-evk/mx23-evk.c @@ -22,6 +22,7 @@ #include <linux/err.h> #include <asm/armlinux.h> #include <generated/mach-types.h> +#include <asm/barebox-arm.h> #include <mach/imx-regs.h> #include <mach/clock.h> #include <mach/mci.h> @@ -99,6 +100,9 @@ static int mx23_evk_devices_init(void) { int i, rc; + if (barebox_arm_machine() != MACH_TYPE_MX23EVK) + return 0; + /* initizalize gpios */ for (i = 0; i < ARRAY_SIZE(pad_setup); i++) imx_gpio_mode(pad_setup[i]); @@ -126,6 +130,9 @@ device_initcall(mx23_evk_devices_init); static int mx23_evk_console_init(void) { + if (barebox_arm_machine() != MACH_TYPE_MX23EVK) + return 0; + barebox_set_model("Freescale i.MX23 EVK"); barebox_set_hostname("mx23evk"); |