lowlevel_init.S 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*
  2. * Memory Setup stuff - taken from blob memsetup.S
  3. *
  4. * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and
  5. * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
  6. *
  7. * See file CREDITS for list of people who contributed to this
  8. * project.
  9. *
  10. * This program is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU General Public License as
  12. * published by the Free Software Foundation; either version 2 of
  13. * the License, or (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  23. * MA 02111-1307 USA
  24. */
  25. #include <config.h>
  26. #include <version.h>
  27. /* some parameters for the board */
  28. MEM_BASE: .long 0xa0000000
  29. MEM_START: .long 0xc0000000
  30. #define MDCNFG 0x00
  31. #define MDCAS0 0x04
  32. #define MDCAS1 0x08
  33. #define MDCAS2 0x0c
  34. #define MSC0 0x10
  35. #define MSC1 0x14
  36. #define MECR 0x18
  37. mdcas0: .long 0xc71c703f
  38. mdcas1: .long 0xffc71c71
  39. mdcas2: .long 0xffffffff
  40. /* mdcnfg: .long 0x0bb2bcbf */
  41. mdcnfg: .long 0x0334b22f @ alt
  42. /* mcs0: .long 0xfff8fff8 */
  43. msc0: .long 0xad8c4888 @ alt
  44. mecr: .long 0x00060006
  45. /* mecr: .long 0x994a994a @ alt */
  46. /* setting up the memory */
  47. .globl lowlevel_init
  48. lowlevel_init:
  49. ldr r0, MEM_BASE
  50. /* Setup the flash memory */
  51. ldr r1, msc0
  52. str r1, [r0, #MSC0]
  53. /* Set up the DRAM */
  54. /* MDCAS0 */
  55. ldr r1, mdcas0
  56. str r1, [r0, #MDCAS0]
  57. /* MDCAS1 */
  58. ldr r1, mdcas1
  59. str r1, [r0, #MDCAS1]
  60. /* MDCAS2 */
  61. ldr r1, mdcas2
  62. str r1, [r0, #MDCAS2]
  63. /* MDCNFG */
  64. ldr r1, mdcnfg
  65. str r1, [r0, #MDCNFG]
  66. /* Set up PCMCIA space */
  67. ldr r1, mecr
  68. str r1, [r0, #MECR]
  69. /* Load something to activate bank */
  70. ldr r1, MEM_START
  71. .rept 8
  72. ldr r0, [r1]
  73. .endr
  74. /* everything is fine now */
  75. mov pc, lr