diff options
author | Andrey Panov <rockford@yandex.ru> | 2015-01-17 15:55:17 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-01-19 08:39:42 +0100 |
commit | ff0b8822d4c31766bdf1fb1a62d4cd04a9731545 (patch) | |
tree | 99de68d45c5f3ae76dc78e130434cefcebc2e85f /arch | |
parent | 74f042c956febf58b990c094ec7120f3f6b92c2a (diff) | |
download | barebox-ff0b8822d4c31766bdf1fb1a62d4cd04a9731545.tar.gz barebox-ff0b8822d4c31766bdf1fb1a62d4cd04a9731545.tar.xz |
ARM: IMX: Embedsky E9: Choose right environment when booting from SD or EMMC.
Signed-off-by: Andrey Panov <rockford@yandex.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boards/embedsky-e9/board.c | 17 | ||||
-rw-r--r-- | arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 | 4 | ||||
-rw-r--r-- | arch/arm/dts/imx6q-embedsky-e9.dts | 23 |
3 files changed, 40 insertions, 4 deletions
diff --git a/arch/arm/boards/embedsky-e9/board.c b/arch/arm/boards/embedsky-e9/board.c index 1e7e06788a..e8aac0c1b0 100644 --- a/arch/arm/boards/embedsky-e9/board.c +++ b/arch/arm/boards/embedsky-e9/board.c @@ -40,6 +40,7 @@ #include <mach/spi.h> #include <mach/usb.h> #include <envfs.h> +#include <bootsource.h> #define PHY_ID_RTL8211E 0x001cc915 #define PHY_ID_MASK 0xffffffff @@ -59,11 +60,25 @@ static int rtl8211e_phy_fixup(struct phy_device *dev) static int e9_devices_init(void) { + int ret; + char *environment_path; + if (!of_machine_is_compatible("embedsky,e9")) return 0; armlinux_set_architecture(3980); - barebox_set_hostname("e9"); + + environment_path = asprintf("/chosen/environment-mmc%d", + bootsource_get_instance()); + + ret = of_device_enable_path(environment_path); + + if (ret < 0) + pr_warn("Failed to enable environment partition '%s' (%d)\n", + environment_path, ret); + + free(environment_path); + defaultenv_append_directory(defaultenv_e9); return 0; diff --git a/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 b/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 index 374eb1cfe6..f6cb529d3c 100644 --- a/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 +++ b/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 @@ -2,5 +2,5 @@ mount /dev/mmc3.0 -global.bootm.image=/mnt/mmc3.0/boot/zImage -global.linux.bootargs.dyn.root="root=/dev/mmcblk1p1 rootwait" +global.bootm.image=/mnt/mmc3.0/zImage +global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rootwait" diff --git a/arch/arm/dts/imx6q-embedsky-e9.dts b/arch/arm/dts/imx6q-embedsky-e9.dts index d8a606a1bb..53665cf9d5 100644 --- a/arch/arm/dts/imx6q-embedsky-e9.dts +++ b/arch/arm/dts/imx6q-embedsky-e9.dts @@ -19,9 +19,16 @@ chosen { linux,stdout-path = &uart4; - environment@0 { + environment-mmc1 { compatible = "barebox,environment"; device-path = &usdhc2, "partname:barebox-environment"; + status = "disabled"; + }; + + environment-mmc3 { + compatible = "barebox,environment"; + device-path = &usdhc4, "partname:barebox-environment"; + status = "disabled"; }; }; @@ -40,3 +47,17 @@ reg = <0x80000 0x80000>; }; }; + +&usdhc4 { + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "barebox"; + reg = <0x0 0x80000>; + }; + partition@1 { + label = "barebox-environment"; + reg = <0x80000 0x80000>; + }; +}; |