All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/5] sunxi: autodetect SD/eMMC device for environment
Date: Sat,  8 Jun 2019 02:26:55 +0100	[thread overview]
Message-ID: <20190608012658.5369-3-andre.przywara@arm.com> (raw)
In-Reply-To: <20190608012658.5369-1-andre.przywara@arm.com>

When using the environment from a raw MMC device, we are required to
specify the desired device number at configuration time. This creates
problems when the same image is booted from SD cards and eMMC devices.

Override the generic weak definition of mmc_get_env_dev() to query for
the boot source, returning the corresponding device number. This will
automatically pick the environment from the right device.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 board/sunxi/board.c            | 19 +++++++++++++++++++
 include/configs/sunxi-common.h |  7 -------
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 98bc3cd0c1..973dba4578 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -208,6 +208,25 @@ enum env_location env_get_location(enum env_operation op, int prio)
 }
 #endif
 
+/* Determine whether to use the environment from SD card or eMMC. */
+int mmc_get_env_dev(void)
+{
+	/* Use the environment from the boot device, if booted from (e)MMC. */
+	switch (sunxi_get_boot_device()) {
+	case BOOT_DEVICE_MMC1:
+		return 0;
+	case BOOT_DEVICE_MMC2:
+		return 1;
+	}
+
+	/* If there is no eMMC configured, use the SD card. */
+	if (CONFIG_MMC_SUNXI_SLOT_EXTRA == -1)
+		return 0;
+
+	/* Otherwise use the environment on the eMMC. */
+	return 1;
+}
+
 #ifdef CONFIG_DM_MMC
 static void mmc_pinmux_setup(int sdc);
 #endif
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index fceb812448..aca0eca806 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -138,13 +138,6 @@
 #define CONFIG_BOARD_SIZE_LIMIT		0x7e000
 #endif
 
-#if CONFIG_MMC_SUNXI_SLOT_EXTRA != -1
-/* If we have two devices (most likely eMMC + MMC), favour the eMMC */
-#define CONFIG_SYS_MMC_ENV_DEV		1
-#else
-/* Otherwise, use the only device we have */
-#define CONFIG_SYS_MMC_ENV_DEV		0
-#endif
 #define CONFIG_SYS_MMC_MAX_DEVICE	4
 #endif
 
-- 
2.14.5

  parent reply	other threads:[~2019-06-08  1:26 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-08  1:26 [U-Boot] [PATCH 0/5] sunxi: env: Load environment from boot media Andre Przywara
2019-06-08  1:26 ` [U-Boot] [PATCH 1/5] env: allow undefined CONFIG_SYS_MMC_ENV_DEV Andre Przywara
2019-06-08 13:13   ` Tom Rini
2019-06-10  9:35     ` Andre Przywara
2019-06-10 21:53       ` Tom Rini
2019-06-08  1:26 ` Andre Przywara [this message]
2019-06-08  1:26 ` [U-Boot] [PATCH 3/5] env: allow runtime determination of FAT environment partition Andre Przywara
2019-06-08 13:13   ` Tom Rini
2019-06-08  1:26 ` [U-Boot] [PATCH 4/5] sunxi: use FAT environment from boot source Andre Przywara
2019-06-08  1:26 ` [U-Boot] [PATCH 5/5] sunxi: use boot source for determining environment location Andre Przywara
2019-06-10  8:30 ` [U-Boot] [PATCH 0/5] sunxi: env: Load environment from boot media Maxime Ripard
2019-06-10  9:11   ` Andre Przywara
2019-06-11  9:37     ` Maxime Ripard
2019-06-11 14:28       ` Tom Rini
2019-06-11 14:53         ` Maxime Ripard
2019-06-11 15:20           ` Tom Rini
2019-06-11 15:34           ` Andre Przywara
2019-06-11 16:10             ` Tom Rini
2019-06-12 13:08             ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190608012658.5369-3-andre.przywara@arm.com \
    --to=andre.przywara@arm.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.