[U-Boot] [PATCH-OMAP3] OMAP3: Check for MMC card
Dirk Behme
dirk.behme at googlemail.com
Sat Dec 6 08:00:39 CET 2008
mmc_init was always returning success -- now returns failure if
no card is present.
Signed-off-by: Steve Sakoman <sakoman at gmail.com>
Signed-off-by: Dirk Behme <dirk.behme at googlemail.com>
---
* This patch applies on top of last 5 pending OMAP3 patches (in this order):
http://lists.denx.de/pipermail/u-boot/2008-November/043771.html
http://lists.denx.de/pipermail/u-boot/2008-November/043898.html
http://lists.denx.de/pipermail/u-boot/2008-November/043899.html
http://lists.denx.de/pipermail/u-boot/2008-November/044026.html
http://lists.denx.de/pipermail/u-boot/2008-November/044027.html
* Compile tested for Beagle, Overo, Panora and EVM. Boot tested on Beagle.
drivers/mmc/omap3_mmc.c | 32 ++++++++++++++++----------------
1 files changed, 16 insertions(+), 16 deletions(-)
Index: u-boot-arm/drivers/mmc/omap3_mmc.c
===================================================================
--- u-boot-arm.orig/drivers/mmc/omap3_mmc.c
+++ u-boot-arm/drivers/mmc/omap3_mmc.c
@@ -523,22 +523,22 @@ unsigned long mmc_bread(int dev_num, uns
int mmc_init(int verbose)
{
- configure_mmc(&cur_card_data);
-
- mmc_blk_dev.if_type = IF_TYPE_MMC;
- mmc_blk_dev.part_type = PART_TYPE_DOS;
- mmc_blk_dev.dev = 0;
- mmc_blk_dev.lun = 0;
- mmc_blk_dev.type = 0;
-
- /* FIXME fill in the correct size (is set to 32MByte) */
- mmc_blk_dev.blksz = MMCSD_SECTOR_SIZE;
- mmc_blk_dev.lba = 0x10000;
- mmc_blk_dev.removable = 0;
- mmc_blk_dev.block_read = mmc_bread;
-
- fat_register_device(&mmc_blk_dev, 1);
- return 0;
+ if (configure_mmc(&cur_card_data) == 1) {
+ mmc_blk_dev.if_type = IF_TYPE_MMC;
+ mmc_blk_dev.part_type = PART_TYPE_DOS;
+ mmc_blk_dev.dev = 0;
+ mmc_blk_dev.lun = 0;
+ mmc_blk_dev.type = 0;
+
+ /* FIXME fill in the correct size (is set to 32MByte) */
+ mmc_blk_dev.blksz = MMCSD_SECTOR_SIZE;
+ mmc_blk_dev.lba = 0x10000;
+ mmc_blk_dev.removable = 0;
+ mmc_blk_dev.block_read = mmc_bread;
+
+ fat_register_device(&mmc_blk_dev, 1);
+ return 0;
+ } else return 1;
}
int mmc_read(ulong src, uchar *dst, int size)
More information about the U-Boot
mailing list