[U-Boot] Writing to SD partitions from u-boot
Wolfgang Denk
wd at denx.de
Fri Feb 28 18:56:50 CET 2014
Dear David,
please make sure to keep the mailing list on Cc:
In message <CADqAesgH4uFznSFYZutvsB64Tr6gD3DwL4kttUGqinWUmhKcMQ at mail.gmail.com> you wrote:
>
> Ok, thats good to know, thank you. That doesnt explain though what kind of
> sd cards I should use to be able to switch partitions. Am I
> misunderstanding the function that does that? From the code, i will only be
> able to do that when mmc->part_config is different than 0xff
> (MMCPART_NOAVAILABLE). What should I do with my card to get it to work ?
I don't see why exactly you need to switch partitions...
The "mme part" command will print you the numbers of the first sector
in each partition, so it's trivial to write an image.
For example, assume we want to write the file system image
"rootfs.img" into the second partition of an SDcard:
=> tftp $loadaddr rootfs.img
Using FEC device
TFTP from server 192.168.1.1; our IP address is 192.168.20.56
Filename 'rootfs.img'.
Load address: 0x70800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
############
763.7 KiB/s
done
Bytes transferred = 16385024 (fa0400 hex)
=> setexpr cnt $filesize + 0x1ff
=> setexpr cnt $cnt / 0x200
=> mmc part
Partition Map for MMC device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 8192 131072 00000000-01 83
2 139264 7753728 00000000-02 83
=> mmc write $loadaddr 0x22000 $cnt
MMC write: dev # 0, block # 139264, count 32002 ... 32002 blocks write: OK
The only "tricky" part here is to convert the decimal number 139264
for the start sector of partition 2 into hexadecimal format as
expected by "mmc write": decimal 139264 = 0x22000.
[Note that even the conversion of the file size in bytes into block
numbers can be scripted with two simple "setexpr" commands.]
Hope this helps.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
When in doubt, mumble; when in trouble, delegate; when in charge,
ponder. -- James H. Boren
More information about the U-Boot
mailing list