diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2014-02-17 13:04:12 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-19 11:25:31 +0100 |
commit | d7db7df1879e17d547e123f9a56abeac26aab203 (patch) | |
tree | c397a9ea612a218a2c964bcf35c0ffcaac96257d /arch/arm/boards/freescale-mx6-sabresd | |
parent | e73419d1a6e80548b1822741cbaea4ddbf1c00d8 (diff) | |
download | barebox-d7db7df1879e17d547e123f9a56abeac26aab203.tar.gz barebox-d7db7df1879e17d547e123f9a56abeac26aab203.tar.xz |
ARM: i.MX6: sabresd: switch to multi-image
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/freescale-mx6-sabresd')
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/board.c | 33 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6-sabresd.imxcfg (renamed from arch/arm/boards/freescale-mx6-sabresd/flash-header.imxcfg) | 0 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/lowlevel.c | 11 |
4 files changed, 22 insertions, 25 deletions
diff --git a/arch/arm/boards/freescale-mx6-sabresd/Makefile b/arch/arm/boards/freescale-mx6-sabresd/Makefile index 01c7a259e9..f72c641e17 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/Makefile +++ b/arch/arm/boards/freescale-mx6-sabresd/Makefile @@ -1,2 +1,3 @@ -obj-y += board.o +obj-y += board.o flash-header-mx6-sabresd.dcd.o +extra-y += flash-header-mx6-sabresd.dcd.S flash-header-mx6-sabresd.dcd lwl-y += lowlevel.o diff --git a/arch/arm/boards/freescale-mx6-sabresd/board.c b/arch/arm/boards/freescale-mx6-sabresd/board.c index c87b555384..4e4ce7a015 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/board.c +++ b/arch/arm/boards/freescale-mx6-sabresd/board.c @@ -40,14 +40,6 @@ #define PHY_ID_AR8031 0x004dd074 #define AR_PHY_ID_MASK 0xffffffff -static int sabresd_mem_init(void) -{ - arm_add_mem_device("ram0", 0x10000000, SZ_1G); - - return 0; -} -mem_initcall(sabresd_mem_init); - static int ar8031_phy_fixup(struct phy_device *dev) { u16 val; @@ -71,27 +63,21 @@ static int ar8031_phy_fixup(struct phy_device *dev) return 0; } -static void sabresd_phy_reset(void) -{ - /* Reset AR8031 PHY */ - gpio_direction_output(IMX_GPIO_NR(1, 25) , 0); - udelay(500); - gpio_set_value(IMX_GPIO_NR(1, 25), 1); -} - static int sabresd_devices_init(void) { + if (!of_machine_is_compatible("fsl,imx6q-sabresd")) + return 0; + armlinux_set_architecture(3980); - devfs_add_partition("disk0", 0, SZ_1M, DEVFS_PARTITION_FIXED, "self0"); - devfs_add_partition("disk0", SZ_1M + SZ_1M, SZ_512K, DEVFS_PARTITION_FIXED, "env0"); return 0; } device_initcall(sabresd_devices_init); static int sabresd_coredevices_init(void) { - sabresd_phy_reset(); + if (!of_machine_is_compatible("fsl,imx6q-sabresd")) + return 0; phy_register_fixup_for_uid(PHY_ID_AR8031, AR_PHY_ID_MASK, ar8031_phy_fixup); @@ -102,14 +88,17 @@ static int sabresd_coredevices_init(void) * Do this before the fec initializes but after our * gpios are available. */ -fs_initcall(sabresd_coredevices_init); +coredevice_initcall(sabresd_coredevices_init); -static int sabresd_core_init(void) +static int sabresd_postcore_init(void) { + if (!of_machine_is_compatible("fsl,imx6q-sabresd")) + return 0; + imx6_init_lowlevel(); barebox_set_hostname("sabresd"); return 0; } -core_initcall(sabresd_core_init); +postcore_initcall(sabresd_postcore_init); diff --git a/arch/arm/boards/freescale-mx6-sabresd/flash-header.imxcfg b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6-sabresd.imxcfg index 21f217cdf3..21f217cdf3 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/flash-header.imxcfg +++ b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6-sabresd.imxcfg diff --git a/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c b/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c index aec46fd8cc..c8b542aa25 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c +++ b/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c @@ -3,8 +3,15 @@ #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> -void __naked barebox_arm_reset_vector(void) +extern char __dtb_imx6q_sabresd_start[]; + +ENTRY_FUNCTION(start_imx6q_sabresd, r0, r1, r2) { + uint32_t fdt; + arm_cpu_lowlevel_init(); - barebox_arm_entry(0x10000000, SZ_1G, 0); + + fdt = (uint32_t)__dtb_imx6q_sabresd_start - get_runtime_offset(); + + barebox_arm_entry(0x10000000, SZ_1G, fdt); } |