[U-Boot] toolchain problems when building iMX6 mx6qsabreauto (and another bootloader tool)

Måns Rullgård mans at mansr.com
Wed Dec 4 16:35:09 CET 2013


Robert Nelson <robertcnelson at gmail.com> writes:

> On Fri, Nov 29, 2013 at 4:28 PM, Wolfgang Denk <wd at denx.de> wrote:
>> Dear Christian Gmeiner,
>>
>> In message <CAH9NwWeb6s+3s4O25D7Cifob9Y3_7jmHoSjO6o78FijQuWZMwg at mail.gmail.com> you wrote:
>>>
>>> I am running into the same problem. Me wonders which patch/change
>>> triggers this problem. I am using
>>> the same toolchain since I started to work with u-boot and it fails
>>> with the latest rc.
>>
>> Maybe Linaro started using a hard-float configuration only recently?
>>
>
> For what it's worth, i just ran a git bisect on this issue today, as
> this compiler worked fine with v2013.10
>
> toolchain:
> arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.8-2013.10 -
> Linaro GCC 2013.10) 4.8.2 20131014 (prerelease)
>
> 762a88ccf8540948fbf8c31b40a29d1e0684a25b is the first bad commit
> commit 762a88ccf8540948fbf8c31b40a29d1e0684a25b
> Author: Pierre Aubert <p.aubert at staubli.com>
> Date:   Thu Sep 19 17:48:59 2013 +0200
>
>     mx6: compute PLL PFD frequencies rather than using defines

That commit introduces a 64-bit division without using the lldiv()
function, which pulls in previously unused libgcc stuff.

Try this patch:

diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c
index 873d9d0..752b3c8 100644
--- a/arch/arm/cpu/armv7/mx6/clock.c
+++ b/arch/arm/cpu/armv7/mx6/clock.c
@@ -5,6 +5,7 @@
  */
 
 #include <common.h>
+#include <div64.h>
 #include <asm/io.h>
 #include <asm/errno.h>
 #include <asm/arch/imx-regs.h>
@@ -123,8 +124,8 @@ static u32 mxc_get_pll_pfd(enum pll_clocks pll, int pfd_num)
                return 0;
        }
 
-       return (freq * 18) / ((div & ANATOP_PFD_FRAC_MASK(pfd_num)) >>
-                             ANATOP_PFD_FRAC_SHIFT(pfd_num));
+       return lldiv(freq * 18, (div & ANATOP_PFD_FRAC_MASK(pfd_num)) >>
+                               ANATOP_PFD_FRAC_SHIFT(pfd_num));
 }
 
 static u32 get_mcu_main_clk(void)

-- 
Måns Rullgård
mans at mansr.com


More information about the U-Boot mailing list