Booting PhyTec PCM043/IMX35 from USB/SD-Card

Sascha Hauer s.hauer at pengutronix.de
Thu Jun 28 09:54:58 EDT 2012


On Thu, Jun 28, 2012 at 03:36:22PM +0200, Peter Kuennemann at Crane-Soft wrote:
> 
> Am 28.06.2012 12:43, schrieb Sascha Hauer:
> >> ...
> >> However, I still cannot access the mmc from barebox. It would be enough to be able to
> >> read the mmc. I want to be able to store kernel or rootfs image updates on the mmc
> >> and flash them to either NAND or NOR after reboot to enable remote update services.
> >>
> >> Question: "How can I access the MMC from barebox (read only may be sufficient)
> > 
> > The pcm043 currently does not have mmc support. You have to add this to
> > the board file:
> > 
> > imx35_add_mmc0(NULL);
> > 
> > or
> > 
> > imx35_add_mmc1(NULL);
> > 
> > depending on which port is routed to the slot. Also you have to setup
> > the iomuxer (you can probably copy the pin settings from the kernel). Of
> > course you also have to enable MMC support in the config.
> > 
> > Sascha
> > 
> > 
> 
> I have tried to update the board code accordingly but stumbled upon another
> problem. The size of barebox increased to 0x40bb7 so I changed the
> partition definitions in pcm043.c as follows:
> 
> #define CONFIG_MX35_BBSIZE      0x42000
>    ...
>    devfs_add_partition("nor0", 0x00000, CONFIG_MX35_BBSIZE, PARTITION_FIXED, "self0"); /* ourself */
>    devfs_add_partition("nor0", CONFIG_MX35_BBSIZE, 0x20000, PARTITION_FIXED, "env0");
>    ...
> Barebox boots OK but after having saved the environment (saveenv) it dow not boot anymore.
> 
> Barebox boot messages ...
> 
> Malloc space: 0x86e00000 -> 0x87dfffff (size 16 MB)
> Stack space : 0x86df8000 -> 0x86e00000 (size 32 kB)
> envfs: wrong magic on /dev/env0
> no valid environment found on /dev/env0. Using default environment   <== expected
> running /env/bin/init...
> 
> devinfo <== What is defined ?
> ...
> `---- cfi_flash0
>      `---- 0x00000000-0x01ffffff: /dev/nor0
>      `---- 0x00000000-0x00041fff: /dev/self0
>      `---- 0x00042000-0x0005ffff: /dev/env0
> 
> saveenv  <== save the environment
> reset    <== nothing after here
> 
> What is wrong here?

You should align partition sizes to eraseblock sizes.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list