Message ID | 1344237900-14815-1-git-send-email-dirk.behme@de.bosch.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On Mon, Aug 06 2012, Dirk Behme wrote: > On embedded devices, often there is a combination of removable mmc > devices (e.g. MMC/SD cards) and hard wired ones (e.g. eMMC). > Depending on the hardware configuration, the 'mmcblkN' node might > change if the removable device is available or not at boot time. > > E.g. if the removable device is attached at boot time, it might > become mmxblk0. And the hard wired one mmcblk1. But if the removable > device isn't there at boot time, the hard wired one will become > mmcblk0. This makes it somehow difficult to hard code the root device > to the non-removable device and boot fast. > > This change does simply associate 'N' of 'mmcblkN' with the slot index > instead of the dynamic name index. The slot index is always the same, > ensuring that the non-removable mmc device is associated always > with the same mmcblkN. Independent of the availability of the removable > one. I like this change in principle, but doesn't it break boot for everyone currently using e.g. root=/dev/mmcblk0p1 on slot index 2? That doesn't sound like an acceptable regression. Thanks, - Chris.
On 6 August 2012 21:01, Chris Ball <cjb@laptop.org> wrote: > Hi, > > On Mon, Aug 06 2012, Dirk Behme wrote: >> On embedded devices, often there is a combination of removable mmc >> devices (e.g. MMC/SD cards) and hard wired ones (e.g. eMMC). >> Depending on the hardware configuration, the 'mmcblkN' node might >> change if the removable device is available or not at boot time. >> >> E.g. if the removable device is attached at boot time, it might >> become mmxblk0. And the hard wired one mmcblk1. But if the removable >> device isn't there at boot time, the hard wired one will become >> mmcblk0. This makes it somehow difficult to hard code the root device >> to the non-removable device and boot fast. >> >> This change does simply associate 'N' of 'mmcblkN' with the slot index >> instead of the dynamic name index. The slot index is always the same, >> ensuring that the non-removable mmc device is associated always >> with the same mmcblkN. Independent of the availability of the removable >> one. > > I like this change in principle, but doesn't it break boot for everyone > currently using e.g. root=/dev/mmcblk0p1 on slot index 2? That doesn't > sound like an acceptable regression. > It shouldn't break boot for any user already doing the right thing. If the user's platform probes only slot-2, it will still be 'mmcblk0' If the platform probes slot-1 & 2, it is fundamentally unsafe to count upon the card in slot-2 to be enumerated before the one in slot-1. -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Chris, On 06.08.2012 17:31, Chris Ball wrote: > Hi, > > On Mon, Aug 06 2012, Dirk Behme wrote: >> On embedded devices, often there is a combination of removable mmc >> devices (e.g. MMC/SD cards) and hard wired ones (e.g. eMMC). >> Depending on the hardware configuration, the 'mmcblkN' node might >> change if the removable device is available or not at boot time. >> >> E.g. if the removable device is attached at boot time, it might >> become mmxblk0. And the hard wired one mmcblk1. But if the removable >> device isn't there at boot time, the hard wired one will become >> mmcblk0. This makes it somehow difficult to hard code the root device >> to the non-removable device and boot fast. >> >> This change does simply associate 'N' of 'mmcblkN' with the slot index >> instead of the dynamic name index. The slot index is always the same, >> ensuring that the non-removable mmc device is associated always >> with the same mmcblkN. Independent of the availability of the removable >> one. > > I like this change in principle, Thanks :) > but doesn't it break boot for everyone > currently using e.g. root=/dev/mmcblk0p1 on slot index 2? That doesn't > sound like an acceptable regression. I'm not really an expert of the code in block.c. Could you imagine a change which has the same result we'd like to get with the proposed patch but doesn't have the regression you mention? Many thanks and best regards Dirk -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index f1c84de..a01d306 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -1517,7 +1517,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, */ snprintf(md->disk->disk_name, sizeof(md->disk->disk_name), - "mmcblk%d%s", md->name_idx, subname ? subname : ""); + "mmcblk%d%s", card->host->index, subname ? subname : ""); if (mmc_card_mmc(card)) blk_queue_logical_block_size(md->queue.queue,
On embedded devices, often there is a combination of removable mmc devices (e.g. MMC/SD cards) and hard wired ones (e.g. eMMC). Depending on the hardware configuration, the 'mmcblkN' node might change if the removable device is available or not at boot time. E.g. if the removable device is attached at boot time, it might become mmxblk0. And the hard wired one mmcblk1. But if the removable device isn't there at boot time, the hard wired one will become mmcblk0. This makes it somehow difficult to hard code the root device to the non-removable device and boot fast. This change does simply associate 'N' of 'mmcblkN' with the slot index instead of the dynamic name index. The slot index is always the same, ensuring that the non-removable mmc device is associated always with the same mmcblkN. Independent of the availability of the removable one. This issue has a long history. One prominent one is e.g. from the Maemo based Nokia N810 device: https://bugs.maemo.org/show_bug.cgi?id=2747 Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com> CC: Jassi Brar <jaswinder.singh@linaro.org> CC: Chris Ball <cjb@laptop.org> --- drivers/mmc/card/block.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)