[PATCH 3/3] i.MX6: phytec: Allow multiple MMC devices to contain boot environment
Andrey Smirnov
andrew.smirnov at gmail.com
Thu Jan 15 18:32:36 PST 2015
Add code so that when booting from different SDHCI controllers barebox
would correctly set up where to look for bootloader environment.
Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
arch/arm/boards/phytec-phyflex-imx6/board.c | 10 +++++++---
arch/arm/dts/imx6qdl-phytec-pfla02.dtsi | 20 +++++++++++++++++++-
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boards/phytec-phyflex-imx6/board.c b/arch/arm/boards/phytec-phyflex-imx6/board.c
index c731faf..5f65261 100644
--- a/arch/arm/boards/phytec-phyflex-imx6/board.c
+++ b/arch/arm/boards/phytec-phyflex-imx6/board.c
@@ -17,6 +17,7 @@
*
*/
+#include <malloc.h>
#include <envfs.h>
#include <environment.h>
#include <bootsource.h>
@@ -79,14 +80,15 @@ static int phytec_pfla02_init(void)
switch (bootsource_get()) {
case BOOTSOURCE_MMC:
- environment_path = "/chosen/environment-sd";
+ environment_path = asprintf("/chosen/environment-sd%d",
+ bootsource_get_instance() + 1);
break;
case BOOTSOURCE_NAND:
- environment_path = "/chosen/environment-nand";
+ environment_path = asprintf("/chosen/environment-nand");
break;
default:
case BOOTSOURCE_SPI:
- environment_path = "/chosen/environment-spinor";
+ environment_path = asprintf("/chosen/environment-spinor");
break;
}
@@ -95,6 +97,8 @@ static int phytec_pfla02_init(void)
pr_warn("Failed to enable environment partition '%s' (%d)\n",
environment_path, ret);
+ free(environment_path);
+
return 0;
}
device_initcall(phytec_pfla02_init);
diff --git a/arch/arm/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/dts/imx6qdl-phytec-pfla02.dtsi
index 32ce088..85cfec3 100644
--- a/arch/arm/dts/imx6qdl-phytec-pfla02.dtsi
+++ b/arch/arm/dts/imx6qdl-phytec-pfla02.dtsi
@@ -23,11 +23,29 @@
status = "disabled";
};
- environment-sd {
+ environment-sd1 {
+ compatible = "barebox,environment";
+ device-path = &usdhc1, "partname:barebox-environment";
+ status = "disabled";
+ };
+
+ environment-sd2 {
+ compatible = "barebox,environment";
+ device-path = &usdhc2, "partname:barebox-environment";
+ status = "disabled";
+ };
+
+ environment-sd3 {
compatible = "barebox,environment";
device-path = &usdhc3, "partname:barebox-environment";
status = "disabled";
};
+
+ environment-sd4 {
+ compatible = "barebox,environment";
+ device-path = &usdhc4, "partname:barebox-environment";
+ status = "disabled";
+ };
};
};
--
2.1.0
More information about the barebox
mailing list