Failed to launch barebox from flash memory on i.MX35

Peter Kuennemann@Crane-Soft pkue at crane-soft.de
Wed Nov 2 10:04:26 EDT 2011


Am 02.11.2011 11:16, schrieb Sascha Hauer:
> Hi Peter,
>
> On Mon, Oct 31, 2011 at 06:43:08PM +0100, Peter wrote:
>> Hi all,
>> I just managed to compile the latest barebox source (http://barebox.org/download/barebox-2011.10.0.tar.bz2 <http://barebox.org/download/>) for the pcm043 board.
>> I configured and compiled it:
>> $ make pcm043_defconfig
>> $ make xconfig # nothing changed there
>> $ make
>>
>> I used the following CROSS environment settings:
>> export PATH="$PATH:/opt/OSELAS.Toolchain-1.99.3/arm-1136jfs-linux-gnueabi/gcc-4.3.2-glibc-2.8-binutils-2.19-kernel-2.6.27-sanitized/bin"
>> export ARCH=arm
>> export CROSS_COMPILE=arm-1136jfs-linux-gnueabi-
>>
>> The make went well without any problems.
>> I flashed the barebox.bin at address 0xa000_0000 and rebootet.
>> The program then trapped while trying to relocate the code to SDRAM.
>> The SDRAM is propperly initialized but the call to memcpy takes adress
>> 0x9FFFE000 as source and 0x87F00000 as destination.
>> 0x9FFFE000 is definitely not correct, it is 0x2000 below the start of the
>> flash memory, obviously the same size as symbol  _stext in the map
>> when subtracting the base address.
>>
>> Map:
>> 00038e50 A _barebox_image_size
>> 87f02000 T _stext
>> 87f02000 T _text
>>
>> The source is in arch/arm/copu/start.c at line 122.
>>
>> I am completly stuck. What went wrong?
>> Any help will be very much appreciated.
> There seems to be a bug in the pcm043_defconfig. It is configured for
> internal bootmode, which means that the board has to specify a header
> of size 0x2000 before the actual image. The pcm043 does not specify this
> header as it uses the external bootmode.
> Please disable CONFIG_ARCH_IMX_INTERNAL_BOOT in your config, that should
> do it. If it works I'll commit a corresponding patch.
>
> Sascha
>
Thanks, that did the trick. I changed the option "support internal boot mode" to
"support external boot mode" (What ever that means) and the relocation works
pretty well now.

Nevertheless, next problem appears right after relocation. The console displays the
welcome messages: "barebox 2011.10.0 (Nov  2 2011 - 14:40:11)" and
"Board: Phytec phyCORE-i.MX35" but then loops in mmu.c at function mmu_init
in the for () loop at line 237 .. forever!

Is there another secret word to be known?

Regards, Peter Kuennemann



More information about the barebox mailing list