Patchwork [U-Boot] tegra: use generic fs commands in BOOTCOMMAND

login
register
mail settings
Submitter Stephen Warren
Date Nov. 5, 2012, 11:22 p.m.
Message ID <1352157720-15343-1-git-send-email-swarren@wwwdotorg.org>
Download mbox | patch
Permalink /patch/197362/
State Accepted
Delegated to: Tom Warren
Headers show

Comments

Stephen Warren - Nov. 5, 2012, 11:22 p.m.
From: Stephen Warren <swarren@nvidia.com>

Modify tegra-common-post.h's BOOTCOMMAND definition to use the generic
filesystem command load rather than separate fatload and ext2load.
This removes the need to iterate over supported filesystem types in the
boot command.

This requires editing all board config headers to enable the new
commands. The now-unused commands are left enabled to assue backwards
compatibility with any user scripts. Boards (all from Avionic Design)
which define custom BOOTCOMMAND values are not affected.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
tegra generic fs cmds fixup
---
Tom, this patch is based on u-boot/master, since it depends on commit
f9b55e2 "fs: rename fsload command to load" having been applied. I guess
you'll need to either rebase u-boot-tegra/next onto that, or wait until
you pick up that commit for other reasons.

 include/configs/harmony.h           |    3 ++
 include/configs/paz00.h             |    3 ++
 include/configs/seaboard.h          |    3 ++
 include/configs/tegra-common-post.h |   39 ++++++++++++++--------------------
 include/configs/trimslice.h         |    3 ++
 include/configs/ventana.h           |    3 ++
 include/configs/whistler.h          |    3 ++
 7 files changed, 34 insertions(+), 23 deletions(-)
Simon Glass - Nov. 6, 2012, 12:09 a.m.
Hi Stephen,

On Mon, Nov 5, 2012 at 3:22 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> Modify tegra-common-post.h's BOOTCOMMAND definition to use the generic
> filesystem command load rather than separate fatload and ext2load.
> This removes the need to iterate over supported filesystem types in the
> boot command.
>
> This requires editing all board config headers to enable the new
> commands. The now-unused commands are left enabled to assue backwards
> compatibility with any user scripts. Boards (all from Avionic Design)
> which define custom BOOTCOMMAND values are not affected.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>

I tested this on Seaboard and it worked just as before (although
didn't actually load a kernel since there was not one there).

Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>

> tegra generic fs cmds fixup

What is this?

> ---
> Tom, this patch is based on u-boot/master, since it depends on commit
> f9b55e2 "fs: rename fsload command to load" having been applied. I guess
> you'll need to either rebase u-boot-tegra/next onto that, or wait until
> you pick up that commit for other reasons.
>

Regards,
Simon
Stephen Warren - Nov. 6, 2012, 3:43 a.m.
On 11/05/2012 05:09 PM, Simon Glass wrote:
> Hi Stephen,
> 
> On Mon, Nov 5, 2012 at 3:22 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> Modify tegra-common-post.h's BOOTCOMMAND definition to use the generic
>> filesystem command load rather than separate fatload and ext2load.
>> This removes the need to iterate over supported filesystem types in the
>> boot command.
>>
>> This requires editing all board config headers to enable the new
>> commands. The now-unused commands are left enabled to assue backwards
>> compatibility with any user scripts. Boards (all from Avionic Design)
>> which define custom BOOTCOMMAND values are not affected.
...
>> tegra generic fs cmds fixup
> 
> What is this?

Oops. That's the commit subject from where I squashed some fixes.
Perhaps Tom can remove it when he applies this, assuming I don't need to
repost for any reason.

Patch

diff --git a/include/configs/harmony.h b/include/configs/harmony.h
index 040bfe4..4839676 100644
--- a/include/configs/harmony.h
+++ b/include/configs/harmony.h
@@ -58,8 +58,11 @@ 
 
 #define CONFIG_DOS_PARTITION
 #define CONFIG_EFI_PARTITION
+#define CONFIG_FS_EXT4
+#define CONFIG_FS_FAT
 #define CONFIG_CMD_EXT2
 #define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
 
 /* NAND support */
 #define CONFIG_CMD_NAND
diff --git a/include/configs/paz00.h b/include/configs/paz00.h
index 5603de9..38c79cf 100644
--- a/include/configs/paz00.h
+++ b/include/configs/paz00.h
@@ -45,8 +45,11 @@ 
 
 #define CONFIG_DOS_PARTITION
 #define CONFIG_EFI_PARTITION
+#define CONFIG_FS_EXT4
+#define CONFIG_FS_FAT
 #define CONFIG_CMD_EXT2
 #define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
 
 /* Environment in eMMC, at the end of 2nd "boot sector" */
 #define CONFIG_ENV_IS_IN_MMC
diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
index ab10bd0..0605582 100644
--- a/include/configs/seaboard.h
+++ b/include/configs/seaboard.h
@@ -71,8 +71,11 @@ 
 
 #define CONFIG_DOS_PARTITION
 #define CONFIG_EFI_PARTITION
+#define CONFIG_FS_EXT4
+#define CONFIG_FS_FAT
 #define CONFIG_CMD_EXT2
 #define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
 
 /* Environment in eMMC, at the end of 2nd "boot sector" */
 #define CONFIG_ENV_IS_IN_MMC
diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h
index 6f310be..ab62e71 100644
--- a/include/configs/tegra-common-post.h
+++ b/include/configs/tegra-common-post.h
@@ -30,18 +30,6 @@ 
 
 #else
 
-#ifdef CONFIG_CMD_EXT2
-#define BOOT_FSTYPE_EXT2 "ext2 "
-#else
-#define BOOT_FSTYPE_EXT2 ""
-#endif
-
-#ifdef CONFIG_CMD_FAT
-#define BOOT_FSTYPE_FAT "fat"
-#else
-#define BOOT_FSTYPE_FAT ""
-#endif
-
 #ifdef CONFIG_CMD_MMC
 #define BOOTCMDS_MMC \
 	"mmc_boot=" \
@@ -98,7 +86,7 @@ 
 	"rootpart=1\0" \
 	\
 	"script_boot="                                                    \
-		"if ${fs}load ${devtype} ${devnum}:${rootpart} "          \
+		"if load ${devtype} ${devnum}:${rootpart} "               \
 				"${scriptaddr} ${prefix}${script}; then " \
 			"echo ${script} found! Executing ...;"            \
 			"source ${scriptaddr};"                           \
@@ -106,11 +94,9 @@ 
 	\
 	"scan_boot="                                                      \
 		"echo Scanning ${devtype} ${devnum}...; "                 \
-		"for fs in ${boot_fstypes}; do "                          \
-			"for prefix in ${boot_prefixes}; do "             \
-				"for script in ${boot_scripts}; do "      \
-					"run script_boot; "               \
-				"done; "                                  \
+		"for prefix in ${boot_prefixes}; do "                     \
+			"for script in ${boot_scripts}; do "              \
+				"run script_boot; "                       \
 			"done; "                                          \
 		"done;\0"                                                 \
 	\
@@ -120,11 +106,6 @@ 
 		BOOT_TARGETS_DHCP " " \
 		"\0" \
 	\
-	"boot_fstypes=" \
-		BOOT_FSTYPE_EXT2 " " \
-		BOOT_FSTYPE_FAT " " \
-		"\0" \
-	\
 	"boot_prefixes=/ /boot/\0" \
 	\
 	"boot_scripts=boot.scr.uimg boot.scr\0" \
@@ -226,12 +207,24 @@ 
 #ifdef CONFIG_EFI_PARTITION
 #undef CONFIG_EFI_PARTITION
 #endif
+#ifdef CONFIG_CMD_FS_GENERIC
+#undef CONFIG_CMD_FS_GENERIC
+#endif
+#ifdef CONFIG_CMD_EXT4
+#undef CONFIG_CMD_EXT4
+#endif
 #ifdef CONFIG_CMD_EXT2
 #undef CONFIG_CMD_EXT2
 #endif
 #ifdef CONFIG_CMD_FAT
 #undef CONFIG_CMD_FAT
 #endif
+#ifdef CONFIG_FS_EXT4
+#undef CONFIG_FS_EXT4
+#endif
+#ifdef CONFIG_FS_FAT
+#undef CONFIG_FS_FAT
+#endif
 
 /* remove USB */
 #ifdef CONFIG_USB_EHCI
diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h
index 165bc73..334d3a3 100644
--- a/include/configs/trimslice.h
+++ b/include/configs/trimslice.h
@@ -69,8 +69,11 @@ 
 
 #define CONFIG_DOS_PARTITION
 #define CONFIG_EFI_PARTITION
+#define CONFIG_FS_EXT4
+#define CONFIG_FS_FAT
 #define CONFIG_CMD_EXT2
 #define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
 
 /* Environment in SPI */
 #define CONFIG_ENV_IS_IN_SPI_FLASH
diff --git a/include/configs/ventana.h b/include/configs/ventana.h
index 4c9b31c..b55ebc9 100644
--- a/include/configs/ventana.h
+++ b/include/configs/ventana.h
@@ -52,8 +52,11 @@ 
 
 #define CONFIG_DOS_PARTITION
 #define CONFIG_EFI_PARTITION
+#define CONFIG_FS_EXT4
+#define CONFIG_FS_FAT
 #define CONFIG_CMD_EXT2
 #define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
 
 /* Environment in eMMC, at the end of 2nd "boot sector" */
 #define CONFIG_ENV_IS_IN_MMC
diff --git a/include/configs/whistler.h b/include/configs/whistler.h
index 1c7803b..1e554d8 100644
--- a/include/configs/whistler.h
+++ b/include/configs/whistler.h
@@ -61,8 +61,11 @@ 
 
 #define CONFIG_DOS_PARTITION
 #define CONFIG_EFI_PARTITION
+#define CONFIG_FS_EXT4
+#define CONFIG_FS_FAT
 #define CONFIG_CMD_EXT2
 #define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
 
 /*
  * Environment in eMMC, at the end of 2nd "boot sector". Note: This assumes