
Minkyu Kang wrote:
This patch improves device command for selecting mmc device
We should add Andy to CC, as it seems that he is the new MMC maintainer :)
Andy: Would be quite nice if you could comment on Minkyu's changes. See [1], [2] and [3] for the history, too.
Dirk
[1] http://lists.denx.de/pipermail/u-boot/2009-March/049660.html
[2] http://lists.denx.de/pipermail/u-boot/2009-March/049694.html
[3] http://lists.denx.de/pipermail/u-boot/2009-March/049707.html
Signed-off-by: Minkyu Kang mk7.kang@samsung.com
common/cmd_mmc.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 64 insertions(+), 5 deletions(-)
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 16c919b..2557892 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -26,20 +26,79 @@ #include <mmc.h>
#ifndef CONFIG_GENERIC_MMC +int curr_device = -1;
int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) {
- if (mmc_legacy_init (1) != 0) {
printf ("No MMC card found\n");
- switch (argc) {
- case 0:
- case 1:
cmd_usage(cmdtp);
return 1;
- case 2:
if (strncmp(argv[1], "init", 4) == 0) {
if (curr_device < 0)
curr_device = 1;
if (mmc_legacy_init(curr_device) != 0) {
printf("No MMC card found\n");
return 1;
}
printf("mmc%d is available\n", curr_device);
return 0;
} else if (strncmp(argv[1], "dev", 3) == 0) {
if (curr_device < 0) {
printf("no MMC devices available\n");
return 1;
}
printf("mmc%d is current device\n", curr_device);
return 0;
}
cmd_usage(cmdtp);
return 1;
- case 3:
if (strncmp(argv[1], "init", 4) == 0) {
int dev = (int)simple_strtoul(argv[2], NULL, 10);
if (mmc_legacy_init(dev) != 0) {
printf("No MMC card found\n");
return 1;
}
curr_device = dev;
printf("mmc%d is available\n", curr_device);
return 0;
} else if (strncmp(argv[1], "dev", 3) == 0) {
int dev = (int)simple_strtoul(argv[2], NULL, 10);
+#ifdef CONFIG_SYS_MMC_SET_DEV
if (mmc_set_dev(dev) != 0)
return 1;
+#endif
curr_device = dev;
printf("mmc%d is now current device\n", curr_device);
return 0;
}
return 1; } return 0;cmd_usage(cmdtp);
}
U_BOOT_CMD(
- mmcinit, 1, 0, do_mmc,
- "init mmc card",
- NULL
- mmc, 3, 1, do_mmc,
- "MMC sub-system",
- "mmc init [dev] - init MMC sub system\n"
- "mmc device [dev] - show or set current device\n"
);
#else /* !CONFIG_GENERIC_MMC */