summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-09-12 13:11:05 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-10-02 08:42:20 +0200
commite78de630996d6a0da262f0d1a0c452fe7765c7d0 (patch)
tree67009a001d07fc32d146f2b7053567382823d20a /arch/arm
parentfb6c774884d65229047d294ec1d6b7d3b940ed52 (diff)
downloadbarebox-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.c8
-rw-r--r--arch/arm/boards/imx233-olinuxino/lowlevel.c3
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[] = {