
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