octeon_edac-lmc.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * LMC Registers, see chapter 2.5
  3. *
  4. * These are RSL Type registers and are accessed indirectly across the
  5. * I/O bus, so accesses are slowish. Not that it matters. Any size load is
  6. * ok but stores must be 64-bit.
  7. */
  8. #define LMC_BASE 0x0001180088000000
  9. #define LMC_SIZE 0xb8
  10. #define LMC_MEM_CFG0 0x0000000000000000
  11. #define LMC_MEM_CFG1 0x0000000000000008
  12. #define LMC_CTL 0x0000000000000010
  13. #define LMC_DDR2_CTL 0x0000000000000018
  14. #define LMC_FADR 0x0000000000000020
  15. #define LMC_FADR_FDIMM
  16. #define LMC_FADR_FBUNK
  17. #define LMC_FADR_FBANK
  18. #define LMC_FADR_FROW
  19. #define LMC_FADR_FCOL
  20. #define LMC_COMP_CTL 0x0000000000000028
  21. #define LMC_WODT_CTL 0x0000000000000030
  22. #define LMC_ECC_SYND 0x0000000000000038
  23. #define LMC_IFB_CNT_LO 0x0000000000000048
  24. #define LMC_IFB_CNT_HI 0x0000000000000050
  25. #define LMC_OPS_CNT_LO 0x0000000000000058
  26. #define LMC_OPS_CNT_HI 0x0000000000000060
  27. #define LMC_DCLK_CNT_LO 0x0000000000000068
  28. #define LMC_DCLK_CNT_HI 0x0000000000000070
  29. #define LMC_DELAY_CFG 0x0000000000000088
  30. #define LMC_CTL1 0x0000000000000090
  31. #define LMC_DUAL_MEM_CONFIG 0x0000000000000098
  32. #define LMC_RODT_COMP_CTL 0x00000000000000A0
  33. #define LMC_PLL_CTL 0x00000000000000A8
  34. #define LMC_PLL_STATUS 0x00000000000000B0
  35. union lmc_mem_cfg0 {
  36. uint64_t u64;
  37. struct {
  38. uint64_t reserved_32_63:32;
  39. uint64_t reset:1;
  40. uint64_t silo_qc:1;
  41. uint64_t bunk_ena:1;
  42. uint64_t ded_err:4;
  43. uint64_t sec_err:4;
  44. uint64_t intr_ded_ena:1;
  45. uint64_t intr_sec_ena:1;
  46. uint64_t reserved_15_18:4;
  47. uint64_t ref_int:5;
  48. uint64_t pbank_lsb:4;
  49. uint64_t row_lsb:3;
  50. uint64_t ecc_ena:1;
  51. uint64_t init_start:1;
  52. };
  53. };
  54. union lmc_fadr {
  55. uint64_t u64;
  56. struct {
  57. uint64_t reserved_32_63:32;
  58. uint64_t fdimm:2;
  59. uint64_t fbunk:1;
  60. uint64_t fbank:3;
  61. uint64_t frow:14;
  62. uint64_t fcol:12;
  63. };
  64. };
  65. union lmc_ecc_synd {
  66. uint64_t u64;
  67. struct {
  68. uint64_t reserved_32_63:32;
  69. uint64_t mrdsyn3:8;
  70. uint64_t mrdsyn2:8;
  71. uint64_t mrdsyn1:8;
  72. uint64_t mrdsyn0:8;
  73. };
  74. };