[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