On 2022/7/23 00:06, Quentin Schulz wrote:
From: Quentin Schulz <quentin.sch...@theobroma-systems.com>

Automatically detect which MMC device (SD-Card or eMMC) was used to load
U-Boot proper and load the environment from that MMC device instead of
a hardcoded one.

Cc: Quentin Schulz <foss+ub...@0leil.net>
Signed-off-by: Quentin Schulz <quentin.sch...@theobroma-systems.com>

Reviewed-by: Kever Yang <kever.y...@rock-chips.com>

Thanks,
- Kever
---

Depends on
https://lore.kernel.org/u-boot/20220715151552.953654-1-foss+ub...@0leil.net/

  .../puma_rk3399/puma-rk3399.c                 | 22 +++++++++++++++++++
  1 file changed, 22 insertions(+)

diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c 
b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
index ce3436b770..5e5e58c88e 100644
--- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
+++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
@@ -113,6 +113,28 @@ static int setup_boottargets(void)
        return 0;
  }
+int mmc_get_env_dev(void)
+{
+       const char *boot_device =
+               ofnode_read_chosen_string("u-boot,spl-boot-device");
+
+       if (!boot_device) {
+               debug("%s: /chosen/u-boot,spl-boot-device not set\n",
+                     __func__);
+               return CONFIG_SYS_MMC_ENV_DEV;
+       }
+
+       debug("%s: booted from %s\n", __func__, boot_device);
+
+       if (!strcmp(boot_device, "/mmc@fe320000"))
+               return 1;
+
+       if (!strcmp(boot_device, "/mmc@fe330000"))
+               return 0;
+
+       return CONFIG_SYS_MMC_ENV_DEV;
+}
+
  int misc_init_r(void)
  {
        const u32 cpuid_offset = 0x7;

Reply via email to