#ifndef _ECC_E31200_REG_H_ #define _ECC_E31200_REG_H_ #ifndef _SYS_BITOPS_H_ #include #endif #define PCI_E31200_MCHBAR_LO 0x48 #define PCI_E31200_MCHBAR_LO_EN 0x1 #define PCI_E31200_MCHBAR_HI 0x4c #define PCI_E31200_ERRSTS 0xc8 #define PCI_E31200_ERRSTS_DMERR __BIT(1) #define PCI_E31200_ERRSTS_DSERR __BIT(0) #define PCI_E31200_CAPID0_A 0xe4 #define PCI_E31200_CAPID0_A_DMFC __BITS(0, 2) /* V1 */ #define PCI_E31200_CAPID0_A_ECCDIS __BIT(25) #define PCI_E31200_CAPID0_B 0xe8 #define PCI_E31200_CAPID0_B_DMFC __BITS(4, 6) /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_V1_ALL 0x0 /* V1 */ #define PCI_E31200_CAPID0_DMFC_2933 0x0 /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_2667 0x1 /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_2400 0x2 /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_2133 0x3 /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_1867 0x4 /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_1600 0x5 /* V2/V3 */ #define PCI_E31200_CAPID0_DMFC_1333 0x6 #define PCI_E31200_CAPID0_DMFC_1067 0x7 #define PCI_E31200_MCHBAR_ADDRMASK __BITS64(15, 38) #define MCH_E31200_SIZE (32 * 1024) #define MCH_E31200_ERRLOG0_C0 0x40c8 #define MCH_E31200_ERRLOG1_C0 0x40cc #define MCH_E31200_ERRLOG0_C1 0x44c8 #define MCH_E31200_ERRLOG1_C1 0x44cc #define MCH_E31200_ERRLOG0_CERRSTS __BIT(0) #define MCH_E31200_ERRLOG0_MERRSTS __BIT(1) #define MCH_E31200_ERRLOG0_ERRSYND __BITS(16, 23) #define MCH_E31200_ERRLOG0_ERRCHUNK __BITS(24, 26) #define MCH_E31200_ERRLOG0_ERRRANK __BITS(27, 28) #define MCH_E31200_ERRLOG0_ERRBANK __BITS(29, 31) #define MCH_E31200_ERRLOG1_ERRROW __BITS(0, 15) #define MCH_E31200_ERRLOG1_ERRCOL __BITS(16, 31) #define MCH_E31200_DIMM_CH0 0x5004 #define MCH_E31200_DIMM_CH1 0x5008 #define MCH_E31200_DIMM_SIZE_UNIT 256 /* MB */ #define MCH_E31200_DIMM_A_SIZE __BITS(0, 7) #define MCH_E31200_DIMM_B_SIZE __BITS(8, 15) #define MCH_E31200_DIMM_A_DUAL_RANK __BIT(17) #define MCH_E31200_DIMM_B_DUAL_RANK __BIT(18) #define MCH_E31200_DIMM_A_X16 __BIT(19) #define MCH_E31200_DIMM_B_X16 __BIT(20) #define MCH_E31200_DIMM_RI __BIT(21) /* rank interleave */ /* enchanced interleave */ #define MCH_E31200_DIMM_ENHI __BIT(22) #define MCH_E31200_DIMM_ECC __BITS(24, 25) #define MCH_E31200_DIMM_ECC_SHIFT 24 #define MCH_E31200_DIMM_ECC_NONE 0x0 #define MCH_E31200_DIMM_ECC_IO 0x1 #define MCH_E31200_DIMM_ECC_LOGIC 0x2 #define MCH_E31200_DIMM_ECC_ALL 0x3 /* high order rank interleave */ #define MCH_E31200_DIMM_HORI __BIT(26) /* V3 */ /* high order rank interleave address (addr bits [20,27]) */ #define MCH_E31200_DIMM_HORIADDR __BITS(27, 29) /* V3 */ #endif /* !_ECC_E31200_REG_H_ */