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.smir...@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


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to