lowlevel_init.S 930 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Low-level initialization for EP93xx
  3. *
  4. * Copyright (C) 2009 Matthias Kaehlcke <matthias@kaehlcke.net>
  5. *
  6. * Copyright (C) 2006 Dominic Rath <Dominic.Rath@gmx.de>
  7. *
  8. * SPDX-License-Identifier: GPL-2.0+
  9. */
  10. #include <version.h>
  11. #include <asm/arch/ep93xx.h>
  12. .globl lowlevel_init
  13. lowlevel_init:
  14. /* backup return address */
  15. ldr r1, =SYSCON_SCRATCH0
  16. str lr, [r1]
  17. /* Turn on both LEDs */
  18. bl red_led_on
  19. bl green_led_on
  20. /* Configure flash wait states before we switch to the PLL */
  21. bl flash_cfg
  22. /* Set up PLL */
  23. bl pll_cfg
  24. /* Turn off the Green LED and leave the Red LED on */
  25. bl green_led_off
  26. /* Setup SDRAM */
  27. bl sdram_cfg
  28. /* Turn on Green LED, Turn off the Red LED */
  29. bl green_led_on
  30. bl red_led_off
  31. /* FIXME: we use async mode for now */
  32. mrc p15, 0, r0, c1, c0, 0
  33. orr r0, r0, #0xc0000000
  34. mcr p15, 0, r0, c1, c0, 0
  35. /* restore return address */
  36. ldr r1, =SYSCON_SCRATCH0
  37. ldr lr, [r1]
  38. mov pc, lr