eir1ocd.ini 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #
  2. # Init CPU and init SDRAM was taken from the EIR init script
  3. # More information about the EIR can be found here:
  4. # http://www.ethernut.de/en/hardware/eir/index.html
  5. #
  6. #
  7. # Init CPU
  8. #
  9. # Disable watchdog
  10. mww 0xfffffd44 0x00008000 # WDT_MR_OFF
  11. # Use 2 cycles for flash access
  12. mww 0xffffff60 0x00000100 # MC_FMR_OFF
  13. # Disable all interrupts
  14. mww 0xfffff130 0xffffffff # AIC_EOICR_OFF
  15. mww 0xfffff124 0xffffffff # AIC_IDCR_OFF
  16. #
  17. # Enable the main oscillator. Set startup time of 6 * 8 slow
  18. # clock cycles and wait until oscillator is stabilized.
  19. #
  20. mww 0xFFFFFC20 0x00000601 # CKGR_MOR_OFF
  21. sleep 10
  22. #
  23. # Set PLL:
  24. # PLLfreq = crystal / divider * (multiplier + 1)
  25. # Wait 28 clock cycles until PLL is locked.
  26. #
  27. mww 0xFFFFFC2C 0x00481c0e # CKGR_PLLR_OFF
  28. sleep 10
  29. #
  30. # Set master clock prescaler.
  31. #
  32. mww 0xFFFFFC30 0x00000004 # PMC_MCKR_OFF
  33. sleep 10
  34. #
  35. # Switch to PLL clock.
  36. #
  37. mww 0xFFFFFC30 0x00000007 # PMC_MCKR_OFF
  38. sleep 10
  39. #
  40. # Enable SDRAM interface
  41. #
  42. # Enable SDRAM control at PIO A.
  43. mww 0xfffff474 0x3f800000 # PIO_BSR_OFF
  44. mww 0xfffff404 0x3f800000 # PIO_PDR_OFF
  45. # Enable address bus (A0, A2-A11, A13-A17) at PIO B
  46. mww 0xfffff674 0x0003effd # PIO_BSR_OFF
  47. mww 0xfffff604 0x0003effd # PIO_PDR_OFF
  48. # Enable 16 bit data bus at PIO C
  49. mww 0xfffff870 0x0000ffff # PIO_ASR_OFF
  50. mww 0xfffff804 0x0000ffff # PIO_PDR_OFF
  51. # Enable SDRAM chip select
  52. mww 0xffffff80 0x00000002 # EBI_CSA_OFF
  53. # Set SDRAM characteristics in configuration register.
  54. # Hard coded values for MT48LC32M16A2 with 48MHz CPU.
  55. mww 0xffffffb8 0x2192215a # SDRAMC_CR_OFF
  56. sleep 10
  57. # Issue 16 bit SDRAM command: NOP
  58. mww 0xffffffb0 0x00000011 # SDRAMC_MR_OFF
  59. mww 0x20000000 0x00000000
  60. # Issue 16 bit SDRAM command: Precharge all
  61. mww 0xffffffb0 0x00000012 # SDRAMC_MR_OFF
  62. mww 0x20000000 0x00000000
  63. # Issue 8 auto-refresh cycles
  64. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  65. mww 0x20000000 0x00000000
  66. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  67. mww 0x20000000 0x00000000
  68. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  69. mww 0x20000000 0x00000000
  70. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  71. mww 0x20000000 0x00000000
  72. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  73. mww 0x20000000 0x00000000
  74. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  75. mww 0x20000000 0x00000000
  76. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  77. mww 0x20000000 0x00000000
  78. mww 0xffffffb0 0x00000014 # SDRAMC_MR_OFF
  79. mww 0x20000000 0x00000000
  80. # Issue 16 bit SDRAM command: Set mode register
  81. mww 0xffffffb0 0x00000013 # SDRAMC_MR_OFF
  82. mww 0x20000014 0xcafedede
  83. # Set refresh rate count ???
  84. mww 0xffffffb4 0x00000013 # SDRAMC_TR_OFF
  85. # Issue 16 bit SDRAM command: Normal mode
  86. mww 0xffffffb0 0x00000010 # SDRAMC_MR_OFF
  87. mww 0x20000000 0x00000180
  88. #
  89. # Enable external reset key.
  90. #
  91. mww 0xfffffd08 0xa5000001