[PATCH 1/2] mx53-loco: provide the right header for serial downloader

Sascha Hauer s.hauer at pengutronix.de
Thu Apr 11 04:02:53 EDT 2013


Hi Eric,

On Wed, Apr 10, 2013 at 04:10:57PM +0200, Eric Bénard wrote:
> this patch allows barebox to run when loaded on the iMX53QSB
> using the serial downloader.

What serial downloader do you use? We have a serial downloader here:

git://git.pengutronix.de/git/tools/imx-usb-loader.git

This one works by parsing the flash headers from the images and
executing them manually by doing register writes. It works with
the currently generated images just fine.

I though about integrating this tool into barebox. Part of the reason
for doing this is that this repository also contains a image generation
tool which could replace the compiler/linker mechanism we currently use
to generate i.MX images. Using a dedicated tool for this job seems more
flexible.

> 
> Signed-off-by: Eric Bénard <eric at eukrea.com>
> ---
>  arch/arm/boards/freescale-mx53-loco/flash_header.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm/boards/freescale-mx53-loco/flash_header.c b/arch/arm/boards/freescale-mx53-loco/flash_header.c
> index dc1162b..5358f0b 100644
> --- a/arch/arm/boards/freescale-mx53-loco/flash_header.c
> +++ b/arch/arm/boards/freescale-mx53-loco/flash_header.c
> @@ -34,10 +34,17 @@ struct imx_flash_header_v2 __flash_header_section flash_header = {
>  	.header.length		= cpu_to_be16(32),
>  	.header.version		= IVT_VERSION,
>  
> +#ifdef CONFIG_ARCH_IMX_INTERNAL_BOOT_SERIAL
> +	.entry			= APP_DEST + 0x400,
> +	.dcd_ptr		= APP_DEST + offsetof(struct imx_flash_header_v2, dcd),
> +	.boot_data_ptr		= APP_DEST + offsetof(struct imx_flash_header_v2, boot_data),
> +	.self			= APP_DEST,
> +#else
>  	.entry			= APP_DEST + 0x1000,
>  	.dcd_ptr		= APP_DEST + 0x400 + offsetof(struct imx_flash_header_v2, dcd),
>  	.boot_data_ptr		= APP_DEST + 0x400 + offsetof(struct imx_flash_header_v2, boot_data),
>  	.self			= APP_DEST + 0x400,
> +#endif

We already have a FLASH_HEADER_OFFSET define which seems to solve half
of the problem. Extending the ifdefs already present int the header
file should work better.

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