summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndrey Panov <rockford@yandex.ru>2015-01-17 15:55:17 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2015-01-19 08:39:42 +0100
commitff0b8822d4c31766bdf1fb1a62d4cd04a9731545 (patch)
tree99de68d45c5f3ae76dc78e130434cefcebc2e85f /arch
parent74f042c956febf58b990c094ec7120f3f6b92c2a (diff)
downloadbarebox-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.c17
-rw-r--r--arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc34
-rw-r--r--arch/arm/dts/imx6q-embedsky-e9.dts23
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>;
+ };
+};