Patchwork [U-Boot] bugfix: all Marvell specific build fails due to undefined reference to `get_ticks'

login
register
mail settings
Submitter Prafulla Wadaskar
Date Feb. 8, 2012, 8:49 a.m.
Message ID <1328690999-16077-1-git-send-email-prafulla@marvell.com>
Download mbox | patch
Permalink /patch/140058/
State Superseded
Headers show

Comments

Graeme Russ - Feb. 8, 2012, 5:29 a.m.
Hi Prafulla,

On Wed, Feb 8, 2012 at 7:49 PM, Prafulla Wadaskar <prafulla@marvell.com> wrote:
> after http://patchwork.ozlabs.org/patch/136415/ was applied. All Marvell
> build fails with below error
>
> common/libcommon.o: In function `cread_line':
> /home/uboot/src/u-boot-arm/common/main.c:717: undefined reference to `get_ticks'
> /home/uboot/src/u-boot-arm/common/main.c:717: undefined reference to `get_tbclk'
> /home/uboot/src/u-boot-arm/common/main.c:720: undefined reference to `get_ticks'
>
> The same is fixed for Kirkwood, ARMADA100, pantheon and orion5x SoCs
>
> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>

> +ulong get_tbclk (void)
> +{
> +       ulong tbclk;
> +
> +       tbclk = CONFIG_SYS_HZ;
> +       return tbclk;
> +}

Why not "return CONFIG_SYS_HZ;'" or "return (ulong)CONFIG_SYS_HZ;" ?

Regards,

Graeme
Prafulla Wadaskar - Feb. 8, 2012, 7:03 a.m.
> -----Original Message-----
> From: Graeme Russ [mailto:graeme.russ@gmail.com]
> Sent: 08 February 2012 11:00
> To: Prafulla Wadaskar
> Cc: u-boot@lists.denx.de; Ashish Karkare; Prabhanjan Sarnaik
> Subject: Re: [U-Boot] [PATCH] bugfix: all Marvell specific build fails
> due to undefined reference to `get_ticks'
> 
> Hi Prafulla,
> 
> On Wed, Feb 8, 2012 at 7:49 PM, Prafulla Wadaskar
> <prafulla@marvell.com> wrote:
> > after http://patchwork.ozlabs.org/patch/136415/ was applied. All
> Marvell
> > build fails with below error
> >
> > common/libcommon.o: In function `cread_line':
> > /home/uboot/src/u-boot-arm/common/main.c:717: undefined reference to
> `get_ticks'
> > /home/uboot/src/u-boot-arm/common/main.c:717: undefined reference to
> `get_tbclk'
> > /home/uboot/src/u-boot-arm/common/main.c:720: undefined reference to
> `get_ticks'
> >
> > The same is fixed for Kirkwood, ARMADA100, pantheon and orion5x SoCs
> >
> > Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
> 
> > +ulong get_tbclk (void)
> > +{
> > +       ulong tbclk;
> > +
> > +       tbclk = CONFIG_SYS_HZ;
> > +       return tbclk;
> > +}
> 
> Why not "return CONFIG_SYS_HZ;'" or "return (ulong)CONFIG_SYS_HZ;" ?

Thanks, good idea, actually the code was simply copy paste from other ARM implementation :)
I will do it for v2

Regards..
Prafulla . . .
Prafulla Wadaskar - Feb. 8, 2012, 8:49 a.m.
after http://patchwork.ozlabs.org/patch/136415/ was applied. All Marvell
build fails with below error

common/libcommon.o: In function `cread_line':
/home/uboot/src/u-boot-arm/common/main.c:717: undefined reference to `get_ticks'
/home/uboot/src/u-boot-arm/common/main.c:717: undefined reference to `get_tbclk'
/home/uboot/src/u-boot-arm/common/main.c:720: undefined reference to `get_ticks'

The same is fixed for Kirkwood, ARMADA100, pantheon and orion5x SoCs

Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
---
 arch/arm/cpu/arm926ejs/armada100/timer.c |   21 +++++++++++++++++++++
 arch/arm/cpu/arm926ejs/kirkwood/timer.c  |   21 +++++++++++++++++++++
 arch/arm/cpu/arm926ejs/orion5x/timer.c   |   21 +++++++++++++++++++++
 arch/arm/cpu/arm926ejs/pantheon/timer.c  |   21 +++++++++++++++++++++
 4 files changed, 84 insertions(+), 0 deletions(-)

Patch

diff --git a/arch/arm/cpu/arm926ejs/armada100/timer.c b/arch/arm/cpu/arm926ejs/armada100/timer.c
index fbade4b..0cafb57 100644
--- a/arch/arm/cpu/arm926ejs/armada100/timer.c
+++ b/arch/arm/cpu/arm926ejs/armada100/timer.c
@@ -190,3 +190,24 @@  void reset_cpu (unsigned long ignored)
 
 	while(1);
 }
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On ARM it just returns the timer value.
+ */
+unsigned long long get_ticks(void)
+{
+	return get_timer(0);
+}
+
+/*
+ * This function is derived from PowerPC code (timebase clock frequency).
+ * On ARM it returns the number of timer ticks per second.
+ */
+ulong get_tbclk (void)
+{
+	ulong tbclk;
+
+	tbclk = CONFIG_SYS_HZ;
+	return tbclk;
+}
diff --git a/arch/arm/cpu/arm926ejs/kirkwood/timer.c b/arch/arm/cpu/arm926ejs/kirkwood/timer.c
index a98f54c..45f4af1 100644
--- a/arch/arm/cpu/arm926ejs/kirkwood/timer.c
+++ b/arch/arm/cpu/arm926ejs/kirkwood/timer.c
@@ -153,3 +153,24 @@  int timer_init(void)
 
 	return 0;
 }
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On ARM it just returns the timer value.
+ */
+unsigned long long get_ticks(void)
+{
+	return get_timer(0);
+}
+
+/*
+ * This function is derived from PowerPC code (timebase clock frequency).
+ * On ARM it returns the number of timer ticks per second.
+ */
+ulong get_tbclk (void)
+{
+	ulong tbclk;
+
+	tbclk = CONFIG_SYS_HZ;
+	return tbclk;
+}
diff --git a/arch/arm/cpu/arm926ejs/orion5x/timer.c b/arch/arm/cpu/arm926ejs/orion5x/timer.c
index e39ecc2..dc1211e 100644
--- a/arch/arm/cpu/arm926ejs/orion5x/timer.c
+++ b/arch/arm/cpu/arm926ejs/orion5x/timer.c
@@ -167,3 +167,24 @@  void timer_init_r(void)
 	lastdec = read_timer();
 	timestamp = 0;
 }
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On ARM it just returns the timer value.
+ */
+unsigned long long get_ticks(void)
+{
+	return get_timer(0);
+}
+
+/*
+ * This function is derived from PowerPC code (timebase clock frequency).
+ * On ARM it returns the number of timer ticks per second.
+ */
+ulong get_tbclk (void)
+{
+	ulong tbclk;
+
+	tbclk = CONFIG_SYS_HZ;
+	return tbclk;
+}
diff --git a/arch/arm/cpu/arm926ejs/pantheon/timer.c b/arch/arm/cpu/arm926ejs/pantheon/timer.c
index 17045b1..65966b8 100644
--- a/arch/arm/cpu/arm926ejs/pantheon/timer.c
+++ b/arch/arm/cpu/arm926ejs/pantheon/timer.c
@@ -197,3 +197,24 @@  void reset_cpu (unsigned long ignored)
 	/*enable functional WDT clock */
 	writel(APBC_APBCLK | APBC_FNCLK, &mpmu->wdtpcr);
 }
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On ARM it just returns the timer value.
+ */
+unsigned long long get_ticks(void)
+{
+	return get_timer(0);
+}
+
+/*
+ * This function is derived from PowerPC code (timebase clock frequency).
+ * On ARM it returns the number of timer ticks per second.
+ */
+ulong get_tbclk (void)
+{
+	ulong tbclk;
+
+	tbclk = CONFIG_SYS_HZ;
+	return tbclk;
+}