diff options
author | Mike Frysinger <michael.frysinger@analog.com> | 2007-10-10 12:22:35 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-10-10 12:22:35 -0400 |
commit | 168f1212c098727f2509fe0f66bd30d7209a8159 (patch) | |
tree | e749898e8ab56131a12d8fc489081321abb3ff2f /arch/blackfin/mach-bf533 | |
parent | 27d875f2c134c4b26860ccdd03b4c52cce4efc2c (diff) |
Blackfin arch: rewrite our reboot code in C
rewrite our reboot code in C rather than assembly to be like
other architectures and to allow board maintainers to define
custom behavior
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/mach-bf533')
-rw-r--r-- | arch/blackfin/mach-bf533/head.S | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S index 3be6feefa8a9..6e1b5f6da5ca 100644 --- a/arch/blackfin/mach-bf533/head.S +++ b/arch/blackfin/mach-bf533/head.S | |||
@@ -459,66 +459,6 @@ ENTRY(_start_dma_code) | |||
459 | ENDPROC(_start_dma_code) | 459 | ENDPROC(_start_dma_code) |
460 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 460 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
461 | 461 | ||
462 | ENTRY(_bfin_reset) | ||
463 | /* No more interrupts to be handled*/ | ||
464 | CLI R6; | ||
465 | SSYNC; | ||
466 | |||
467 | #if defined(CONFIG_BFIN_SHARED_FLASH_ENET) | ||
468 | p0.h = hi(FIO_INEN); | ||
469 | p0.l = lo(FIO_INEN); | ||
470 | r0.l = ~(1 << CONFIG_ENET_FLASH_PIN); | ||
471 | w[p0] = r0.l; | ||
472 | |||
473 | p0.h = hi(FIO_DIR); | ||
474 | p0.l = lo(FIO_DIR); | ||
475 | r0.l = (1 << CONFIG_ENET_FLASH_PIN); | ||
476 | w[p0] = r0.l; | ||
477 | |||
478 | p0.h = hi(FIO_FLAG_C); | ||
479 | p0.l = lo(FIO_FLAG_C); | ||
480 | r0.l = (1 << CONFIG_ENET_FLASH_PIN); | ||
481 | w[p0] = r0.l; | ||
482 | #endif | ||
483 | |||
484 | /* Clear the IMASK register */ | ||
485 | p0.h = hi(IMASK); | ||
486 | p0.l = lo(IMASK); | ||
487 | r0 = 0x0; | ||
488 | [p0] = r0; | ||
489 | |||
490 | /* Clear the ILAT register */ | ||
491 | p0.h = hi(ILAT); | ||
492 | p0.l = lo(ILAT); | ||
493 | r0 = [p0]; | ||
494 | [p0] = r0; | ||
495 | SSYNC; | ||
496 | |||
497 | /* make sure SYSCR is set to use BMODE */ | ||
498 | P0.h = hi(SYSCR); | ||
499 | P0.l = lo(SYSCR); | ||
500 | R0.l = 0x0; | ||
501 | W[P0] = R0.l; | ||
502 | SSYNC; | ||
503 | |||
504 | /* issue a system soft reset */ | ||
505 | P1.h = hi(SWRST); | ||
506 | P1.l = lo(SWRST); | ||
507 | R1.l = 0x0007; | ||
508 | W[P1] = R1; | ||
509 | SSYNC; | ||
510 | |||
511 | /* clear system soft reset */ | ||
512 | R0.l = 0x0000; | ||
513 | W[P0] = R0; | ||
514 | SSYNC; | ||
515 | |||
516 | /* issue core reset */ | ||
517 | raise 1; | ||
518 | |||
519 | RTS; | ||
520 | ENDPROC(_bfin_reset) | ||
521 | |||
522 | #if CONFIG_DEBUG_KERNEL_START | 462 | #if CONFIG_DEBUG_KERNEL_START |
523 | debug_kernel_start_trap: | 463 | debug_kernel_start_trap: |
524 | /* Set up a temp stack in L1 - SDRAM might not be working */ | 464 | /* Set up a temp stack in L1 - SDRAM might not be working */ |