From: Stephan Linz <linz@li-pro.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 08/12] microblaze: timer: Prepare for device-tree initialization
Date: Tue, 10 Jul 2012 20:36:13 +0200 [thread overview]
Message-ID: <1341945373.4010.64.camel@keto> (raw)
In-Reply-To: <4FFBE4D9.1000809@monstr.eu>
Am Dienstag, den 10.07.2012, 10:16 +0200 schrieb Michal Simek:
> On 07/09/2012 09:06 PM, Stephan Linz wrote:
> > Am Montag, den 09.07.2012, 11:20 +0200 schrieb Michal Simek:
> >> microblaze: Fix CONFIG_SYS_HZ usage in board config
> >>
> >> Do not use hardcoded value. Use CONFIG_SYS_HZ instead.
> >> Separate static configuration to single block.
> >>
> >> Signed-off-by: Michal Simek<monstr@monstr.eu>
> >> ---
> >> arch/microblaze/cpu/timer.c | 69 ++++++++++++-----------
> >> arch/microblaze/include/asm/microblaze_timer.h | 3 +
> >> arch/microblaze/lib/board.c | 5 --
> >> include/configs/microblaze-generic.h | 12 +----
> >> 4 files changed, 41 insertions(+), 48 deletions(-)
> >>
> >> diff --git a/arch/microblaze/cpu/timer.c b/arch/microblaze/cpu/timer.c
> >> index cc6b897..dfaaaf5 100644
> >> --- a/arch/microblaze/cpu/timer.c
> >> +++ b/arch/microblaze/cpu/timer.c
> >> @@ -27,42 +27,30 @@
> >> #include<asm/microblaze_intc.h>
> >>
> >> volatile int timestamp = 0;
> >> +microblaze_timer_t *tmr;
> >>
> >> -#ifdef CONFIG_SYS_TIMER_0
> >> ulong get_timer (ulong base)
> >> {
> >> - return (timestamp - base);
> >> + if (tmr)
> >> + return timestamp - base;
> >> + return timestamp++ - base;
> >> }
> >> -#else
> >> -ulong get_timer (ulong base)
> >> -{
> >> - return (timestamp++ - base);
> >> -}
> >> -#endif
> >>
> >> -#ifdef CONFIG_SYS_TIMER_0
> >> void __udelay(unsigned long usec)
> >> {
> >> - int i;
> >> + u32 i;
> >>
> >> - i = get_timer(0);
> >> - while ((get_timer(0) - i)< (usec / 1000))
> >> - ;
> >> + if (tmr) {
> >> + i = get_timer(0);
> >> + while ((get_timer(0) - i)< (usec / 1000))
> >> + ;
> >
> > Hi Michal,
> >
> >> + } else {
> >> + for (i = 0; i< (usec * XILINX_CLOCK_FREQ / 10000000); i++)
> >> + ;
> >
> > this part should be enclosed by #ifdef XILINX_CLOCK_FREQ
>
> It was intentional because XILINX_CLOCK_FREQ must be define.
Hm, it's a catch-22 situation in between compilation and run time.
With a prober fdt setup you will implicitly fetch this value from dts
(as tmr->loadreg) and you will never reach this code. In the case of a
wrong dts content, for example a missing "clock-frequency" entry, this
code snipped could be a fall back solution. But what is wrong and what
is right?
I think you should make a hard cut here and make a strict distinguish
between the old (undef CONFIG_OF_CONTROL) and the new timer setup. Your
current code base leads to a hardware description with overdetermined
definition of timer clock frequency:
first one here: board/xilinx/microblaze-generic/xparameters.h
second one here: board/xilinx/microblaze-generic/dts/microblaze.dts
> Maybe it could be handle by
>
> #ifndef XILINX_CLOCK_FREQ
> # error Please define XILINX_CLOCK_FREQ
> #endif
better would be:
#if !defined(CONFIG_OF_CONTROL) && !defined(XILINX_CLOCK_FREQ)
# error Please define XILINX_CLOCK_FREQ
#endif
br,
Stephan
next prev parent reply other threads:[~2012-07-10 18:36 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-09 9:20 [U-Boot] [PATCH 01/12] microblaze: board: Remove compilation warning Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 02/12] microblaze: Remove extern from board.c Michal Simek
2012-07-09 21:10 ` Simon Glass
2012-07-10 8:24 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 03/12] microblaze: intc: Clear interrupt code Michal Simek
2012-07-09 21:21 ` Simon Glass
2012-07-10 8:34 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 04/12] microblaze: intc: Registering interrupt should return value Michal Simek
2012-07-09 21:22 ` Simon Glass
2012-07-10 8:52 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 05/12] microblaze: intc: Coding style cleanup Michal Simek
2012-07-09 21:23 ` Simon Glass
2012-07-10 8:55 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 06/12] microblaze: intc: Add device-tree driver configuration Michal Simek
2012-07-09 21:26 ` Simon Glass
2012-07-10 9:07 ` Michal Simek
2012-07-10 21:02 ` Simon Glass
2012-07-11 5:32 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 07/12] microblaze: Move __udelay implementation Michal Simek
2012-07-09 21:28 ` Simon Glass
2012-07-10 8:25 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 08/12] microblaze: timer: Prepare for device-tree initialization Michal Simek
2012-07-09 18:26 ` Stephan Linz
2012-07-10 8:11 ` Michal Simek
2012-07-09 19:06 ` Stephan Linz
2012-07-10 8:16 ` Michal Simek
2012-07-10 18:36 ` Stephan Linz [this message]
2012-07-11 6:07 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 09/12] microblaze: timer: Add device-tree driver configuration Michal Simek
2012-07-09 18:25 ` Stephan Linz
2012-07-09 21:32 ` Simon Glass
2012-07-10 9:23 ` Michal Simek
2012-07-10 9:34 ` Michal Simek
2012-07-10 21:04 ` Simon Glass
2012-07-11 6:18 ` Michal Simek
2012-07-11 9:53 ` Simon Glass
2012-07-09 9:20 ` [U-Boot] [PATCH 10/12] microblaze: Call serial multi initialization Michal Simek
2012-07-09 21:32 ` Simon Glass
2012-07-10 8:27 ` Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 11/12] microblaze: Clean microblaze initialization Michal Simek
2012-07-09 9:20 ` [U-Boot] [PATCH 12/12] microblaze: board: Use bi_flashstart instead of CONFIG_SYS_FLASH_BASE Michal Simek
2012-07-09 21:08 ` [U-Boot] [PATCH 01/12] microblaze: board: Remove compilation warning Simon Glass
2012-07-10 8:17 ` Michal Simek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1341945373.4010.64.camel@keto \
--to=linz@li-pro.net \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.