Failed to launch barebox from flash memory on i.MX35
Peter Kuennemann@Crane-Soft
pkue at crane-soft.de
Wed Nov 2 10:58:43 EDT 2011
Am 02.11.2011 15:04, schrieb Peter Kuennemann at Crane-Soft:
> 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
Just to finish this thread, I also disabled the MMU option which
was set by default in the pcm043_defconfig. After isabling MMU
barebox is running well.
Thanks for the support, Peter
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
More information about the barebox
mailing list