Patchwork [U-Boot] cannot load file from ext2 partition on OMAP3 evm

login
register
mail settings
Submitter Mickael LANOE
Date June 2, 2010, 12:59 p.m.
Message ID <4C0655B0.4070509@univ-ubs.fr>
Download mbox | patch
Permalink /patch/71787/
State Changes Requested
Delegated to: Sandeep Paulraj
Headers show

Comments

Mickael LANOE - June 2, 2010, 12:59 p.m.
Hi,

The command ext2load does not work on the OMAP3 EVM.

The command line is:
# ext2load mmc 0:2 0x82000000 /boot/uImage

The error is:
ext2fs_devread() read error - block

After reading the u-boot source code, I see that the function
mmc_bread() in file drivers/mmc/omap3_mmc.c does not return the good value.

So I apply this small patch to fix the problem

Best regards,

Mickael LANOE
Wolfgang Denk - Aug. 7, 2010, 11:42 p.m.
Dear Mickael LANOE,

In message <4C0655B0.4070509@univ-ubs.fr> you wrote:
> Hi,
> 
> The command ext2load does not work on the OMAP3 EVM.
> 
> The command line is:
> # ext2load mmc 0:2 0x82000000 /boot/uImage
> 
> The error is:
> ext2fs_devread() read error - block
> 
> After reading the u-boot source code, I see that the function
> mmc_bread() in file drivers/mmc/omap3_mmc.c does not return the good value.
> 
> So I apply this small patch to fix the problem

Can you please resubmit this patch with your Signed-off-by: line
added, so we can apply it?

Thanks.


Wolfgang Denk

Patch

diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c
index 96c0e65..b555c73 100644
--- a/drivers/mmc/omap3_mmc.c
+++ b/drivers/mmc/omap3_mmc.c
@@ -507,9 +507,10 @@  unsigned char configure_mmc(mmc_card_data *mmc_card_cur)
 unsigned long mmc_bread(int dev_num, unsigned long blknr, lbaint_t blkcnt,
                        void *dst)
 {
-       omap_mmc_read_sect(blknr, (blkcnt * MMCSD_SECTOR_SIZE), &cur_card_data,
-                               (unsigned long *) dst);
-       return 1;
+       if(omap_mmc_read_sect(blknr, (blkcnt * MMCSD_SECTOR_SIZE), &cur_card_data,
+                               (unsigned long *) dst) != 1)
+               return 0;
+       return blkcnt;
 }
 
 int mmc_legacy_init(int verbose)