1f7409137SSepherosa Ziehau #ifndef _COREMCTL_REG_H_ 2f7409137SSepherosa Ziehau #define _COREMCTL_REG_H_ 3f7409137SSepherosa Ziehau 4f7409137SSepherosa Ziehau #ifndef _SYS_BITOPS_H_ 5f7409137SSepherosa Ziehau #include <sys/bitops.h> 6f7409137SSepherosa Ziehau #endif 7f7409137SSepherosa Ziehau 8*d9902073SSepherosa Ziehau #define PCI_CORE_MEMCTL_CHN_MAX 2 9*d9902073SSepherosa Ziehau #define PCI_CORE_MEMCTL_CHN_DIMM_MAX 2 10*d9902073SSepherosa Ziehau 11f7409137SSepherosa Ziehau #define PCI_CORE_MEMCTL_VID 0x8086 12f7409137SSepherosa Ziehau #define PCI_E3V1_MEMCTL_DID 0x0108 13f7409137SSepherosa Ziehau #define PCI_E3V2_MEMCTL_DID 0x0158 14f7409137SSepherosa Ziehau #define PCI_E3V3_MEMCTL_DID 0x0c08 15f7409137SSepherosa Ziehau #define PCI_COREV3_MEMCTL_DID 0x0c00 16f7409137SSepherosa Ziehau 17f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_LO 0x48 18f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_LO_EN 0x1 19f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_HI 0x4c 20f7409137SSepherosa Ziehau 21f7409137SSepherosa Ziehau #define PCI_E3_ERRSTS 0xc8 22f7409137SSepherosa Ziehau #define PCI_E3_ERRSTS_DMERR __BIT(1) 23f7409137SSepherosa Ziehau #define PCI_E3_ERRSTS_DSERR __BIT(0) 24f7409137SSepherosa Ziehau 25f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_A 0xe4 26f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_A_DMFC __BITS(0, 2) /* v1 */ 27f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_A_ECCDIS __BIT(25) 28f7409137SSepherosa Ziehau 29f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_B 0xe8 30f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_B_DMFC __BITS(4, 6) /* v2/v3 */ 31f7409137SSepherosa Ziehau 32f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_V1_ALL 0x0 /* v1 */ 33f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2933 0x0 /* v2/v3 */ 34f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2667 0x1 /* v2/v3 */ 35f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2400 0x2 /* v2/v3 */ 36f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2133 0x3 /* v2/v3 */ 37f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1867 0x4 /* v2/v3 */ 38f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1600 0x5 /* v2/v3 */ 39f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1333 0x6 40f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1067 0x7 41f7409137SSepherosa Ziehau 42f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_ADDRMASK __BITS64(15, 38) 43f7409137SSepherosa Ziehau 44f7409137SSepherosa Ziehau #define MCH_CORE_SIZE (32 * 1024) 45f7409137SSepherosa Ziehau 46f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_C0 0x40c8 47f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_C0 0x40cc 48f7409137SSepherosa Ziehau 49f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_C1 0x44c8 50f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_C1 0x44cc 51f7409137SSepherosa Ziehau 52f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_CERRSTS __BIT(0) 53f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_MERRSTS __BIT(1) 54f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRSYND __BITS(16, 23) 55f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRCHUNK __BITS(24, 26) 56f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRRANK __BITS(27, 28) 57f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRBANK __BITS(29, 31) 58f7409137SSepherosa Ziehau 59f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_ERRROW __BITS(0, 15) 60f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_ERRCOL __BITS(16, 31) 61f7409137SSepherosa Ziehau 62f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_CH0 0x5004 63f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_CH1 0x5008 64f7409137SSepherosa Ziehau 65f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_SIZE_UNIT 256 /* MB */ 66f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_SIZE __BITS(0, 7) 67f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_B_SIZE __BITS(8, 15) 68f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_SELECT __BIT(16) 69f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_DUAL_RANK __BIT(17) 70f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_B_DUAL_RANK __BIT(18) 71f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_X16 __BIT(19) 72f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_B_X16 __BIT(20) 73f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_RI __BIT(21) /* rank interleave */ 74f7409137SSepherosa Ziehau /* enchanced interleave */ 75f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_ENHI __BIT(22) 76f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC __BITS(24, 25) 77f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_NONE 0x0 78f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_IO 0x1 79f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_LOGIC 0x2 80f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_ALL 0x3 81f7409137SSepherosa Ziehau /* high order rank interleave */ 82f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_HORI __BIT(26) /* v3 */ 83f7409137SSepherosa Ziehau /* high order rank interleave address (addr bits [20,27]) */ 84f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_HORIADDR __BITS(27, 29) /* v3 */ 85f7409137SSepherosa Ziehau 86*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0 0x5880 /* v3 */ 87*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0_EXTTS __BIT(4) 88*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0_CLTM __BIT(1) 89*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0_OLTM __BIT(0) 90*d9902073SSepherosa Ziehau 91*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_CH0 0x58b0 /* v3 */ 92*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_CH1 0x58b4 /* v3 */ 93*d9902073SSepherosa Ziehau 94*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_DIMM0 __BITS(0, 7) 95*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_DIMM1 __BITS(8, 15) 96*d9902073SSepherosa Ziehau 97f7409137SSepherosa Ziehau #endif /* !_COREMCTL_REG_H_ */ 98