From: Curt Brune <curt@cucy.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] ARM720t -- Relocating Exception Vectors
Date: Wed, 7 Jul 2004 10:33:37 -0700 [thread overview]
Message-ID: <20040707103337.A15046@cucy.com> (raw)
In-Reply-To: <96A7A8B8A8ACBA4DAF7FD558BD32799BF56070@svex01001>
Attached is a new patch for relocating the exception vectors, which
addresses your concerns:
On Wed, Jul 07, 2004 at 09:21:08AM +0200, Friedrich, Lars wrote:
> No offense, but this is a bad hack. The copy code belongs from
> a 'structured' point of view to where the relocation is done and not
> just attached to the end of the source code.
Agreed -- moved the vector relocation code to where the main
relocation resides.
> And from an 'optimized code' point of view it belongs there, too, as
> _TEXT_BASE is already loaded there into an register for example,
> no need to do this multiple times. I don't quite see the necessarity
> for a loop, too. There are 7 exception vectors, never more, never less.
> The copy procedure can be handled by a single ldmia/stmia pair.
Almost -- I also need to copy the 7 words after the vectors that
contain the absolute addresses of the exception handlers. In total
that takes two ldmia/stmia pairs.
Thanks for the criticism -- the code is a bit tighter now (down to 7
instructions from 14, no branches and no loops).
Cheers,
Curt
--
========================================================================
Curt Brune | Phone 1.650.380.2528 | Managing Principal
curt at cucy.com | WWW www.cucy.com | Cucy Systems
========================================================================
Cucy Systems -- Software. Integration. Training.
========================================================================
-------------- next part --------------
diff -purN new/u-boot/cpu/arm720t/start.S u-boot/cpu/arm720t/start.S
--- new/u-boot/cpu/arm720t/start.S Thu Jul 1 09:30:47 2004
+++ u-boot/cpu/arm720t/start.S Wed Jul 7 10:17:33 2004
@@ -129,6 +129,14 @@ relocate: /* relocate U-Boot to RAM
cmp r0, r1 /* don't reloc during debug */
beq stack_setup
+ ldr r2, =0x0 /* Relocate the exception vectors */
+ cmp r1, r2 /* and associated data to address */
+ ldmneia r0!, {r3-r10} /* 0x0. Do nothing if TEXT_BASE is */
+ stmneia r2!, {r3-r10} /* 0x0. Copy the first 15 words. */
+ ldmneia r0, {r3-r9}
+ stmneia r2, {r3-r9}
+ adrne r0, _start /* restore r0 */
+
ldr r2, _armboot_start
ldr r3, _bss_start
sub r2, r3, r2 /* r2 <- size of armboot */
next prev parent reply other threads:[~2004-07-07 17:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-07 7:21 [U-Boot-Users] [PATCH] ARM720t -- Relocating Exception Vectors Friedrich, Lars
2004-07-07 14:37 ` Curt Brune
2004-07-07 17:33 ` Curt Brune [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-07-07 0:28 Curt Brune
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=20040707103337.A15046@cucy.com \
--to=curt@cucy.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox