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 | e78de630996d6a0da262f0d1a0c452fe7765c7d0 (patch) | |
tree | 67009a001d07fc32d146f2b7053567382823d20a /arch/arm | |
parent | fb6c774884d65229047d294ec1d6b7d3b940ed52 (diff) | |
download | barebox-e78de630996d6a0da262f0d1a0c452fe7765c7d0.tar.gz barebox-e78de630996d6a0da262f0d1a0c452fe7765c7d0.tar.xz |
ARM: i.MX23 olinuxino: 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/imx233-olinuxino/imx23-olinuxino.c | 8 | ||||
-rw-r--r-- | arch/arm/boards/imx233-olinuxino/lowlevel.c | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/boards/imx233-olinuxino/imx23-olinuxino.c b/arch/arm/boards/imx233-olinuxino/imx23-olinuxino.c index c06779ddf6..af548b3c53 100644 --- a/arch/arm/boards/imx233-olinuxino/imx23-olinuxino.c +++ b/arch/arm/boards/imx233-olinuxino/imx23-olinuxino.c @@ -26,6 +26,7 @@ #include <errno.h> #include <mci.h> #include <asm/armlinux.h> +#include <asm/barebox-arm.h> #include <usb/ehci.h> #include <mach/usb.h> #include <generated/mach-types.h> @@ -33,6 +34,7 @@ #include <mach/clock.h> #include <mach/mci.h> #include <mach/iomux.h> +#include <generated/mach-types.h> static struct mxs_mci_platform_data mci_pdata = { .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED, @@ -56,6 +58,9 @@ static struct gpio_led led1 = { static int imx23_olinuxino_devices_init(void) { + if (barebox_arm_machine() != MACH_TYPE_IMX233_OLINUXINO) + return 0; + armlinux_set_architecture(MACH_TYPE_IMX233_OLINUXINO); defaultenv_append_directory(defaultenv_imx233_olinuxino); @@ -76,6 +81,9 @@ device_initcall(imx23_olinuxino_devices_init); static int imx23_olinuxino_console_init(void) { + if (barebox_arm_machine() != MACH_TYPE_IMX233_OLINUXINO) + return 0; + barebox_set_model("Olimex.ltd imx233-olinuxino"); barebox_set_hostname("imx233-olinuxino"); diff --git a/arch/arm/boards/imx233-olinuxino/lowlevel.c b/arch/arm/boards/imx233-olinuxino/lowlevel.c index 07a2a0e293..253cf1257b 100644 --- a/arch/arm/boards/imx233-olinuxino/lowlevel.c +++ b/arch/arm/boards/imx233-olinuxino/lowlevel.c @@ -7,10 +7,11 @@ #include <io.h> #include <debug_ll.h> #include <mach/iomux.h> +#include <generated/mach-types.h> ENTRY_FUNCTION(start_barebox_olinuxino_imx23, r0, r1, r2) { - barebox_arm_entry(IMX_MEMORY_BASE, SZ_64M, NULL); + barebox_arm_entry(IMX_MEMORY_BASE, SZ_64M, (void *)MACH_TYPE_IMX233_OLINUXINO); } static const uint32_t pad_setup[] = { |