Patchwork [U-Boot,11/11] spl_mmc/CONFIG_SPL_OS_BOOT: Allow environment to determine what to boot

login
register
mail settings
Submitter Tom Rini
Date Sept. 26, 2013, 8:28 p.m.
Message ID <1380227287-26057-12-git-send-email-trini@ti.com>
Download mbox | patch
Permalink /patch/278268/
State Superseded
Delegated to: Tom Rini
Headers show

Comments

Tom Rini - Sept. 26, 2013, 8:28 p.m.
We add two new environment variables, falcon_args_file and
falcon_image_file, which when set will override the compiled in default
values for falcon mode.

Signed-off-by: Tom Rini <trini@ti.com>
---
 common/spl/spl_mmc.c |   28 +++++++++++++++++++++++++++-
 doc/README.falcon    |    4 ++++
 2 files changed, 31 insertions(+), 1 deletion(-)

Patch

diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index fc2f226..5405bbc 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -100,7 +100,33 @@  end:
 static int mmc_load_image_fat_os(struct mmc *mmc)
 {
 	int err;
-
+#if defined(CONFIG_SPL_ENV_SUPPORT) && defined(CONFIG_SPL_OS_BOOT)
+	char *file;
+
+	file = getenv("falcon_args_file");
+	if (file) {
+		err = file_fat_read(file, (void *)CONFIG_SYS_SPL_ARGS_ADDR, 0);
+		if (err <= 0) {
+			printf("spl: error reading image %s, err - %d, falling back to default\n",
+			       file, err);
+			goto defaults;
+		}
+		file = getenv("falcon_image_file");
+		if (file) {
+			err = mmc_load_image_fat(mmc, file);
+			if (err != 0) {
+				puts("spl: falling back to default\n");
+				goto defaults;
+			}
+
+			return 0;
+		} else
+			puts("spl: falcon_image_file not set in environment, falling back to default\n");
+	} else
+		puts("spl: falcon_args_file not set in environment, falling back to default\n");
+
+defaults:
+#endif
 	err = file_fat_read(CONFIG_SPL_FAT_LOAD_ARGS_NAME,
 			    (void *)CONFIG_SYS_SPL_ARGS_ADDR, 0);
 	if (err <= 0) {
diff --git a/doc/README.falcon b/doc/README.falcon
index bccf6c9..82a254b 100644
--- a/doc/README.falcon
+++ b/doc/README.falcon
@@ -89,6 +89,10 @@  mode.  In this case the following variables may be supported:
 boot_os : 		Set to yes/Yes/true/True/1 to enable booting to OS,
 			any other value to fall back to U-Boot (including
 			unset)
+falcon_args_file :	Filename to load as the 'args' portion of falcon mode
+			rather than the hard-coded value.
+falcon_image_file :	Filename to load as the OS image portion of falcon
+			mode rather than the hard-coded value.
 
 Using spl command
 -----------------