All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christopher Eibel <mls@christopher-eibel.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] ARMv7 clock rate issue (U-Boot vs. X-Loader)
Date: Mon, 20 Jun 2011 01:35:41 +0200	[thread overview]
Message-ID: <4DFE87CD.6000607@christopher-eibel.de> (raw)

Hi,

I decided to post my questions on this list even though they also
concern the X-Loader. However, since the X-Loader is derived from
U-Boot, I thought they are placed well here.

I'm a bit confused about the clock rate which is set for the ARMv7
processor of the BeagleBoard-xM (Rev C; DM3730) by U-Boot and X-Loader.
As far as I understand it, the clock rate is only set to a "safe"
initial low value and not to the highest possible value the CPU is
actually able to run at.

According to the TI TRM [1] (p. 349), the ARM_CLK can be calculated as
follows:
    	I)      MPU_CLK = SYS_CLK * M / ([N+1] * M2)
    	II)     ARM_CLK = MPU_CLK
	
If I am correct, SYS_CLK equals to the oscillator frequency (26 MHz)
divided by 2, so SYS_CLK = 13 MHz. Therefore, ARM_CLK should be 600 MHz,
because M = 600, N = 12, and M2 = 1. (I got these values from the table
in <U-Boot-root>/arch/arm/cpu/armv7/omap3/lowlevel_init.S, but I also
verified them by some printfs after prcm_init().)

Now, what confuses me:
When I set exactly the same values for M, N, and M2 (SYS_CLK is also 13
MHz) in X-Loader (I used this version: [2]), then the CPU seems to
perform significantly slower than in U-Boot. To see the difference I ran
a simple standalone application with a constant number of instructions
in both X-Loader and U-Boot. The CR (Control Register [3]) was set to
the same value (0xC5087A -> instruction and data caches disabled).

I measured the execution time for both cases and got these values:

		     U-Boot:     35066 ms
		     X-Loader:   23389 ms

1) Is there anything initialized/activated in U-Boot -- but not in
X-Loader -- which could affect the performance in such a way?
2) Am I correct that the CPU is clocked at 600 MHz at all (at least in
U-Boot)?

Thank you.

Best regards,
Chris

[1] AM/DM37x Multimedia Device Silicon -- Technical Reference Manual
    http://focus.ti.com/lit/ug/sprugn4l/sprugn4l.pdf
[2] x-loader - Gitorius
    http://gitorious.org/x-loader
[3] Cortex-A8 Technical Reference Manual -- Control Register

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/Bgbffjhh.html

                 reply	other threads:[~2011-06-19 23:35 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=4DFE87CD.6000607@christopher-eibel.de \
    --to=mls@christopher-eibel.de \
    --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.