[U-Boot] [U-boot] mmc write|read howto

Josh Wu josh.wu at atmel.com
Sat Apr 27 12:52:20 CEST 2013


Hi, Jagan

Since I am working on the fatwrite part for the moment. And there is a 
bug find in U-Boot fat write.
You can check the thread here: 
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/158939

following patch can fix it:


diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index 5829adf..b7ba8ea 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -561,7 +561,7 @@ set_cluster(fsdata *mydata, __u32 clustnum, __u8 
*buffer,
           unsigned long size)
  {
      int idx = 0;
-    __u32 startsect;
+    __u32 startsect, nr_sectors;

      if (clustnum > 0)
          startsect = mydata->data_begin +
@@ -571,7 +571,11 @@ set_cluster(fsdata *mydata, __u32 clustnum, __u8 
*buffer,

      debug("clustnum: %d, startsect: %d\n", clustnum, startsect);

-    if (disk_write(startsect, size / mydata->sect_size, buffer) < 0) {
+    nr_sectors = size / mydata->sect_size;
+    if (nr_sectors == 0)
+        nr_sectors = 1;
+
+    if (disk_write(startsect, nr_sectors, buffer) < 0) {
          debug("Error writing data\n");
          return -1;
      }
-- 
1.7.9.5


Best Regards,
Josh Wu

On 4/27/2013 5:26 PM, Jagan Teki wrote:
> Hi Josh,
>
> On Sat, Apr 27, 2013 at 11:55 AM, Josh Wu <josh.wu at atmel.com> wrote:
>> Hi, Jagan
>>
>>
>> On 4/27/2013 4:51 AM, Jagan Teki wrote:
>>> Hi All,
>>>
>>> I need some help regarding mmc write and mmc read commands usage.
>>>
>>> I am using a 4GB SD/MMC plus and socked eMMC cards, usually I am
>>> formatting these cards on my host pc with
>>> fat partition and copy the images into card. while in the u-boot level
>>> I am reading the images from card and copy it onto mem addr
>>> like fatload mmc 0 0x1000 uImage.
>>>
>>> Can we write the images onto these cards in u-boot level?, using mmc
>>> write.
>>> same way can we read back using mmc read? if so how to do that.
>>
>> yes, define the CONFIG_FAT_WRITE macro in your board config file.
>> re-build your u-boot. then you will find "fatwrite" command.
>>
>> U-Boot> fatwrite
>> fatwrite - write file into a dos filesystem
>>
>> Usage:
>> fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>
>>      - write file 'filename' from the address 'addr' in RAM
>>        to 'dev' on 'interface'
>>
>> so you can use:
>>   fatwrite mmc 0 0x20000000 file 0x4000
> Thanks for your information.
>
> I will try the fatwrite, and this must require to have the card should
> formatted as FAT on host, is it?
> Any possibility to do the formation on u-boot itself.?
>
> Thanks,
> Jagan.
>
>> Best Regards,
>> Josh Wu
>>
>>> Request for help.
>>>
>>> Thanks,
>>> Jagan.
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot at lists.denx.de
>>> http://lists.denx.de/mailman/listinfo/u-boot
>>



More information about the U-Boot mailing list