diff mbox

[U-Boot,v2,3/3] mx6qsabre{sd,auto}: Add boot mode select

Message ID 1362315912-11170-4-git-send-email-otavio@ossystems.com.br
State Superseded
Delegated to: Stefano Babic
Headers show

Commit Message

Otavio Salvador March 3, 2013, 1:05 p.m. UTC
Adds support for 'bmode' command which let user to choose where to
boot from; this allows U-Boot to load system from another storage
without messing with jumpers.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v2: None

 board/freescale/mx6qsabreauto/mx6qsabreauto.c | 17 +++++++++++++++++
 board/freescale/mx6qsabresd/mx6qsabresd.c     | 20 ++++++++++++++++++++
 include/configs/mx6qsabre_common.h            |  4 +++-
 3 files changed, 40 insertions(+), 1 deletion(-)

Comments

Fabio Estevam March 3, 2013, 2:41 p.m. UTC | #1
On Sun, Mar 3, 2013 at 10:05 AM, Otavio Salvador
<otavio@ossystems.com.br> wrote:

> -#define CONFIG_BOOTDELAY               1
> +#define CONFIG_BOOTDELAY               10

I am not interested in waiting 10 seconds for the board to boot.
Otavio Salvador March 3, 2013, 2:46 p.m. UTC | #2
On Sun, Mar 3, 2013 at 11:41 AM, Fabio Estevam <festevam@gmail.com> wrote:
> On Sun, Mar 3, 2013 at 10:05 AM, Otavio Salvador
> <otavio@ossystems.com.br> wrote:
>
>> -#define CONFIG_BOOTDELAY               1
>> +#define CONFIG_BOOTDELAY               10
>
> I am not interested in waiting 10 seconds for the board to boot.

This indeed wasn't suppose to be in the change. Except from it,
anything else to fix?
diff mbox

Patch

diff --git a/board/freescale/mx6qsabreauto/mx6qsabreauto.c b/board/freescale/mx6qsabreauto/mx6qsabreauto.c
index 9e3700e..9650563 100644
--- a/board/freescale/mx6qsabreauto/mx6qsabreauto.c
+++ b/board/freescale/mx6qsabreauto/mx6qsabreauto.c
@@ -216,6 +216,23 @@  int board_init(void)
 	return 0;
 }
 
+#ifdef CONFIG_CMD_BMODE
+static const struct boot_mode board_boot_modes[] = {
+	/* 4 bit bus width */
+	{"mmc0", MAKE_CFGVAL(0x40, 0x30, 0x00, 0x00)},
+	{NULL,   0},
+};
+#endif
+
+int board_late_init(void)
+{
+#ifdef CONFIG_CMD_BMODE
+	add_board_boot_modes(board_boot_modes);
+#endif
+
+	return 0;
+}
+
 int checkboard(void)
 {
 	int rev = mx6sabre_rev();
diff --git a/board/freescale/mx6qsabresd/mx6qsabresd.c b/board/freescale/mx6qsabresd/mx6qsabresd.c
index 3fe8bb6..02f2924 100644
--- a/board/freescale/mx6qsabresd/mx6qsabresd.c
+++ b/board/freescale/mx6qsabresd/mx6qsabresd.c
@@ -266,6 +266,26 @@  int board_init(void)
 	return 0;
 }
 
+#ifdef CONFIG_CMD_BMODE
+static const struct boot_mode board_boot_modes[] = {
+	/* 4 bit bus width */
+	{"sd2",	 MAKE_CFGVAL(0x40, 0x28, 0x00, 0x00)},
+	{"sd3",	 MAKE_CFGVAL(0x40, 0x30, 0x00, 0x00)},
+	/* 8 bit bus width */
+	{"emmc", MAKE_CFGVAL(0x40, 0x38, 0x00, 0x00)},
+	{NULL,	 0},
+};
+#endif
+
+int board_late_init(void)
+{
+#ifdef CONFIG_CMD_BMODE
+	add_board_boot_modes(board_boot_modes);
+#endif
+
+	return 0;
+}
+
 int checkboard(void)
 {
 	puts("Board: MX6Q-SabreSD\n");
diff --git a/include/configs/mx6qsabre_common.h b/include/configs/mx6qsabre_common.h
index f7e8779..805707c 100644
--- a/include/configs/mx6qsabre_common.h
+++ b/include/configs/mx6qsabre_common.h
@@ -33,6 +33,7 @@ 
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
 
 #define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_BOARD_LATE_INIT
 #define CONFIG_MXC_GPIO
 
 #define CONFIG_MXC_UART
@@ -72,10 +73,11 @@ 
 /* Command definition */
 #include <config_cmd_default.h>
 
+#define CONFIG_CMD_BMODE
 #define CONFIG_CMD_BOOTZ
 #undef CONFIG_CMD_IMLS
 
-#define CONFIG_BOOTDELAY               1
+#define CONFIG_BOOTDELAY               10
 
 #define CONFIG_LOADADDR                        0x12000000
 #define CONFIG_SYS_TEXT_BASE           0x17800000