sdram.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * (C) Copyright 2006
  3. * Stefan Roese, DENX Software Engineering, sr@denx.de.
  4. *
  5. * (C) Copyright 2006
  6. * DAVE Srl <www.dave-tech.it>
  7. *
  8. * See file CREDITS for list of people who contributed to this
  9. * project.
  10. *
  11. * This program is free software; you can redistribute it and/or
  12. * modify it under the terms of the GNU General Public License as
  13. * published by the Free Software Foundation; either version 2 of
  14. * the License, or (at your option) any later version.
  15. *
  16. * This program is distributed in the hope that it will be useful,
  17. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. * GNU General Public License for more details.
  20. *
  21. * You should have received a copy of the GNU General Public License
  22. * along with this program; if not, write to the Free Software
  23. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  24. * MA 02111-1307 USA
  25. */
  26. #ifndef _SDRAM_H_
  27. #define _SDRAM_H_
  28. #include <config.h>
  29. #define ONE_BILLION 1000000000
  30. struct sdram_conf_s {
  31. unsigned long size;
  32. int rows;
  33. unsigned long reg;
  34. };
  35. typedef struct sdram_conf_s sdram_conf_t;
  36. /* Bitfields offsets */
  37. #define SDRAM0_TR_CASL (31 - 8)
  38. #define SDRAM0_TR_PTA (31 - 13)
  39. #define SDRAM0_TR_CTP (31 - 15)
  40. #define SDRAM0_TR_LDF (31 - 17)
  41. #define SDRAM0_TR_RFTA (31 - 29)
  42. #define SDRAM0_TR_RCD (31 - 31)
  43. #ifdef CONFIG_SYS_SDRAM_CL
  44. /* SDRAM timings [ns] according to AMCC/IBM names (see SDRAM_faq.doc) */
  45. #define CONFIG_SYS_SDRAM_CASL CONFIG_SYS_SDRAM_CL
  46. #define CONFIG_SYS_SDRAM_PTA CONFIG_SYS_SDRAM_tRP
  47. #define CONFIG_SYS_SDRAM_CTP (CONFIG_SYS_SDRAM_tRC - CONFIG_SYS_SDRAM_tRCD - CONFIG_SYS_SDRAM_tRP)
  48. #define CONFIG_SYS_SDRAM_LDF 0
  49. #ifdef CONFIG_SYS_SDRAM_tRFC
  50. #define CONFIG_SYS_SDRAM_RFTA CONFIG_SYS_SDRAM_tRFC
  51. #else
  52. #define CONFIG_SYS_SDRAM_RFTA CONFIG_SYS_SDRAM_tRC
  53. #endif
  54. #define CONFIG_SYS_SDRAM_RCD CONFIG_SYS_SDRAM_tRCD
  55. #endif /* #ifdef CONFIG_SYS_SDRAM_CL */
  56. /*
  57. * Some defines for the 440 DDR controller
  58. */
  59. #define SDRAM_CFG0_DC_EN 0x80000000 /* SDRAM Controller Enable */
  60. #define SDRAM_CFG0_MEMCHK 0x30000000 /* Memory data error checking mask*/
  61. #define SDRAM_CFG0_MEMCHK_NON 0x00000000 /* No ECC generation */
  62. #define SDRAM_CFG0_MEMCHK_GEN 0x20000000 /* ECC generation */
  63. #define SDRAM_CFG0_MEMCHK_CHK 0x30000000 /* ECC generation and checking */
  64. #define SDRAM_CFG0_DRAMWDTH 0x02000000 /* DRAM width mask */
  65. #define SDRAM_CFG0_DRAMWDTH_32 0x00000000 /* 32 bits */
  66. #define SDRAM_CFG0_DRAMWDTH_64 0x02000000 /* 64 bits */
  67. #endif