Install barebox to target

Thomas Mayer thomas.mayer at telemotive.de
Wed Mar 9 03:33:35 EST 2011


Hi,

thanks a lot for your help!
I already started to think that I'm the first person who try to run
barebox from a sd-card  :D

Another question, is there any good way to get a debug or something like
that at this very early point of boot process?
Because I think to switch on the board and hope that something will send
to the serial port isn't the best way to debug :D

In chapter 7.4.1.4.2 of the i.mx35 datasheet I found something
interresting. It seems to be possible to query boot errors via serial
protocol.
But I couldn't find a example or a list of possible errors.
Has anyone tried to query errors this way?


Regards,
Thomas

 

Am 08.03.2011 22:04, schrieb Marc Reilly:
> 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