summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>2013-11-28 17:52:46 +0900
committerNobuhiro Iwamatsu <iwamatsu@nigauri.org>2013-12-03 09:47:08 +0900
commit7579751c14326f939dc24c1fbbc3e84572626248 (patch)
tree23bba61f4cc1cfe16bef32f8593906918e4674f2 /arch/arm
parent1251e4903052a55a6db9576f29d11e2d7743fbde (diff)
downloadu-boot-imx-7579751c14326f939dc24c1fbbc3e84572626248.zip
u-boot-imx-7579751c14326f939dc24c1fbbc3e84572626248.tar.gz
u-boot-imx-7579751c14326f939dc24c1fbbc3e84572626248.tar.bz2
arm: kzm9g: Fix undefined reference to `__aeabi_uldivmod' error
The kzm9g board fails in building with -march=armv7-a. This fixs this problem by converting to do_div(). ----- USE_PRIVATE_LIBGCC=yes ./MAKEALL kzm9g ... arch/arm/cpu/armv7/rmobile/librmobile.o: In function `get_time_us': arch/arm/cpu/armv7/rmobile/timer.c:41: undefined reference to `__aeabi_uldivmod' arch/arm/cpu/armv7/rmobile/librmobile.o: In function `get_time_ms': arch/arm/cpu/armv7/rmobile/timer.c:47: undefined reference to `__aeabi_uldivmod' ----- Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> CC: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/cpu/armv7/rmobile/timer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/cpu/armv7/rmobile/timer.c b/arch/arm/cpu/armv7/rmobile/timer.c
index 72e0c12..04700e7 100644
--- a/arch/arm/cpu/armv7/rmobile/timer.c
+++ b/arch/arm/cpu/armv7/rmobile/timer.c
@@ -6,6 +6,7 @@
*/
#include <common.h>
+#include <div64.h>
#include <asm/io.h>
#include <asm/arch-armv7/globaltimer.h>
#include <asm/arch/rmobile.h>
@@ -38,13 +39,16 @@ static u64 get_time_us(void)
u64 timer = get_cpu_global_timer();
timer = ((timer << 2) + (CLK2MHZ(CONFIG_SYS_CPU_CLK) >> 1));
- timer /= (u64)CLK2MHZ(CONFIG_SYS_CPU_CLK);
+ do_div(timer, CLK2MHZ(CONFIG_SYS_CPU_CLK));
return timer;
}
static ulong get_time_ms(void)
{
- return (ulong)(get_time_us() / 1000);
+ u64 us = get_time_us();
+
+ do_div(us, 1000);
+ return us;
}
int timer_init(void)