summaryrefslogtreecommitdiff
path: root/cpu/blackfin
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-10-18 04:04:49 -0400
committerMike Frysinger <vapier@gentoo.org>2009-03-23 15:14:54 -0400
commit7e1d212b6da492c6ea32c62af92e185284f41291 (patch)
tree4ed1b3f606e93a92a2c34f172052e3fddfccddd8 /cpu/blackfin
parenta75fa148d60b1975403441e45565621bba50d2d9 (diff)
downloadu-boot-imx-7e1d212b6da492c6ea32c62af92e185284f41291.zip
u-boot-imx-7e1d212b6da492c6ea32c62af92e185284f41291.tar.gz
u-boot-imx-7e1d212b6da492c6ea32c62af92e185284f41291.tar.bz2
Blackfin: kill off LDR jump block
The Boot ROM uses EVT1 as the entry point so set that rather than having to use a tiny jump block in the default EVT1 location. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'cpu/blackfin')
-rw-r--r--cpu/blackfin/cpu.c8
-rw-r--r--cpu/blackfin/initcode.c4
2 files changed, 5 insertions, 7 deletions
diff --git a/cpu/blackfin/cpu.c b/cpu/blackfin/cpu.c
index 30c214b..c2ff8cd 100644
--- a/cpu/blackfin/cpu.c
+++ b/cpu/blackfin/cpu.c
@@ -25,18 +25,12 @@ ulong bfin_poweron_retx;
__attribute__ ((__noreturn__))
void cpu_init_f(ulong bootflag, ulong loaded_from_ldr)
{
- /* Build a NOP slide over the LDR jump block. Whee! */
- serial_early_puts("NOP Slide\n");
- char nops[0xC];
- memset(nops, 0x00, sizeof(nops));
- extern char _stext_l1;
- memcpy(&_stext_l1 - sizeof(nops), nops, sizeof(nops));
-
if (!loaded_from_ldr) {
/* Relocate sections into L1 if the LDR didn't do it -- don't
* check length because the linker script does the size
* checking at build time.
*/
+ extern char _stext_l1;
serial_early_puts("L1 Relocate\n");
extern char _stext_l1, _etext_l1, _stext_l1_lma;
memcpy(&_stext_l1, &_stext_l1_lma, (&_etext_l1 - &_stext_l1));
diff --git a/cpu/blackfin/initcode.c b/cpu/blackfin/initcode.c
index 3f3b479..342b96a 100644
--- a/cpu/blackfin/initcode.c
+++ b/cpu/blackfin/initcode.c
@@ -372,6 +372,10 @@ void initcode(ADI_BOOT_DATA *bootstruct)
bfin_write_SIC_IWR(-1);
#endif
+ /* tell the bootrom where our entry point is */
+ if (CONFIG_BFIN_BOOT_MODE != BFIN_BOOT_BYPASS)
+ bfin_write_EVT1(CONFIG_SYS_MONITOR_BASE);
+
serial_putc('>');
serial_putc('\n');