[U-Boot] [PATCH 3/3] iMX31: Add support to iMX31PDK board boots from NAND Flash

Magnus Lilja
2008-10-22T19:52:45Z

2008/10/22 Magnus Lilja <lilja.magnus@gmail.com>:
> Wolfgang,
>
>
> 2008/10/22 Wolfgang Denk <wd@denx.de>:
>> Dear Magnus,
>>
>> In message <59b21cf20810221148u7afd8e19h148b496234b79274@mail.gmail.com> you wrote:
>>>
>>> I've updated the patch and it now almost compiles. There's a problem
>>> at the last link stage where gnu-ld complains about multiple __udivsi3
>>> definitions and incompatible EABI formats (see below, modulo gmail
>>> wrapping).
>>
>> Try this patch which I posted today:
>> ARM: Use do_div() instead of division for "long long".
>
> That patch doesn't seem to touch any files that are involved in
> building i.MX31 boards. I might try the equivalent change though.
> Although it is a bit puzzling that I can build the i.MX31 Litekit
> board with the same toolchain.

Ok, I've found what's triggering this. The PDK board has
CONFIG_MX31_CLK32=32768 while Litekit has CONIFG_MX31_CLK32=32000.
That difference nowadays causes problems when linking, I suppose that
happened after the merging of CONFIG_MX31_TIMER_HIGH_PRECISION.

Changing the TICK_TO_TIME macro in arm1176/mx31/interrupts.c to a
construction that uses do_div() solves the problem.

I don't have the PDK schematics here but since I decided to set CLK32
to 32768 I suppose the board uses that frequency.

I haven't tried my new patch on real hardware yet, but I'll do that
tomorrow and post a patch (without the do_div() fix though, perhaps
someone else can do that?).

/Magnus