summaryrefslogtreecommitdiff
path: root/common/cmd_mmc.c
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2014-05-23 12:48:10 -0600
committerPantelis Antoniou <panto@antoniou-consulting.com>2014-06-12 15:21:12 +0300
commit60dc58f735f173458ebed217cc7fe0c24816f383 (patch)
tree2f9e47160c7231c43fad8f3b1b89065fc7ec635d /common/cmd_mmc.c
parentd4622df34280830cfe0678f098d3d9f62e6b5d94 (diff)
downloadu-boot-60dc58f735f173458ebed217cc7fe0c24816f383.tar.gz
u-boot-60dc58f735f173458ebed217cc7fe0c24816f383.tar.bz2
u-boot-60dc58f735f173458ebed217cc7fe0c24816f383.zip
cmd_mmc: default to HW partition 0 if not specified
Currently, "mmc dev 0" does not change the selected HW partition. I think it makes more sense if "mmc dev 0" is an alias for "mmc dev 0 0", i.e. that HW partition 0 (main data area) is always selected by default if the user didn't request a specific partition. Otherwise, the following happens, which feels wrong: Select HW partition 1 (boot0): mmc dev 0 1 Doesn't change the HW partition, so it's still 1 (boot0): mmc dev 0 With this patch, the second command above re-selects the main data area. Note that some MMC devices (i.e. SD cards) don't support HW partitions. However, this patch still works, since mmc_start_init() sets the current partition number to 0, and mmc_select_hwpart() succeeds if the requested partition is already selected. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Diffstat (limited to 'common/cmd_mmc.c')
-rw-r--r--common/cmd_mmc.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index eea337506c..9e6a26fe62 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -403,7 +403,7 @@ static int do_mmc_part(cmd_tbl_t *cmdtp, int flag,
static int do_mmc_dev(cmd_tbl_t *cmdtp, int flag,
int argc, char * const argv[])
{
- int dev, part = -1, ret;
+ int dev, part = 0, ret;
struct mmc *mmc;
if (argc == 1) {
@@ -426,13 +426,12 @@ static int do_mmc_dev(cmd_tbl_t *cmdtp, int flag,
if (!mmc)
return CMD_RET_FAILURE;
- if (part != -1) {
- ret = mmc_select_hwpart(dev, part);
- printf("switch to partitions #%d, %s\n",
- part, (!ret) ? "OK" : "ERROR");
- if (ret)
- return 1;
- }
+ ret = mmc_select_hwpart(dev, part);
+ printf("switch to partitions #%d, %s\n",
+ part, (!ret) ? "OK" : "ERROR");
+ if (ret)
+ return 1;
+
curr_device = dev;
if (mmc->part_config == MMCPART_NOAVAILABLE)
printf("mmc%d is current device\n", curr_device);