How to overwrite an ext partition on eMMC

Martin Hollingsworth Martin.Hollingsworth at itk-engineering.de
Mon Jul 4 05:32:04 PDT 2016


Hello folks,
I'm a little lost when trying to overwrite an ext partition on an eMMC memory inside of barebox. Your help finding the mistake is appreciated.

My Setup:
- Custom board with iMX6, 4GB eMMC and SD card reader (similar to Freescale SabreSD board)
- Using PTXdist to build barebox 2016.05.0 and linux
- The eMMC chip offers wear levelling, so I write a filesystem directly to it (using ptxdist created hd.img file flashed directly)
- The eMMC is partitioned as follows:
0x0, Size 1k --> partition table
0x400, Size 8M --> barebox and barebox_env (offset 0x400 forced by iMX6)
0x800400, Size 1G --> ext filesystem with rootfs and kernel

With this layout so far everything works fine. Now I would like to implement an update mechanism, where barebox erases the complete ext partition and replaces it. Under linux I would use something like dd and let it start at 0x800400. On barebox I have to use memcpy (thanks to Sascha for the hint http://lists.infradead.org/pipermail/barebox/2011-April/003308.html ) and this is where I get stuck.

So I first add partitions so that the memory area is listed under /dev:
devfs_add_partition("mmc3", 0x0, SZ_1K, DEVFS_PARTITION_FIXED, "mmc3.partable"); 
devfs_add_partition("mmc3", SZ_1K, SZ_8M, DEVFS_PARTITION_FIXED, "mmc3.barebox");
devfs_add_partition("mmc3", ( SZ_1K + SZ_8M ), SZ_1G, DEVFS_PARTITION_FIXED, "mmc3.rootfs");

This works for clearing the partitions data using memset:
memset -d /dev/mmc3.rootfs 0x0 0x0 1073741824 

However when I try to copy the root.ext2 filesystem onto this memory area, I can't mount the partition afterwards:
memcpy -s /mnt/sd/root.ext2 -d /dev/mmc3.rootfs 0 536870912
mount /dev/mmc3.rootfs /mnt/mmc/
mount: No such file or directory

I am questioning my approach, as I am not sure if it is correct to write an ext2 file directly to memory. Or am I making some other basic mistake here?

Thanks for your help and cheers,
Martin

--
M.Eng. Martin Hollingsworth
Medical Systems Engineering
 
ITK Engineering AG
Im Speyerer Tal 6
D-76761 Rülzheim
Tel.: +49 7272 7703-510
Fax: +49 7272 7703-100
 
mailto:martin.hollingsworth at itk-engineering.de

_____________________________________________________________
ITK Engineering AG  Im Speyerer Tal 6  76761 Rülzheim
Tel.: +49 7272 7703-0 Fax: +49 7272 7703-100 mailto:info at itk-engineering.de http://www.itk-engineering.de

Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board: Josef Würth Vorstand/Executive Board: Michael Englert (Vorsitzender), Dr. Helmuth Stahl Sitz der Gesellschaft/Registered Office: 76773 Kuhardt/Pfalz Registergericht/Registered Court: Amtsgericht Landau, HRB 30139 USt.-ID-Nr./VAT-ID-No. DE813165046
 _____________________________________________________________





More information about the barebox mailing list