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 <[email protected]> > --- > 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; > + } > + > + cmd_usage(cmdtp); > return 1; > } > return 0; > } > > 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 */ > _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

