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

Robert Nelson robertcnelson at gmail.com
Wed Dec 4 17:18:27 CET 2013


On Wed, Dec 4, 2013 at 9:35 AM, Måns Rullgård <mans at mansr.com> wrote:
> 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)

Thanks Måns!

That fixed it...

Regards,

-- 
Robert Nelson
http://www.rcn-ee.com/


More information about the U-Boot mailing list