sbsdram.h
上传用户:yuanda199
上传日期:2022-06-26
资源大小:412k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.     EXTERNAL SOURCE RELEASE on 12/03/2001 3.0 - Subject to change without notice.
  3. */
  4. /*
  5.     Copyright 2001, Broadcom Corporation
  6.     All Rights Reserved.
  7.     
  8.     This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
  9.     the contents of this file may not be disclosed to third parties, copied or
  10.     duplicated in any form, in whole or in part, without the prior written
  11.     permission of Broadcom Corporation.
  12. */
  13. /*
  14.  * BCM47XX Sonics SiliconBackplane SDRAM controller core hardware definitions.
  15.  *
  16.  * $Id: sbsdram.h,v 1.1 Broadcom SDK $
  17.  */
  18. #ifndef _SBSDRAM_H
  19. #define _SBSDRAM_H
  20. #ifndef _LANGUAGE_ASSEMBLY
  21. /* Sonics side: SDRAM core registers */
  22. typedef volatile struct sbsdramregs {
  23. uint32 initcontrol; /* Generates external SDRAM initialization sequence */
  24. uint32 config; /* Initializes external SDRAM mode register */
  25. uint32 refresh; /* Controls external SDRAM refresh rate */
  26. uint32 pad1;
  27. uint32 pad2;
  28. } sbsdramregs_t;
  29. #endif
  30. /* SDRAM initialization control (initcontrol) register bits */
  31. #define SDRAM_CBR 0x0001 /* Writing 1 generates refresh cycle and toggles bit */
  32. #define SDRAM_PRE 0x0002 /* Writing 1 generates precharge cycle and toggles bit */
  33. #define SDRAM_MRS 0x0004 /* Writing 1 generates mode register select cycle and toggles bit */
  34. #define SDRAM_EN 0x0008 /* When set, enables access to SDRAM */
  35. #define SDRAM_16Mb 0x0000 /* Use 16 Megabit SDRAM */
  36. #define SDRAM_64Mb 0x0010 /* Use 64 Megabit SDRAM */
  37. #define SDRAM_128Mb 0x0020 /* Use 128 Megabit SDRAM */
  38. #define SDRAM_RSVMb 0x0030 /* Use special SDRAM */
  39. #define SDRAM_RST 0x0080 /* Writing 1 causes soft reset of controller */
  40. #define SDRAM_SELFREF 0x0100 /* Writing 1 enables self refresh mode */
  41. #define SDRAM_PWRDOWN 0x0200 /* Writing 1 causes controller to power down */
  42. #define SDRAM_32BIT 0x0400 /* When set, indicates 32 bit SDRAM interface */
  43. #define SDRAM_9BITCOL 0x0800 /* When set, indicates 9 bit column */
  44. /* SDRAM configuration (config) register bits */
  45. #define SDRAM_BURSTFULL 0x0000 /* Use full page bursts */
  46. #define SDRAM_BURST8 0x0001 /* Use burst of 8 */
  47. #define SDRAM_BURST4 0x0002 /* Use burst of 4 */
  48. #define SDRAM_BURST2 0x0003 /* Use burst of 2 */
  49. #define SDRAM_CAS3 0x0000 /* Use CAS latency of 3 */
  50. #define SDRAM_CAS2 0x0004 /* Use CAS latency of 2 */
  51. /* SDRAM refresh control (refresh) register bits */
  52. #define SDRAM_REF(p) (((p)&0xff) | SDRAM_REF_EN) /* Refresh period */
  53. #define SDRAM_REF_EN 0x8000 /* Writing 1 enables periodic refresh */
  54. /* SDRAM Core Init values (OCP ID 0x803) */
  55. #define SDRAM_CONFIG    SDRAM_BURSTFULL
  56. #define SDRAM_REFRESH   SDRAM_REF(0x40)
  57. #if defined(MEM1MX16_KM)
  58. #define SDRAM_INIT 0x009
  59. #elif defined(MEM1MX16X2_KM)
  60. #define SDRAM_INIT 0x409
  61. #elif defined(MEM2MX8X2_KM)
  62. #define SDRAM_INIT 0x809
  63. #elif defined(MEM2MX8X4_KM)
  64. #define SDRAM_INIT 0xc09
  65. #elif defined(MEM2MX32_KM)
  66. #define SDRAM_INIT 0x439
  67. #elif defined(MEM4MX16_KM)
  68. #define SDRAM_INIT 0x019
  69. #elif defined(MEM4MX16X2_KM)
  70. #define SDRAM_INIT 0x419
  71. #elif defined(MEM8MX8X2_KM)
  72. #define SDRAM_INIT 0x819
  73. #elif defined(MEM8MX8X4_KM)
  74. #define SDRAM_INIT 0xc19
  75. #elif defined(MEM8MX16_KM)
  76. #define SDRAM_INIT 0x829
  77. #elif defined(MEM8MX16X2_KM)
  78. #define SDRAM_INIT 0xc29
  79. #elif defined(MEM4MX32_KM)
  80. #define SDRAM_INIT 0x429
  81. #else /* DEFAULT MEM */
  82. #define SDRAM_INIT 0x419
  83. #endif
  84. #endif /* _SBSDRAM_H */