diff options
Diffstat (limited to 'cpu/blackfin')
-rw-r--r-- | cpu/blackfin/cpu.c | 10 | ||||
-rw-r--r-- | cpu/blackfin/initcode.c | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/cpu/blackfin/cpu.c b/cpu/blackfin/cpu.c index c2ff8cd8c6..9bb6407fc6 100644 --- a/cpu/blackfin/cpu.c +++ b/cpu/blackfin/cpu.c @@ -25,12 +25,20 @@ ulong bfin_poweron_retx; __attribute__ ((__noreturn__)) void cpu_init_f(ulong bootflag, ulong loaded_from_ldr) { + extern char _stext_l1; +#ifndef CONFIG_BFIN_BOOTROM_USES_EVT1 + /* Build a NOP slide over the LDR jump block. Whee! */ + char nops[0xC]; + serial_early_puts("NOP Slide\n"); + memset(nops, 0x00, sizeof(nops)); + memcpy(&_stext_l1 - sizeof(nops), nops, sizeof(nops)); +#endif + 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 c0fe2c65a6..a039cbbbce 100644 --- a/cpu/blackfin/initcode.c +++ b/cpu/blackfin/initcode.c @@ -543,9 +543,11 @@ void initcode(ADI_BOOT_DATA *bootstruct) serial_putc('T'); +#ifdef CONFIG_BFIN_BOOTROM_USES_EVT1 /* tell the bootrom where our entry point is */ if (CONFIG_BFIN_BOOT_MODE != BFIN_BOOT_BYPASS) bfin_write_EVT1(CONFIG_SYS_MONITOR_BASE); +#endif serial_putc('>'); serial_putc('\n'); |