Skip to content
Snippets Groups Projects
Commit 569e4be1 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

ARM: uniphier: add a command to find the first MMC (non-SD) device


UniPhier SoC family supports both (e)MMC boot and SD card boot;
however, both of them are handled in the same uclass.

When booting from the eMMC, we want to know the device number
of the (e)MMC, not SD.  This command is useful to find the first
MMC (non-SD) device.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent a55d9fee
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <common.h> #include <common.h>
#include <mmc.h> #include <mmc.h>
#include <spl.h> #include <spl.h>
#include <linux/err.h>
#include "../sbc/sbc-regs.h" #include "../sbc/sbc-regs.h"
#include "../soc-info.h" #include "../soc-info.h"
...@@ -77,3 +78,36 @@ u32 spl_boot_mode(void) ...@@ -77,3 +78,36 @@ u32 spl_boot_mode(void)
return MMCSD_MODE_EMMCBOOT; return MMCSD_MODE_EMMCBOOT;
} }
#if defined(CONFIG_DM_MMC) && !defined(CONFIG_SPL_BUILD)
static int find_first_mmc_device(void)
{
struct mmc *mmc;
int i;
for (i = 0; (mmc = find_mmc_device(i)); i++) {
if (!mmc_init(mmc) && IS_MMC(mmc))
return i;
}
return -ENODEV;
}
static int do_mmcsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int dev;
dev = find_first_mmc_device();
if (dev < 0)
return CMD_RET_FAILURE;
setenv_ulong("mmc_first_dev", dev);
return CMD_RET_SUCCESS;
}
U_BOOT_CMD(
mmcsetn, 1, 1, do_mmcsetn,
"Set the first MMC (not SD) dev number to \"mmc_first_dev\" enviroment",
""
);
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment