Install barebox to target

Marc Reilly marc at cpdesign.com.au
Tue Mar 8 16:04:38 EST 2011


Hi,

> > 2011/3/8 Thomas Mayer<thomas.mayer at telemotive.de>:
> >> according to the cpu datasheet  the bootloader has to store at offset
> >> 0x400 (1KByte).
> >> I tried to dd barebox that way  but it didn't work (command: "dd
> >> if=barebox.bin of=/dev/sdb bs=512 seek=2&&  sync&&  sync").

sudo dd if=barebox.bin of=/dev/sde bs=512 seek=2 skip=2 && sync


> >> I also tried to use the prebuild freescale redboot binary with mmc
> >> support and this works.
> >> 
> >> Have you any idea what I'm doing wrong?

The flash header in the barebox image is at offset 0x400 already, so 
effectively you are dd'ing it to 0x800 .. hence the skip=2 is also required.

> >> Is it possible that a mmc binary need a special flash header to work
> >> correctly?

Very possible  :) 

Another thing to check is that your image isn't larger than 256K (or what you 
specify in the variable that goes in __image_len_XXXXX section) 

> 
> check arch/arm/boards/eukrea_cpuimx35/flash_header.c
> it works fine on our i.MX35 baord but I had to hack
> CPUIMX35_FLASH_HEADER_BASE to get it working.

I remember what a PITA this is to tackle when you're getting started. Here's 
what I use now... pardon the formatting:

struct imx_flash_header __flash_header_0x0400 sd_flash_header = {
	.app_code_jump_vector	= TEXT_BASE + ((unsigned int)&exception_vectors - 
TEXT_BASE),
	.app_code_barker	= APP_CODE_BARKER,
	.app_code_csf		= 0,
	.dcd_ptr_ptr		= TEXT_BASE + 0x0400 + offsetof(struct imx_flash_header, 
dcd),
	.super_root_key		= 0,
	.dcd			= TEXT_BASE + 0x0400 + offsetof(struct imx_flash_header, 
dcd_barker),
	.app_dest		= TEXT_BASE,
	.dcd_barker		= DCD_BARKER,
	.dcd_block_len		= sizeof(sd_dcd_entry),
};

unsigned long __image_len_0x0400 sd_barebox_len = 0x40000;


Cheers
Marc



More information about the barebox mailing list