12th Generation Intel® Core™ Processors Datasheet Volume 2 of 2

ID 767625
Date 07/13/2023
Public
Document Table of Contents
Introduction Processor Configuration Register Definitions and Address Ranges D0:F0 Host Bridge and DRAM Controller - DMIBAR Registers (part 1) D0:F0 Host Bridge and DRAM Controller - DMIBAR Registers (part 2) D0:F0 Host Bridge and DRAM Controller - GFXVTBAR Registers D0:F0 Host Bridge and DRAM Controller - GTTMMADR Registers (part 1) D0:F0 Host Bridge and DRAM Controller - GTTMMADR Registers (part 2) D0:F0 Host Bridge and DRAM Controller - Host Bridge/DRAM Registers (part 1) D0:F0 Host Bridge and DRAM Controller - Host Bridge/DRAM Registers (part 2) D0:F0 Host Bridge and DRAM Controller - MCHBAR Host Controller Registers (part 1) D0:F0 Host Bridge and DRAM Controller - MCHBAR Host Controller Registers (part 2) D0:F0 Host Bridge and DRAM Controller - MCHBAR Memory Controller Registers (part 2) D0:F0 Host Bridge and DRAM Controller - MCHBAR Memory Controller Registers (part 3) D0:F0 Host Bridge and DRAM Controller - MCHBAR Memory Controller Registers (part 4) D0:F0 Host Bridge and DRAM Controller - MCHBAR Memory Controller Registers (part 5) D0:F0 Host Bridge and DRAM Controller - MCHBAR Power Management Registers (part 1) D0:F0 Host Bridge and DRAM Controller - MCHBAR Power Management Registers (part 2) D0:F0 Host Bridge and DRAM Controller - PXPEPBAR PCI Express Egress Port Registers D0:F0 Host Bridge and DRAM Controller - REGBAR Registers (part 1) D0:F0 Host Bridge and DRAM Controller - REGBAR Registers (part 2) D0:F0 Host Bridge and DRAM Controller - VTDPVC0BAR Registers D1:F0-1 PCI Express* Controller Registers D10:F0 Platform Monitoring Technology (PMT) Registers D13:F0 USB Host Controller (xHCI) Registers D13:F0 USB Host Controller MBAR Registers D13:F1 USB Device Controller (xDCI) Configuration Registers D13:F2-3 Thunderbolt DMA Device Registers D14:F0 Volume Management Device D14:F0 Volume Management Device MEMBAR2 Registers D2:F0 Processor Graphics D4:F0 Dynamic Tuning Technology Registers D5:F0 Image Processing Unit Registers D6:F0 PCI Express* Controller Registers (part 1) D6:F0 PCI Express* Controller Registers (part 2) D7:F0-3 Thunderbolt PCI Express* Controller Registers D8:F0 Gauss Newton Algorithm Registers
D0:F0 Host Bridge and DRAM Controller - GFXVTBAR Registers Version Register (VER_REG_0_0_0_VTDBAR) Capability Register (CAP_REG_0_0_0_VTDBAR) Extended Capability Register (ECAP_REG_0_0_0_VTDBAR) Global Command Register (GCMD_REG_0_0_0_VTDBAR) Global Status Register (GSTS_REG_0_0_0_VTDBAR) Root Table Address Register (RTADDR_REG_0_0_0_VTDBAR) Context Command Register (CCMD_REG_0_0_0_VTDBAR) Fault Status Register (FSTS_REG_0_0_0_VTDBAR) Fault Event Control Register (FECTL_REG_0_0_0_VTDBAR) Fault Event Data Register (FEDATA_REG_0_0_0_VTDBAR) Fault Event Address Register (FEADDR_REG_0_0_0_VTDBAR) Fault Event Upper Address Register (FEUADDR_REG_0_0_0_VTDBAR) Advanced Fault Log Register (AFLOG_REG_0_0_0_VTDBAR) Protected Memory Enable Register (PMEN_REG_0_0_0_VTDBAR) Protected Low Memory Base Register (PLMBASE_REG_0_0_0_VTDBAR) Protected Low-Memory Limit Register (PLMLIMIT_REG_0_0_0_VTDBAR) Protected High-Memory Base Register (PHMBASE_REG_0_0_0_VTDBAR) Protected High-Memory Limit Register (PHMLIMIT_REG_0_0_0_VTDBAR) Invalidation Queue Head Register (IQH_REG_0_0_0_VTDBAR) Invalidation Queue Tail Register (IQT_REG_0_0_0_VTDBAR) Invalidation Queue Address Register (IQA_REG_0_0_0_VTDBAR) Invalidation Completion Status Register (ICS_REG_0_0_0_VTDBAR) Invalidation Event Control Register (IECTL_REG_0_0_0_VTDBAR) Invalidation Event Data Register (IEDATA_REG_0_0_0_VTDBAR) Invalidation Event Address Register (IEADDR_REG_0_0_0_VTDBAR) Invalidation Event Upper Address Register (IEUADDR_REG_0_0_0_VTDBAR) Interrupt Remapping Table Address Register (IRTA_REG_0_0_0_VTDBAR) Page Request Queue Head Register (PQH_REG_0_0_0_VTDBAR) Page Request Queue Tail Register (PQT_REG_0_0_0_VTDBAR) Page Request Queue Address Register (PQA_REG_0_0_0_VTDBAR) Page Request Status Register (PRS_REG_0_0_0_VTDBAR) Page Request Event Control Register (PECTL_REG_0_0_0_VTDBAR) Page Request Event Data Register (PEDATA_REG_0_0_0_VTDBAR) Page Request Event Address Register (PEADDR_REG_0_0_0_VTDBAR) Page Request Event Upper Address Register (PEUADDR_REG_0_0_0_VTDBAR) MTRR Capability Register (MTRRCAP_0_0_0_VTDBAR) MTRR Default Type Register (MTRRDEFAULT_0_0_0_VTDBAR) Fixed-Range MTRR Format 64K-00000 (MTRR_FIX64K_00000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 16K-80000 (MTRR_FIX16K_80000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 16K-A0000 (MTRR_FIX16K_A0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-C0000 (MTRR_FIX4K_C0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-C8000 (MTRR_FIX4K_C8000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-D0000 (MTRR_FIX4K_D0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-D8000 (MTRR_FIX4K_D8000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-E0000 (MTRR_FIX4K_E0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-E8000 (MTRR_FIX4K_E8000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-F0000 (MTRR_FIX4K_F0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-F8000 (MTRR_FIX4K_F8000_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 0 (MTRR_PHYSBASE0_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 0 (MTRR_PHYSMASK0_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 1 (MTRR_PHYSBASE1_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 1 (MTRR_PHYSMASK1_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 2 (MTRR_PHYSBASE2_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 2 (MTRR_PHYSMASK2_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 3 (MTRR_PHYSBASE3_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 3 (MTRR_PHYSMASK3_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 4 (MTRR_PHYSBASE4_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 4 (MTRR_PHYSMASK4_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 5 (MTRR_PHYSBASE5_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 5 (MTRR_PHYSMASK5_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 6 (MTRR_PHYSBASE6_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 6 (MTRR_PHYSMASK6_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 7 (MTRR_PHYSBASE7_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 7 (MTRR_PHYSMASK7_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 8 (MTRR_PHYSBASE8_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 8 (MTRR_PHYSMASK8_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 9 (MTRR_PHYSBASE9_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 9 (MTRR_PHYSMASK9_REG_0_0_0_VTDBAR) Fault Recording Register Low [0] (FRCDL_REG_0_0_0_VTDBAR) Fault Recording Register High [0] (FRCDH_REG_0_0_0_VTDBAR) Invalidate Address Register (IVA_REG_0_0_0_VTDBAR) IOTLB Invalidate Register (IOTLB_REG_0_0_0_VTDBAR)
D0:F0 Host Bridge and DRAM Controller - MCHBAR Memory Controller Registers (part 5) IMR0BASE (IMR0BASE_0_0_0_MCHBAR_IMPH) IMR0MASK (IMR0MASK_0_0_0_MCHBAR_IMPH) IMR1BASE (IMR1BASE_0_0_0_MCHBAR_IMPH) IMR1MASK (IMR1MASK_0_0_0_MCHBAR_IMPH) IMR2BASE (IMR2BASE_0_0_0_MCHBAR_IMPH) IMR2MASK (IMR2MASK_0_0_0_MCHBAR_IMPH) IMR3BASE (IMR3BASE_0_0_0_MCHBAR_IMPH) IMR3MASK (IMR3MASK_0_0_0_MCHBAR_IMPH) IMR4BASE (IMR4BASE_0_0_0_MCHBAR_IMPH) IMR4MASK (IMR4MASK_0_0_0_MCHBAR_IMPH) IMR5BASE (IMR5BASE_0_0_0_MCHBAR_IMPH) IMR5MASK (IMR5MASK_0_0_0_MCHBAR_IMPH) IMR6BASE (IMR6BASE_0_0_0_MCHBAR_IMPH) IMR6MASK (IMR6MASK_0_0_0_MCHBAR_IMPH) IMR7BASE (IMR7BASE_0_0_0_MCHBAR_IMPH) IMR7MASK (IMR7MASK_0_0_0_MCHBAR_IMPH) IMR8BASE (IMR8BASE_0_0_0_MCHBAR_IMPH) IMR8MASK (IMR8MASK_0_0_0_MCHBAR_IMPH) IMR9BASE (IMR9BASE_0_0_0_MCHBAR_IMPH) IMR9MASK (IMR9MASK_0_0_0_MCHBAR_IMPH) IMR10BASE (IMR10BASE_0_0_0_MCHBAR_IMPH) IMR10MASK (IMR10MASK_0_0_0_MCHBAR_IMPH) IMR11BASE (IMR11BASE_0_0_0_MCHBAR_IMPH) IMR11MASK (IMR11MASK_0_0_0_MCHBAR_IMPH) IMR12BASE (IMR12BASE_0_0_0_MCHBAR_IMPH) IMR12MASK (IMR12MASK_0_0_0_MCHBAR_IMPH) IMR13BASE (IMR13BASE_0_0_0_MCHBAR_IMPH) IMR13MASK (IMR13MASK_0_0_0_MCHBAR_IMPH) IMR14BASE (IMR14BASE_0_0_0_MCHBAR_IMPH) IMR14MASK (IMR14MASK_0_0_0_MCHBAR_IMPH) IMR15BASE (IMR15BASE_0_0_0_MCHBAR_IMPH) IMR15MASK (IMR15MASK_0_0_0_MCHBAR_IMPH) IMR16BASE (IMR16BASE_0_0_0_MCHBAR_IMPH) IMR16MASK (IMR16MASK_0_0_0_MCHBAR_IMPH) IMR17BASE (IMR17BASE_0_0_0_MCHBAR_IMPH) IMR17MASK (IMR17MASK_0_0_0_MCHBAR_IMPH) IMR18BASE (IMR18BASE_0_0_0_MCHBAR_IMPH) IMR18MASK (IMR18MASK_0_0_0_MCHBAR_IMPH)
D0:F0 Host Bridge and DRAM Controller - MCHBAR Power Management Registers (part 1) BIOS POST Code (BIOS_POST_CODE_0_0_0_MCHBAR_PCU) (DDR_PTM_CTL_0_0_0_MCHBAR_PCU) Package RAPL Performance Status (PACKAGE_RAPL_PERF_STATUS_0_0_0_MCHBAR_PCU) Primary Plane Turbo Policy (PRIP_TURBO_PLCY_0_0_0_MCHBAR_PCU) Secondary Plane Turbo Policy (SECP_TURBO_PLCY_0_0_0_MCHBAR_PCU) Primary Plane Energy Status (PRIP_NRG_STTS_0_0_0_MCHBAR_PCU) Secondary Plane Energy Status (SECP_NRG_STTS_0_0_0_MCHBAR_PCU) Package Power SKU Unit (PACKAGE_POWER_SKU_UNIT_0_0_0_MCHBAR_PCU) Package Energy Status (PACKAGE_ENERGY_STATUS_0_0_0_MCHBAR_PCU) Primary Plane 0 Temperature (PP0_TEMPERATURE_0_0_0_MCHBAR_PCU) RP-State Limits (RP_STATE_LIMITS_0_0_0_MCHBAR_PCU) Package Power Limit (PACKAGE_RAPL_LIMIT_0_0_0_MCHBAR_PCU) Device Idle Duration Override (DEVICE_IDLE_DURATION_OVERRIDE_0_0_0_MCHBAR_PCU) FIVR FFFC EMI Control (FFFC_EMI_CONTROL_0_0_0_MCHBAR_PCU) FIVR FFFC RFI Control (FFFC_RFI_CONTROL_0_0_0_MCHBAR_PCU) FIVR FFFC RFI Control 2 (FFFC_RFI_CONTROL2_0_0_0_MCHBAR_PCU) BIOS Mailbox Data (BIOS_Mailbox_Data_0_0_0_MCHBAR_PCU) BIOS Mailbox Interface (BIOS_Mailbox_Interface_0_0_0_MCHBAR_PCU) BIOS Reset Complete (BIOS_RESET_CPL_0_0_0_MCHBAR_PCU) Memory Controller BIOS Request (MC_BIOS_REQ_0_0_0_MCHBAR_PCU) Memory Controller BIOS Data (MC_BIOS_DATA_0_0_0_MCHBAR_PCU) System Agent Power Management Control (SAPMCTL_0_0_0_MCHBAR_PCU) Configurable TDP Nominal (CONFIG_TDP_NOMINAL_0_0_0_MCHBAR_PCU) Configurable TDP Level 1 (CONFIG_TDP_LEVEL1_0_0_0_MCHBAR_PCU) Configurable TDP Level 2 (CONFIG_TDP_LEVEL2_0_0_0_MCHBAR_PCU) Configurable TDP Control (CONFIG_TDP_CONTROL_0_0_0_MCHBAR_PCU) Turbo Activation Ratio (TURBO_ACTIVATION_RATIO_0_0_0_MCHBAR_PCU) Overclocking Status (OC_STATUS_0_0_0_MCHBAR_PCU) Base Clock (BCLK) Frequency (BCLK_FREQ_0_0_0_MCHBAR)
D0:F0 Host Bridge and DRAM Controller - VTDPVC0BAR Registers Version Register (VER_REG_0_0_0_VTDBAR) Capability Register (CAP_REG_0_0_0_VTDBAR) Extended Capability Register (ECAP_REG_0_0_0_VTDBAR) Global Command Register (GCMD_REG_0_0_0_VTDBAR) Global Status Register (GSTS_REG_0_0_0_VTDBAR) Root Table Address Register (RTADDR_REG_0_0_0_VTDBAR) Context Command Register (CCMD_REG_0_0_0_VTDBAR) Fault Status Register (FSTS_REG_0_0_0_VTDBAR) Fault Event Control Register (FECTL_REG_0_0_0_VTDBAR) Fault Event Data Register (FEDATA_REG_0_0_0_VTDBAR) Fault Event Address Register (FEADDR_REG_0_0_0_VTDBAR) Fault Event Upper Address Register (FEUADDR_REG_0_0_0_VTDBAR) Advanced Fault Log Register (AFLOG_REG_0_0_0_VTDBAR) Protected Memory Enable Register (PMEN_REG_0_0_0_VTDBAR) Protected Low Memory Base Register (PLMBASE_REG_0_0_0_VTDBAR) Protected Low-Memory Limit Register (PLMLIMIT_REG_0_0_0_VTDBAR) Protected High-Memory Base Register (PHMBASE_REG_0_0_0_VTDBAR) Protected High-Memory Limit Register (PHMLIMIT_REG_0_0_0_VTDBAR) Invalidation Queue Head Register (IQH_REG_0_0_0_VTDBAR) Invalidation Queue Tail Register (IQT_REG_0_0_0_VTDBAR) Invalidation Queue Address Register (IQA_REG_0_0_0_VTDBAR) Invalidation Completion Status Register (ICS_REG_0_0_0_VTDBAR) Invalidation Event Control Register (IECTL_REG_0_0_0_VTDBAR) Invalidation Event Data Register (IEDATA_REG_0_0_0_VTDBAR) Invalidation Event Address Register (IEADDR_REG_0_0_0_VTDBAR) Invalidation Event Upper Address Register (IEUADDR_REG_0_0_0_VTDBAR) Interrupt Remapping Table Address Register (IRTA_REG_0_0_0_VTDBAR) Page Request Queue Head Register (PQH_REG_0_0_0_VTDBAR) Page Request Queue Tail Register (PQT_REG_0_0_0_VTDBAR) Page Request Queue Address Register (PQA_REG_0_0_0_VTDBAR) Page Request Status Register (PRS_REG_0_0_0_VTDBAR) Page Request Event Control Register (PECTL_REG_0_0_0_VTDBAR) Page Request Event Data Register (PEDATA_REG_0_0_0_VTDBAR) Page Request Event Address Register (PEADDR_REG_0_0_0_VTDBAR) Page Request Event Upper Address Register (PEUADDR_REG_0_0_0_VTDBAR) MTRR Capability Register (MTRRCAP_0_0_0_VTDBAR) MTRR Default Type Register (MTRRDEFAULT_0_0_0_VTDBAR) Fixed-Range MTRR Format 64K-00000 (MTRR_FIX64K_00000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 16K-80000 (MTRR_FIX16K_80000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 16K-A0000 (MTRR_FIX16K_A0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-C0000 (MTRR_FIX4K_C0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-C8000 (MTRR_FIX4K_C8000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-D0000 (MTRR_FIX4K_D0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-D8000 (MTRR_FIX4K_D8000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-E0000 (MTRR_FIX4K_E0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-E8000 (MTRR_FIX4K_E8000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-F0000 (MTRR_FIX4K_F0000_REG_0_0_0_VTDBAR) Fixed-Range MTRR Format 4K-F8000 (MTRR_FIX4K_F8000_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 0 (MTRR_PHYSBASE0_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 0 (MTRR_PHYSMASK0_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 1 (MTRR_PHYSBASE1_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 1 (MTRR_PHYSMASK1_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 2 (MTRR_PHYSBASE2_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 2 (MTRR_PHYSMASK2_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 3 (MTRR_PHYSBASE3_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 3 (MTRR_PHYSMASK3_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 4 (MTRR_PHYSBASE4_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 4 (MTRR_PHYSMASK4_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 5 (MTRR_PHYSBASE5_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 5 (MTRR_PHYSMASK5_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 6 (MTRR_PHYSBASE6_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 6 (MTRR_PHYSMASK6_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 7 (MTRR_PHYSBASE7_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 7 (MTRR_PHYSMASK7_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 8 (MTRR_PHYSBASE8_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 8 (MTRR_PHYSMASK8_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Base 9 (MTRR_PHYSBASE9_REG_0_0_0_VTDBAR) Variable-Range MTRR Format Physical Mask 9 (MTRR_PHYSMASK9_REG_0_0_0_VTDBAR) Fault Recording Register Low [0] (FRCDL_REG_0_0_0_VTDBAR) Fault Recording Register High [0] (FRCDH_REG_0_0_0_VTDBAR) Invalidate Address Register (IVA_REG_0_0_0_VTDBAR) IOTLB Invalidate Register (IOTLB_REG_0_0_0_VTDBAR)
D1:F0-1 PCI Express* Controller Registers Device ID and Vendor ID (ID) Device Command (CMD) Primary Status (PSTS) Revision ID and Class Code (RID_CC) Cache Line Size (CLS) Primary Latency Timer (PLT) Header Type (HTYPE) Base Address Register 0 (BAR0) Base Address Register 1 (BAR1) Bus Numbers (BNUM_SLT) I/O Base And Limit (IOBL) Secondary Status (SSTS) Memory Base And Limit (MBL) Prefetchable Memory Base And Limit (PMBL) Prefetchable Memory Base Upper 32 Bits (PMBU32) Prefetchable Memory Limit Upper 32 Bits (PMLU32) Capabilities Pointer (CAPP) Interrupt Information Byte 0 (INTRB0) Interrupt Information Byte 1 (INTRB1) Bridge Control (BCTRL) Capabilities List (CLIST) PCI Express Capabilities (XCAP) Device Capabilities (DCAP) Device Control (DCTL) Device Status (DSTS) Link Capabilities (LCAP) Link Control (LCTL) Link Status (LSTS) Slot Capabilities (SLCAP) Slot Control (SLCTL) Slot Status (SLSTS) Root Control (RCTL) Root Capabilities (ROOTCAP) Root Status (RSTS) Device Capabilities 2 (DCAP2) Device Control 2 (DCTL2) Device Status 2 (DSTS2) Link Capabilities 2 (LCAP2) Link Control 2 (LCTL2) Link Status 2 (LSTS2) Slot Capabilities 2 (SLCAP2) Slot Control 2 (SLCTL2) Slot Status 2 (SLSTS2) Message Signaled Interrupt Identifiers (MID) Message Signaled Interrupt Message (MC) Message Signaled Interrupt Message Address (MA) Message Signaled Interrupt Message Upper Address (MUA) Message Signaled Interrupt Message Data (MD) Subsystem Vendor Capability (SVCAP) Subsystem Vendor IDs (SVID) Power Management Capability (PMCAP) PCI Power Management Capabilities (PMC) PCI Power Management Control (PMCS) Advanced Error Extended (AECH) Uncorrectable Error Status (UES) Uncorrectable Error Mask (UEM) Uncorrectable Error Severity (UEV) Correctable Error Status (CES) Correctable Error Mask (CEM) Advanced Error Capabilities And Control (AECC) Header Log (HL_DW1) Header Log (HL_DW2) Header Log (HL_DW3) Header Log (HL_DW4) Root Error Command (REC) Root Error Status (RES) Error Source Identification (ESID) TLP Prefix Log 1 (TLPPL1) TLP Prefix Log 2 (TLPPL2) TLP Prefix Log 3 (TLPPL3) TLP Prefix Log 4 (TLPPL4) PTM Extended Capability Header (PTMECH) PTM Capability (PTMCAPR) PTM Control (PTMCTLR) L1 Sub-States Extended Capability Header (L1SECH) L1 Sub-States Capabilities (L1SCAP) L1 Sub-States Control 1 (L1SCTL1) L1 Sub-States Control 2 (L1SCTL2) ACS Extended Capability Header (ACSECH) ACS Capability (ACSCAPR) ACS Control (ACSCTLR) Port VC Capability Register 1 (PVCCR1) Port VC Capability 2 (PVCC2) Port VC Control (PVCC) Port VC Status (PVCS) Virtual Channel 0 Resource Capability (V0VCRC) Virtual Channel 0 Resource Control (V0CTL) Virtual Channel 0 Resource Status (V0STS) Virtual Channel 1 Resource Capability (V1VCRC) Virtual Channel 1 Resource Control (V1CTL) Virtual Channel 1 Resource Status (V1STS) DPC Extended Capability Header (DPCECH) DPC Capability (DPCCAPR) DPC Control (DPCCTLR) DPC Status (DPCSR) DPC Error Source ID (DPCESIDR) RP PIO Status (RPPIOSR) RP PIO Mask (RPPIOMR) RP PIO Severity (RPPIOVR) RP PIO SysError (RPPIOSER) RP PIO Exception (RPPIOER) RP PIO Header Log DW1 (RPPIOHLR_DW1) RP PIO Header Log DW2 (RPPIOHLR_DW2) RP PIO Header Log DW3 (RPPIOHLR_DW3) RP PIO Header Log DW4 (RPPIOHLR_DW4) Secondary PCI Express Extended Capability Header (SPEECH) Link Control 3 (LCTL3) Lane Error Status (LES) Lane 0 And Lane 1 Equalization Control (L01EC) Lane 2 And Lane 3 Equalization Control (L23EC) Lane 4 And Lane 5 Equalization Control (L45EC) Lane 6 And Lane 7 Equalization Control (L67EC) Lane 8 And Lane 9 Equalization Control (L89EC) Lane 10 And Lane 11 Equalization Control (L1011EC) Lane 12 And Lane 13 Equalization Control (L1213EC) Lane 14 And Lane 15 Equalization Control (L1415EC) Data Link Feature Extended Capability Header (DLFECH) Data Link Feature Capabilities (DLFCAP) Data Link Feature Status (DLFSTS) Physical Layer 16.0 GT/s Extended Capability Header (PL16GECH) Physical Layer 16.0 GT/s Capability (PL16CAP) Physical Layer 16.0 GT/s Control (PL16CTL) Physical Layer 16.0 GT/s Status (PL16S) Physical Layer 16.0 GT/s Local Data Parity Mismatch Status (PL16LDPMS) Physical Layer 16.0 GT/s First Retimer Data Parity Mismatch Status (PL16FRDPMS) Physical Layer 16.0 GT/s Second Retimer Data Parity Mismatch Status (PL16SRDPMS) Physical Layer 16.0 GT/s Extra Status (PL16ES) Physical Layer 16.0 GT/s Lane 01 Equalization Control (PL16L01EC) Physical Layer 16.0 GT/s Lane 23 Equalization Control (PL16L23EC) Physical Layer 16.0 GT/s Lane 45 Equalization Control (PL16L45EC) Physical Layer 16.0 GT/s Lane 67 Equalization Control (PL16L67EC) Physical Layer 16.0 GT/s Lane 89 Equalization Control (PL16L89EC) Physical Layer 16.0 GT/s Lane 1011 Equalization Control (PL16L1011EC) Physical Layer 16.0 GT/s Lane 1213 Equalization Control (PL16L1213EC) Physical Layer 16.0 GT/s Lane 1415 Equalization Control (PL16L1415EC) Physical Layer 32.0 GT/s Extended Capability Header (G5ECH) Physical Layer 32.0 GT/s Capability (G5CAP) Physical Layer 32.0 GT/s Control (G5CTL) Physical Layer 32.0 GT/s Status (G5STS) Receiver Modified TS Data 1 (RCVDMODTSDATA1) Receiver Modified TS Data 2 (RCVDMODTSDATA2) Transmitted Modified TS Data 1 (TRNSMODTSDATA1) Transmitted Modified TS Data 2 (TRNSMODTSDATA2) 32.0 GT/s Lane 0123 Equalization Control (G5LANEEQCTL_0) 32.0 GT/s Lane 4567 Equalization Control (G5LANEEQCTL_4) 32.0 GT/s Lane 891011 Equalization Control (G5LANEEQCTL_8) 32.0 GT/s Lane 12131415 Equalization Control (G5LANEEQCTL_12) Alternate Protocol Extended Capability Header (APEC) Alternate Protocol Capabilities (APCAPR) Alternate Protocol Control (APCTRLR) Alternate Protocol Data 1 (APD1R) Alternate Protocol Data 2 (APD2R) Alternate Protocol Selective Enable Mask (APSEMR) Multicast Extended Capability Header (MCECH) Multicast Extended Capability (MCAPR) Multicast Control (MCCTLR) Multicast Base Address Register 1 (MCBADRR1) Multicast Base Address Register 2 (MCBADRR2) Multicast Receive (MCRR) Multicast Block All (MCBAR) Multicast Block Untranslated (MCBUR) Multicast Overlay BAR 1 (MCOB1) Multicast Overlay BAR 2 (MCOB2) VNN Removal Control (VNNREMCTL) VNN Removal Save And Restore Hardware Contexts 1 (VNNRSNRC1) Physical Layer 16.0 GT/s Margining Extended Capability Header (PL16MECH) Physical Layer 16.0 GT/s Margining Port Capabilities and Port Status Byte 0 & 1 (PL16MPCPSB01) Physical Layer 16.0 GT/s Margining Port Capabilities and Port Status Byte 2 & 3 (PL16MPCPSB23) Physical Layer 16.0 GT/s Lane0 Margin Control and Status (PL16L0MCS) Physical Layer 16.0 GT/s Lane1 Margin Control and Status (PL16L1MCS) Physical Layer 16.0 GT/s Lane2 Margin Control and Status (PL16L2MCS) Physical Layer 16.0 GT/s Lane3 Margin Control and Status (PL16L3MCS) Physical Layer 16.0 GT/s Lane4 Margin Control and Status (PL16L4MCS) Physical Layer 16.0 GT/s Lane5 Margin Control and Status (PL16L5MCS) Physical Layer 16.0 GT/s Lane6 Margin Control and Status (PL16L6MCS) Physical Layer 16.0 GT/s Lane7 Margin Control and Status (PL16L7MCS) Physical Layer 16.0 GT/s Lane8 Margin Control and Status (PL16L8MCS) Physical Layer 16.0 GT/s Lane9 Margin Control and Status (PL16L9MCS) Physical Layer 16.0 GT/s Lane10 Margin Control and Status (PL16L10MCS) Physical Layer 16.0 GT/s Lane11 Margin Control and Status (PL16L11MCS) Physical Layer 16.0 GT/s Lane12 Margin Control and Status (PL16L12MCS) Physical Layer 16.0 GT/s Lane13 Margin Control and Status (PL16L13MCS) Physical Layer 16.0 GT/s Lane14 Margin Control and Status (PL16L14MCS) Physical Layer 16.0 GT/s Lane15 Margin Control and Status (PL16L15MCS)
D13:F0 USB Host Controller MBAR Registers Capability Registers Length (CAPLENGTH) Host Controller Interface Version Number (HCIVERSION) Structural Parameters 1 (HCSPARAMS1) Structural Parameters 2 (HCSPARAMS2) Structural Parameters 3 (HCSPARAMS3) Capability Parameters (HCCPARAMS) Doorbell Offset (DBOFF) Runtime Register Space Offset (RTSOFF) USB Command (USBCMD) USB Status (USBSTS) Page Size (PAGESIZE) Device Notification Control (DNCTRL) Command Ring Low (CRCR_LO) Command Ring High (CRCR_HI) Device Context Base Address Array Pointer Low (DCBAAP_LO) Device Context Base Address Array Pointer High (DCBAAP_HI) Configure Reg (CONFIG) Port Status AndControl USB2 (PORTSC1) Port Power Management Status Aand Control USB2 (PORTPMSC1) Port X Hardware LPM Control Register (PORTHLPMC1) Port Status And Control USB3 (PORTSC2) Port Power Management Status And Control USB3 (PORTPMSC2) USB3 Port Link Info (PORTLI2) Port Status And Control USB3 (PORTSC3) Port Power Management Status And Control USB3 (PORTPMSC3) USB3 Port Link Info (PORTLI3) Port Status And Control USB3 (PORTSC4) Port Power Management Status And Control USB3 (PORTPMSC4) USB3 Port Link Info (PORTLI4) Port Status And Control USB3 (PORTSC5) Port Power Management Status And Control USB3 (PORTPMSC5) USB3 Port Link Info (PORTLI5) Microframe Index (RTMFINDEX) Interrupter Management (IMAN0) Interrupter Moderation (IMOD0) Event Ring Segment Table Size (ERSTSZ0) Event Ring Segment Table Base Address Low (ERSTBA_LO0) Event Ring Segment Table Base Address High (ERSTBA_HI0) Event Ring Dequeue Pointer Low (ERDP_LO0) Event Ring Dequeue Pointer High (ERDP_HI0) Interrupter Management (IMAN1) Interrupter Moderation (IMOD1) Event Ring Segment Table Size (ERSTSZ1) Event Ring Segment Table Base Address Low (ERSTBA_LO1) Event Ring Segment Table Base Address High (ERSTBA_HI1) Event Ring Dequeue Pointer Low (ERDP_LO1) Event Ring Dequeue Pointer High (ERDP_HI1) Interrupter Management (IMAN2) Interrupter Moderation (IMOD2) Event Ring Segment Table Size (ERSTSZ2) Event Ring Segment Table Base Address Low (ERSTBA_LO2) Event Ring Segment Table Base Address High (ERSTBA_HI2) Event Ring Dequeue Pointer Low (ERDP_LO2) Event Ring Dequeue Pointer High (ERDP_HI2) Interrupter Management (IMAN3) Interrupter Moderation (IMOD3) Event Ring Segment Table Size (ERSTSZ3) Event Ring Segment Table Base Address Low (ERSTBA_LO3) Event Ring Segment Table Base Address High (ERSTBA_HI3) Event Ring Dequeue Pointer Low (ERDP_LO3) Event Ring Dequeue Pointer High (ERDP_HI3) Interrupter Management (IMAN4) Interrupter Moderation (IMOD4) Event Ring Segment Table Size (ERSTSZ4) Event Ring Segment Table Base Address Low (ERSTBA_LO4) Event Ring Segment Table Base Address High (ERSTBA_HI4) Event Ring Dequeue Pointer Low (ERDP_LO4) Event Ring Dequeue Pointer High (ERDP_HI4) Interrupter Management (IMAN5) Interrupter Moderation (IMOD5) Event Ring Segment Table Size (ERSTSZ5) Event Ring Segment Table Base Address Low (ERSTBA_LO5) Event Ring Segment Table Base Address High (ERSTBA_HI5) Event Ring Dequeue Pointer Low (ERDP_LO5) Event Ring Dequeue Pointer High (ERDP_HI5) Interrupter Management (IMAN6) Interrupter Moderation (IMOD6) Event Ring Segment Table Size (ERSTSZ6) Event Ring Segment Table Base Address Low (ERSTBA_LO6) Event Ring Segment Table Base Address High (ERSTBA_HI6) Event Ring Dequeue Pointer Low (ERDP_LO6) Event Ring Dequeue Pointer High (ERDP_HI6) Interrupter Management (IMAN7) Interrupter Moderation (IMOD7) Event Ring Segment Table Size (ERSTSZ7) Event Ring Segment Table Base Address Low (ERSTBA_LO7) Event Ring Segment Table Base Address High (ERSTBA_HI7) Event Ring Dequeue Pointer Low (ERDP_LO7) Event Ring Dequeue Pointer High (ERDP_HI7) Door Bell (DB0) Door Bell (DB1) Door Bell (DB2) Door Bell (DB3) Door Bell (DB4) Door Bell (DB5) Door Bell (DB6) Door Bell (DB7) Door Bell (DB8) Door Bell (DB9) Door Bell (DB10) Door Bell (DB11) Door Bell (DB12) Door Bell (DB13) Door Bell (DB14) Door Bell (DB15) Door Bell (DB16) Door Bell (DB17) Door Bell (DB18) Door Bell (DB19) Door Bell (DB20) Door Bell (DB21) Door Bell (DB22) Door Bell (DB23) Door Bell (DB24) Door Bell (DB25) Door Bell (DB26) Door Bell (DB27) Door Bell (DB28) Door Bell (DB29) Door Bell (DB30) Door Bell (DB31) Door Bell (DB32) Door Bell (DB33) Door Bell (DB34) Door Bell (DB35) Door Bell (DB36) Door Bell (DB37) Door Bell (DB38) Door Bell (DB39) Door Bell (DB40) Door Bell (DB41) Door Bell (DB42) Door Bell (DB43) Door Bell (DB44) Door Bell (DB45) Door Bell (DB46) Door Bell (DB47) Door Bell (DB48) Door Bell (DB49) Door Bell (DB50) Door Bell (DB51) Door Bell (DB52) Door Bell (DB53) Door Bell (DB54) Door Bell (DB55) Door Bell (DB56) Door Bell (DB57) Door Bell (DB58) Door Bell (DB59) Door Bell (DB60) Door Bell (DB61) Door Bell (DB62) Door Bell (DB63) Door Bell (DB64) XECP USB2 Support (XECP_SUPP_USB2_1) XECP SUPP USB3_3 (XECP_SUPP_USB2_3) XECP SUPP USB2_4 Full Speed (XECP_SUPP_USB2_4) XECP_SUPP USB2_5 Low Speed (XECP_SUPP_USB2_5) XECP SUPP USB2_6 High Speed (XECP_SUPP_USB2_6) XECP SUPP USB3_0 (XECP_SUPP_USB3_0) XECP USB3.1 Support (XECP_SUPP_USB3_1) XECP USB 3 Support (XECP_SUPP_USB3_2) XECP SUPP USB3_3 (XECP_SUPP_USB3_3) XECP SUPP USB3_4 (XECP_SUPP_USB3_4) XECP SUPP USB3_5 (XECP_SUPP_USB3_5) XECP SUPP USB3_6 (XECP_SUPP_USB3_6) XECP SUPP USB3_7 (XECP_SUPP_USB3_7) Host Control Scheduler (HOST_CTRL_SCH_REG) Power Management Control (PMCTRL_REG) Host Controller Misc Reg (HOST_CTRL_MISC_REG) Host Controller Misc Reg2 (HOST_CTRL_MISC_REG2) Super Speed Port Enable (SSPE_REG) AUX Power Management Control (AUX_CTRL_REG1) SuperSpeed Port Link Control (HOST_CTRL_PORT_LINK_REG) USB2 Port Link Control 1 (USB2_LINK_MGR_CTRL_REG1) USB2 Port Link Control 2 (USB2_LINK_MGR_CTRL_REG2) USB2 Port Link Control 3 (USB2_LINK_MGR_CTRL_REG3) USB2 Port Link Control 4 (USB2_LINK_MGR_CTRL_REG4) Power Scheduler Control-0 (PWR_SCHED_CTRL0) Power Scheduler Control-1 (PWR_SCHED_CTRL2) AUX Power Management Control (AUX_CTRL_REG2) USB2 PHY Power Management Control (USB2_PHY_PMC) XHCI Aux Clock Control Register (XHCI_AUX_CCR) XHC Latency Tolerance Parameters LTV Control (XLTP_LTV1) XHC Latency Tolerance Parameters LTV Control 2 (XLTP_LTV2) XHC Latency Tolerance Parameters High Idle Time Control (XLTP_HITC) XHC Latency Tolerance Parameters Medium Idle Time Control (XLTP_MITC) XHC Latency Tolerance Parameters Low Idle Time Control (XLTP_LITC) LFPS On Count (LFPSONCOUNT_REG) USB2 Power Management Control (USB2PMCTRL_REG) USB Legacy Support Capability (USBLEGSUP) USB Legacy Support Control Status (USBLEGCTLSTS) Port Disable Override Capability Register (PDO_CAPABILITY) Command Reg (CMD_MMIO) Device Status (STS_MMIO) Revision ID (RID_MMIO) Programming Interface (PI_MMIO) Sub Class Code (SCC_MMIO) Base Class Code (BCC_MMIO) Cache Line Size (CLS_MMIO) Master Latency Timer (MLT_MMIO) Header Type (HT_MMIO) Memory Base Address (MBAR_MMIO) USB Subsystem Vendor ID (SSVID_MMIO) USB Subsystem ID (SSID_MMIO) Capabilities Pointer (CAP_PTR_MMIO) Interrupt Line (ILINE_MMIO) Interrupt Pin (IPIN_MMIO) Serial Bus Release Number (SBRN_MMIO) Frame Length Adjustment (FLADJ_MMIO) Best Effort Service Latency (BESL_MMIO) PCI Power Management Capability ID (PM_CID_MMIO) Next Item Pointer 1 (PM_NEXT_MMIO) Power Management Capabilities (PM_CAP_MMIO) Power Management Control/Status (PM_CS_MMIO) Message Signaled Interrupt CID (MSI_CID_MMIO) Next Item Pointer (MSI_NEXT_MMIO) Message Signaled Interrupt Message Control (MSI_MCTL_MMIO) Message Signaled Interrupt Message Address (MSI_MAD_MMIO) Message Signaled Interrupt Upper Address (MSI_MUAD_MMIO) Message Signaled Interrupt Message Data (MSI_MD_MMIO) High Speed Configuration 2 (HSCFG2_MMIO) Debug Capability ID Register (DCID) Debug Capability Doorbell Register (DCDB) Debug Capability Event Ring Segment Table Size Register (DCERSTSZ) Debug Capability Event Ring Segment Table Base Address Register (DCERSTBA) Debug Capability Event Ring Dequeue Pointer Register (DCERDP) Debug Capability Control Register (DCCTRL) Debug Capability Status Register (DCST) Debug Capability Port Status And Control Register (DCPORTSC) Debug Capability Context Pointer Register (DCCP) Strap Mirror Capability Register (FUSE_AND_STRAP_MIRROR_CAP_REG) GLOBAL TIME SYNC CAP REG (GLOBAL_TIME_SYNC_CAP_REG) GLOBAL TIME SYNC CTRL REG (GLOBAL_TIME_SYNC_CTRL_REG) MICROFRAME TIME REG (MICROFRAME_TIME_REG) Global Time Value (Low Register) (GLOBAL_TIME_LOW_REG) Global Time High (GLOBAL_TIME_HI_REG) Dublin Host Controller USB3 Local Loopback Repeater (HOST_CTRL_USB3_LOCAL_LPBK_RPTR) Host Ctrl USB3 Master Loopback Register (HOST_CTRL_USB3_MSTR_LPBK) Host Controller USB3 BLR Comp (HOST_CTRL_USB3_BLR_COMP) Host Controller SSP Disable (HOST_CTRL_SSP_DIS) XHCI USB2 Overcurrent Pin Mapping (U2OCM1) XHCI USB2 Overcurrent Pin Mapping (U2OCM2) XHCI USB2 Overcurrent Pin Mapping (U2OCM3) XHCI USB2 Overcurrent Pin Mapping (U2OCM4) XHCI USB3 Overcurrent Pin Mapping (U3OCM1) XHCI USB3 Overcurrent Pin Mapping (U3OCM2) XHCI USB3 Overcurrent Pin Mapping (U3OCM3) XHCI USB3 Overcurrent Pin Mapping (U3OCM4)
D13:F2-3 Thunderbolt DMA Device Registers Device ID and Vendor ID (TBT_DMA_CFG_FIRST16DWORD_DW0_INST) Command and Status (TBT_DMA_CFG_FIRST16DWORD_DW1_INST) Revision ID and Class Code (TBT_DMA_CFG_FIRST16DWORD_DW2_INST) Cache Line Size, Master Latency Timer, Header Type and BIST (TBT_DMA_CFG_FIRST16DWORD_DW3_INST) Base Address Register 0 (TBT_DMA_CFG_FIRST16DWORD_DW4_INST) Base Address Register 1 (TBT_DMA_CFG_FIRST16DWORD_DW5_INST) Base Address Register 1 Low (TBT_DMA_CFG_FIRST16DWORD_DW6_INST) Base Address Register 1 High (TBT_DMA_CFG_FIRST16DWORD_DW7_INST) Cardbus CIS Pointer (TBT_DMA_CFG_FIRST16DWORD_DW10_INST) Subsystem Vendor And Subsystem ID (TBT_DMA_CFG_FIRST16DWORD_DW11_INST) Expansion ROM Base Address (TBT_DMA_CFG_FIRST16DWORD_DW12_INST) Capabilities Pointer (TBT_DMA_CFG_FIRST16DWORD_DW13_INST) Interrupt Configuration (TBT_DMA_CFG_FIRST16DWORD_DW15_INST) Power Management Capability Configuration (TBT_DMA_CFG_PM_CAP_0) PM Capability 1 Control and Status (TBT_DMA_CFG_PM_CAP_1) MSI Capability 0: MSI Capability Config (TBT_DMA_CFG_MSIREG_DW0_INST) MSI Capability 1: Message Address Low (TBT_DMA_CFG_MSIREG_DW1_INST) MSI Capability 2: Message Address High (TBT_DMA_CFG_MSIREG_DW2_INST) MSI Capability 3: Message Data (TBT_DMA_CFG_MSIREG_DW3_INST) MSI Capability 4: Interrupt Mask (TBT_DMA_CFG_MSIREG_DW4_INST) MSI Capability 5: Interrupt Pending (TBT_DMA_CFG_MSIREG_DW5_INST) MSIX Capability 0: MSIX Capability Config (TBT_DMA_CFG_MSIXREG_DW0_INST) MSIX Capability 1: Table Offset and Table BIR (TBT_DMA_CFG_MSIXREG_DW1_INST) MSIX Capability 2: PBA Offset and PBA BIR (TBT_DMA_CFG_MSIXREG_DW2_INST) VS CAP 10 (TBT_DMA_CFG_VS_CAP_10) VS CAP 11 (TBT_DMA_CFG_VS_CAP_11) VS CAP 12 Thunderbolt Access Through PCIE Command Register (TBT_DMA_CFG_VS_CAP_12) VS CAP 13 Thunderbolt Access Through PCIE Write Data Register (TBT_DMA_CFG_VS_CAP_13) VS CAP 14 Thunderbolt Access Through PCIERead Data Register (TBT_DMA_CFG_VS_CAP_14) VS CAP 17 (TBT_DMA_CFG_VS_CAP_17) VS CAP 18 (TBT_DMA_CFG_VS_CAP_18) VS CAP 19 (TBT_DMA_CFG_VS_CAP_19) VS CAP 20: BIOS Data LOW (TBT_DMA_CFG_VS_CAP_20) VS CAP 21: BIOS Data HIGH (TBT_DMA_CFG_VS_CAP_21) VS CAP 22: YFL Vendor Configuration Bits (TBT_DMA_CFG_VS_CAP_22)
D2:F0 Processor Graphics Vendor ID (VID2_0_2_0_PCI) Device ID (DID2_0_2_0_PCI) PCI Command (PCICMD_0_2_0_PCI) PCI Status (PCISTS2_0_2_0_PCI) Revision ID and Class Code (RID2_CC_0_2_0_PCI) Cache Line Size (CLS_0_2_0_PCI) Master Latency Timer (MLT2_0_2_0_PCI) Header Type (HDR2_0_2_0_PCI) Built In Self Test (BIST_0_2_0_PCI) Graphics Translation Table Memory Mapped Range Address (GTTMMADR0_0_2_0_PCI) Graphics Translation Table Memory Mapped Range Address (GTTMMADR1_0_2_0_PCI) Graphics Memory Range Address (GMADR0_0_2_0_PCI) Graphics Memory Range Address (GMADR1_0_2_0_PCI) I/O Base Address (IOBAR_0_2_0_PCI) Subsystem Vendor ID (SVID2_0_2_0_PCI) Subsystem ID (SID2_0_2_0_PCI) Video BIOS ROM Base Address (ROMADR_0_2_0_PCI) Capabilities Pointer (CAPPOINT_0_2_0_PCI) Interrupt Line (INTRLINE_0_2_0_PCI) Interrupt Pin (INTRPIN_0_2_0_PCI) Minimum Grant (MINGNT_0_2_0_PCI) Maximum Latency (MAXLAT_0_2_0_PCI) Capability Identifier (CAPID0_0_2_0_PCI) Capabilities Control (CAPCTRL0_0_2_0_PCI) Capabilities A (CAPID0_A_0_2_0_PCI) Capabilities B (CAPID0_B_0_2_0_PCI) PCI Mirror of GMCH Graphics Control (MGGC0_0_2_0_PCI) Mirror of Device Enable (DEVEN0_0_2_0_PCI) Device 2 Control (DEV2CTL_0_2_0_PCI) Multi Size Aperture Control (MSAC_0_2_0_PCI) Push Aperture (PUSHAP_0_2_0_PCI) VTd Status (VTD_STATUS_0_2_0_PCI) PCI Express Capability Header (PCIECAPHDR_0_2_0_PCI) PCI Express Capability (PCIECAP_0_2_0_PCI) Device Capabilities (DEVICECAP_0_2_0_PCI) PCI Express Device Control (DEVICECTL_0_2_0_PCI) PCI Express Capability Structure (DEVICESTS_0_2_0_PCI) Message Signaled Interrupts Capability ID (MSI_CAPID_0_2_0_PCI) Message Control (MC_0_2_0_PCI) Message Address (MA_0_2_0_PCI) Message Data (MD_0_2_0_PCI) MSI Mask Bits (MSI_MASK_0_2_0_PCI) MSI Pending Bits (MSI_PEND_0_2_0_PCI) Mirror of Base Data of Stolen Memory (BDSM0_0_2_0_PCI) Mirror of Base Data of Stolen Memory (BDSM1_0_2_0_PCI) Graphics VTD Base Address LSB (GFXVTDBAR_LSB_0_2_0_PCI) GFX_VTDBAR_MSB (GFXVTDBAR_MSB_0_2_0_PCI) Power Management Capabilities ID (PMCAPID_0_2_0_PCI) Power Management Capabilities (PMCAP_0_2_0_PCI) Power Management Control and Status (PMCS_0_2_0_PCI) Software SMI (SWSMI_0_2_0_PCI) Graphics System Event (GSE_0_2_0_PCI) Software SCI (SWSCI_0_2_0_PCI) Device 2 Mirror of Protected Audio Video Path Control (PAVPC0_0_2_0_PCI) Device 2 Mirror of Protected Audio Video Path Control (PAVPC1_0_2_0_PCI) Stepping Revision ID (SRID_0_2_0_PCI) ASL Storage (ASLS_0_2_0_PCI) PASID Extended Capability Header (PASID_EXTCAP_0_2_0_PCI) PASID Capability (PASID_CAP_0_2_0_PCI) PASID Control (PASID_CTRL_0_2_0_PCI) ATS Extended Capability Header (ATS_EXTCAP_0_2_0_PCI) ATS Capability (ATS_CAP_0_2_0_PCI) ATS Control (ATS_CTRL_0_2_0_PCI) Page Request Extended Capability Header (PR_EXTCAP_0_2_0_PCI) Page Request Control (PR_CTRL_0_2_0_PCI) Page Request Status (PR_STATUS_0_2_0_PCI) Outstanding Page Request Capacity (OPRC_0_2_0_PCI) Outstanding Page Request Allocation (OPRA_0_2_0_PCI) SRIOV Extended Capability Header (SRIOV_ECAPHDR_0_2_0_PCI) SRIOV Capabilities (SRIOV_CAP_0_2_0_PCI) SRIOV Status (SRIOV_STS_0_2_0_PCI) SRIOV Initial VFs (SRIOV_INITVFS_0_2_0_PCI) SRIOV Total VFs (SRIOV_TOTVFS_0_2_0_PCI) First VF Offset (FIRST_VF_OFFSET_0_2_0_PCI) VF Stride (VF_STRIDE_0_2_0_PCI) VF Device ID (VF_DEVICEID_0_2_0_PCI) Supported Page Sizes (SUPPORTED_PAGE_SIZES_0_2_0_PCI) System Page Sizes (SYSTEM_PAGE_SIZES_0_2_0_PCI) VF BAR0 Lower DWORD (VF_BAR0_LDW_0_2_0_PCI) VF BAR0 Upper DWORD (VF_BAR0_UDW_0_2_0_PCI) VF BAR1 Lower DWORD (VF_BAR1_LDW_0_2_0_PCI) VF BAR1 Upper DWORD (VF_BAR1_UDW_0_2_0_PCI) VF Migration State Array Offset (VF_MIGST_OFFSET_0_2_0_PCI)
D6:F0 PCI Express* Controller Registers (part 1) Device ID and Vendor ID (ID) Device Command (CMD) Primary Status (PSTS) Revision ID and Class Code (RID_CC) Cache Line Size (CLS) Primary Latency Timer (PLT) Header Type (HTYPE) Bus Numbers (BNUM_SLT) I/O Base And Limit (IOBL) Secondary Status (SSTS) Memory Base And Limit (MBL) Prefetchable Memory Base And Limit (PMBL) Prefetchable Memory Base Upper 32 Bits (PMBU32) Prefetchable Memory Limit Upper 32 Bits (PMLU32) Capabilities List Pointer (CAPP) Interrupt Information (INTR) Bridge Control (BCTRL) Capabilities List (CLIST) PCI Express Capabilities (XCAP) Capabilities Pointer (DCAP) Device Control (DCTL) Device Status (DSTS) Link Capabilities (LCAP) Link Control (LCTL) Link Status (LSTS) Slot Capabilities (SLCAP) Slot Control (SLCTL) Slot Status (SLSTS) Root Control (RCTL) Root Status (RSTS) Device Capabilities 2 (DCAP2) Device Control 2 (DCTL2) Device Status 2 (DSTS2) Link Capabilities 2 (LCAP2) Link Control 2 (LCTL2) Link Status 2 (LSTS2) Slot Capabilities 2 (SLCAP2) Slot Control 2 (SLCTL2) Slot Status 2 (SLSTS2) Message Signaled Interrupt Identifiers (MID) Message Signaled Interrupt Message (MC) Message Signaled Interrupt Message Address (MA) Message Signaled Interrupt Message Data (MD) Subsystem Vendor Capability (SVCAP) Subsystem Vendor IDs (SVID) Power Management Capability (PMCAP) PCI Power Management Capabilities (PMC) PCI Power Management Control (PMCS) Channel Configuration (CCFG) Advanced Error Extended (AECH) Uncorrectable Error Status (UES) Uncorrectable Error Mask (UEM) Uncorrectable Error Severity (UEV) Correctable Error Status (CES) Correctable Error Mask (CEM) Advanced Error Capabilities And Control (AECC) Header Log (HL_DW1) Header Log (HL_DW2) Header Log (HL_DW3) Header Log (HL_DW4) Root Error Command (REC) Root Error Status (RES) Error Source Identification (ESID) PTM Extended Capability Header (PTMECH) PTM Capability Register (PTMCAPR) PTM Control Register (PTMCTLR) L1 Sub-States Extended Capability Header (L1SECH) L1 Sub-States Capabilities (L1SCAP) L1 Sub-States Control 1 (L1SCTL1) L1 Sub-States Control 2 (L1SCTL2) ACS Extended Capability Header (ACSECH) ACS Capability Register (ACSCAPR) ACS Control Register (ACSCTLR) Port VC Capability Register 1 (PVCCR1) Port VC Capability 2 (PVCC2) Port VC Control (PVCC) Port VC Status (PVCS) Virtual Channel 0 Resource Capability (V0VCRC) Virtual Channel 0 Resource Control (V0CTL) Virtual Channel 0 Resource Status (V0STS) Virtual Channel 1 Resource Capability (V1VCRC) Virtual Channel 1 Resource Control (V1CTL) Virtual Channel 1 Resource Status (V1STS) DPC Extended Capability Header (DPCECH) DPC Capability Register (DPCCAPR) DPC Control Register (DPCCTLR) DPC Status Register (DPCSR) DPC Error Source ID Register (DPCESIDR) RP PIO Status Register (RPPIOSR) RP PIO Mask Register (RPPIOMR) RP PIO Severity Register (RPPIOVR) RP PIO SysError Register (RPPIOSER) RP PIO Exception Register (RPPIOER) RP PIO Header Log DW1 Register (RPPIOHLR_DW1) RP PIO Header Log DW2 Register (RPPIOHLR_DW2) RP PIO Header Log DW3 Register (RPPIOHLR_DW3) RP PIO Header Log DW4 Register (RPPIOHLR_DW4) Secondary PCI Express Extended Capability Header (SPEECH) Link Control 3 (LCTL3) Lane Error Status (LES) Lane 0 And Lane 1 Equalization Control (L01EC) Lane 2 And Lane 3 Equalization Control (L23EC) Lane 4 And Lane 5 Equalization Control (L45EC) Lane 6 And Lane 7 Equalization Control (L67EC) Lane 8 And Lane 9 Equalization Control (L89EC) Lane 10 And Lane 11 Equalization Control (L1011EC) Lane 12 And Lane 13 Equalization Control (L1213EC) Lane 14 And Lane 15 Equalization Control (L1415EC) Data Link Feature Extended Capability Header (DLFECH) Data Link Feature Capabilities Register (DLFCAP) Data Link Feature Status Register (DLFSTS) Physical Layer 16.0 GT/s Extended Capability Header (PL16GECH) Physical Layer 16.0 GT/s Capability Register (PL16CAP) Physical Layer 16.0 GT/s Control Register (PL16CTL) Physical Layer 16.0 GT/s Status Register (PL16S) Physical Layer 16.0 GT/s Local Data Parity Mismatch Status Register (PL16LDPMS) Physical Layer 16.0 GT/s First Retimer Data Parity Mismatch Status Register (PL16FRDPMS) Physical Layer 16.0 GT/s Second Retimer Data Parity Mismatch Status Register (PL16SRDPMS) Physical Layer 16.0 GT/s Extra Status Register (PL16ES) Physical Layer 16.0 GT/s Lane 01 Equalization Control Register (PL16L01EC) Physical Layer 16.0 GT/s Lane 23 Equalization Control Register (PL16L23EC) Physical Layer 16.0 GT/s Lane 45 Equalization Control Register (PL16L45EC) Physical Layer 16.0 GT/s Lane 67 Equalization Control Register (PL16L67EC) Physical Layer 16.0 GT/s Lane 89 Equalization Control Register (PL16L89EC) Physical Layer 16.0 GT/s Lane 1011 Equalization Control Register (PL16L1011EC) Physical Layer 16.0 GT/s Lane 1213 Equalization Control Register (PL16L1213EC) Physical Layer 16.0 GT/s Lane 1415 Equalization Control Register (PL16L1415EC) VNN Removal Control (VNNREMCTL) VNN Removal Save And Restore Hardware Contexts 1 (VNNRSNRC1) Physical Layer 16.0 GT/s Margining Extended Capability Header (PL16MECH) Physical Layer 16.0 GT/s Margining Port Capabilities and Port Status (PL16MPCPS) Physical Layer 16.0 GT/s Lane0 Margin Control and Status Register (PL16L0MCS) Physical Layer 16.0 GT/s Lane1 Margin Control and Status Register (PL16L1MCS) Physical Layer 16.0 GT/s Lane2 Margin Control and Status Register (PL16L2MCS) Physical Layer 16.0 GT/s Lane3 Margin Control and Status Register (PL16L3MCS) Physical Layer 16.0 GT/s Lane4 Margin Control and Status Register (PL16L4MCS) Physical Layer 16.0 GT/s Lane5 Margin Control and Status Register (PL16L5MCS) Physical Layer 16.0 GT/s Lane6 Margin Control and Status Register (PL16L6MCS) Physical Layer 16.0 GT/s Lane7 Margin Control and Status Register (PL16L7MCS) Physical Layer 16.0 GT/s Lane8 Margin Control and Status Register (PL16L8MCS) Physical Layer 16.0 GT/s Lane9 Margin Control and Status Register (PL16L9MCS) Physical Layer 16.0 GT/s Lane10 Margin Control and Status Register (PL16L10MCS) Physical Layer 16.0 GT/s Lane11 Margin Control and Status Register (PL16L11MCS) Physical Layer 16.0 GT/s Lane12 Margin Control and Status Register (PL16L12MCS) Physical Layer 16.0 GT/s Lane13 Margin Control and Status Register (PL16L13MCS) Physical Layer 16.0 GT/s Lane14 Margin Control and Status Register (PL16L14MCS) Physical Layer 16.0 GT/s Lane15 Margin Control and Status Register (PL16L15MCS)
D7:F0-3 Thunderbolt PCI Express* Controller Registers Device ID and Vendor ID (ID) Device Command (CMD) Primary Status (PSTS) Revision ID and Class Code (RID_CC) Cache Line Size (CLS) Primary Latency Timer (PLT) Header Type (HTYPE) Bus Numbers (BNUM_SLT) I/O Base And Limit (IOBL) Secondary Status (SSTS) Memory Base And Limit (MBL) Prefetchable Memory Base And Limit (PMBL) Prefetchable Memory Base Upper 32 Bits (PMBU32) Prefetchable Memory Limit Upper 32 Bits (PMLU32) Capabilities Pointer (CAPP) Interrupt Information (INTR) Bridge Control (BCTRL) Capabilities List (CLIST) PCI Express Capabilities (XCAP) Device Capabilities (DCAP) Device Control (DCTL) Device Status (DSTS) Link Capabilities (LCAP) Link Control (LCTL) Link Status (LSTS) Slot Capabilities (SLCAP) Slot Control (SLCTL) Slot Status (SLSTS) Root Control (RCTL) Root Status (RSTS) Device Capabilities 2 (DCAP2) Device Control 2 (DCTL2) Device Status 2 (DSTS2) Link Capabilities 2 (LCAP2) Link Control 2 (LCTL2) Link Status 2 (LSTS2) Slot Capabilities 2 (SLCAP2) Slot Control 2 (SLCTL2) Slot Status 2 (SLSTS2) Message Signaled Interrupt Identifiers (MID) Message Signaled Interrupt Message (MC) Message Signaled Interrupt Message Address (MA) Message Signaled Interrupt Message Data (MD) Subsystem Vendor Capability (SVCAP) Subsystem Vendor IDs (SVID) Power Management Capability (PMCAP) PCI Power Management Capabilities (PMC) PCI Power Management Control (PMCS) Advanced Error Extended (AECH) Uncorrectable Error Status (UES) Uncorrectable Error Mask (UEM) Uncorrectable Error Severity (UEV) Correctable Error Status (CES) Correctable Error Mask (CEM) Advanced Error Capabilities And Control (AECC) Header Log (HL_DW1) Header Log (HL_DW2) Header Log (HL_DW3) Header Log (HL_DW4) Root Error Command (REC) Root Error Status (RES) Error Source Identification (ESID) PTM Extended Capability Header (PTMECH) PTM Capability Register (PTMCAPR) PTM Control Register (PTMCTLR) L1 Sub-States Extended Capability Header (L1SECH) L1 Sub-States Capabilities (L1SCAP) L1 Sub-States Control 1 (L1SCTL1) L1 Sub-States Control 2 (L1SCTL2) ACS Extended Capability Header (ACSECH) ACS Capability Register (ACSCAPR) ACS Control Register (ACSCTLR) Port VC Capability Register 1 (PVCCR1) Port VC Capability 2 (PVCC2) Port VC Control (PVCC) Port VC Status (PVCS) Virtual Channel 0 Resource Capability (V0VCRC) Virtual Channel 0 Resource Control (V0CTL) Virtual Channel 0 Resource Status (V0STS) Virtual Channel 1 Resource Capability (V1VCRC) Virtual Channel 1 Resource Control (V1CTL) Virtual Channel 1 Resource Status (V1STS) DPC Extended Capability Header (DPCECH) DPC Capability Register (DPCCAPR) DPC Control Register (DPCCTLR) DPC Status Register (DPCSR) DPC Error Source ID Register (DPCESIDR) RP PIO Status Register (RPPIOSR) RP PIO Mask Register (RPPIOMR) RP PIO Severity Register (RPPIOVR) RP PIO SysError Register (RPPIOSER) RP PIO Exception Register (RPPIOER) RP PIO Header Log DW1 Register (RPPIOHLR_DW1) RP PIO Header Log DW2 Register (RPPIOHLR_DW2) RP PIO Header Log DW3 Register (RPPIOHLR_DW3) RP PIO Header Log DW4 Register (RPPIOHLR_DW4) Secondary PCI Express Extended Capability Header (SPEECH) Link Control 3 (LCTL3) Lane Error Status (LES) Lane 0 And Lane 1 Equalization Control (L01EC) Lane 2 And Lane 3 Equalization Control (L23EC) Lane 4 And Lane 5 Equalization Control (L45EC) Lane 6 And Lane 7 Equalization Control (L67EC) Lane 8 And Lane 9 Equalization Control (L89EC) Lane 10 And Lane 11 Equalization Control (L1011EC) Lane 12 And Lane 13 Equalization Control (L1213EC) Lane 14 And Lane 15 Equalization Control (L1415EC) Data Link Feature Extended Capability Header (DLFECH) Data Link Feature Capabilities Register (DLFCAP) Data Link Feature Status Register (DLFSTS) FPB Capability Header (FPBCAP) FPB Capabilities Register (FPBCAPR) FPB RID Vector Control 1 (FPBRIDVC1) FPB RID Vector Control 2 (FPBRIDVC2) FPB MEM Low Vector Control (FPBMEMLVC) FPB MEM High Vector Control 1 (FPBMEMHVC1) FPB MEM High Vector Control 2 (FPBMEMHVC2) FPB Vector Access Control (FPBVAC) FPB Vector Access Data (FPBVD)

Processor Configuration Register Definitions and Address Ranges

This chapter describes the processor configuration register, I/O, memory address ranges and Model Specific Registers (MSRs). The chapter provides register terminology. PCI Devices and Functions are described.

Register Terminology

Table below lists the register-related terminology and access attributes that are used in this document. Register Attribute Modifiers table provides the attribute modifiers.

Register Attributes and Terminology

Item Description
RO Read Only: These bits can only be read by software, writes have no effect. The value of the bits is determined by the hardware only.
RW Read / Write: These bits can be read and written by software.
RW1C Read / Write 1 to Clear: These bits can be read and cleared by software. Writing a '1' to a bit will clear it, while writing a '0' to a bit has no effect. Hardware sets these bits.
RW0C Read / Write 0 to Clear: These bits can be read and cleared by software. Writing a '0' to a bit will clear it, while writing a '1' to a bit has no effect. Hardware sets these bits.
RW1S Read / Write 1 to Set: These bits can be read and set by software. Writing a '1' to a bit will set it, while writing a '0' to a bit has no effect. Hardware clears these bits.
RsvdP Reserved and Preserved: These bits are reserved for future RW implementations and their value should not be modified by software. When writing to these bits, software should preserve the value read. When SW updates a register that has RsvdP fields, it should read the register value first so that the appropriate merge between the RsvdP and updated fields will occur.
RsvdZ Reserved and Zero: These bits are reserved for future RW1C implementations. Software should use 0 for writes.
WO Write Only: These bits can only be written by software, reads return zero.
RC Read Clear: These bits can only be read by software, but a read causes the bits to be cleared. Hardware sets these bits.
RSW1C Read Set / Write 1 to Clear: These bits can be read and cleared by software. Reading a bit will set the bit to '1'. Writing a '1' to a bit will clear it, while writing a '0' to a bit has no effect.
RCW Read Clear / Write: These bits can be read and written by software, but a read causes the bits to be cleared.

Register Attribute Modifiers

Attribute Modifier Applicable Attribute Description
S RO (w/ -V) Sticky: These bits are only re-initialized to their default value by a “Power Good Reset” (Cold Reset).
RW
RW1C
RW1S
-K RW Key: These bits control the ability to write other bits (identified with a 'Lock' modifier)
-L RW Lock: Hardware can make these bits “Read Only” using a separate configuration bit or other logic.
WO
-O RW Once: After reset, these bits can only be written by software once, after which they become “Read Only”.
WO
-FW RO Firmware Write: The value of these bits can be updated by processor hardware mechanisms that may be firmware dependent.
-V RO Variant: The value of these bits can be updated by hardware.

PCI Devices and Functions

The processor contains multiple PCI devices. The configuration registers for these devices are mapped as devices residing on PCI Bus 0.

·Device 0: Host Bridge / DRAM Controller / LLC Controller 0 – Logically this device appears as a PCI device residing on PCI bus 0. Device 0 contains the standard PCI header registers, PCI Express base address register, DRAM control (including thermal/throttling control), configuration for the DMI, and other processor specific registers.

·Device 2: Processor Graphics – Logically, this device appears as a PCI device residing on PCI Bus 0. Device 2 contains the configuration registers for 3D, 2D, and display functions. I

·Device 4: Dynamic Tuning Technology (DTT) - Logically, this device appears as a PCI device residing on PCI Bus 0. Device 4 contains the configuration registers for the DPPM device.

·Device 5: Image Processing Unit (IPU) – Logically, this device appears as a PCI device residing on PCI Bus 0. Device 5 contains the configuration registers for the Image Processing Unit Device.

·Device 10: Crash Log & Telemetry Device – Logically, this device appears as a PCI device residing on PCI Bus 0. Device 10 contains the configuration registers for the Crash Log Device.

·Device 11: Visual Processing Unit – Logically, this device appears as a PCI device residing on PCI Bus 0. Device 11 contains the configuration registers for the Visual Processing Unit

·Device 14: Intel® Volume Management Device. Logically, this device appears as a PCI device residing on PCI Bus 0. Device 14 contains the configuration registers for the Volume Management Device.

Processor PCI Devices and Functions

Description Device Function
HOST and DRAM Controller 0 0
Processor Graphics 2 0
Dynamic Tuning Technology 4 0
Image Processing Unit 5 0
Crash Log & Telemetry 10 0
Visual Processing Unit 11 0
Volume Management Device 14 0

From a configuration standpoint, the DMI is logically PCI bus 0. As a result, all devices internal to the processor and the PCH appear to be on PCI Bus 0.

System Address Map

The processor supports up to 4TB (42-bits) of address memory space

This section focuses on how the memory space is partitioned and how the separate memory regions are used. I/O address space has simpler mapping and is explained towards the end of this chapter.

The processor supports PCIe port upper prefetchable base/limit registers. This allows the PCIe bridges to claim Memory Mapped I/O (MMIO) accesses above 32 bit. Addressing of greater than 4 GB is allowed on both the DMI Interface or PCIe interfaces. DRAM capacity is limited by the number of address pins available. There is no hardware lock to prevent more memory from being inserted than is addressable.

In the following sections, it is assumed that all of the compatibility memory ranges reside on the DMI Interface. The exception to this rule is VGA ranges, which may be mapped to PCI Express*, DMI, or to the Processor Graphics device (Processor Graphics). The processor does not remap APIC or any other memory spaces above TOLUD (Top of Low Usable DRAM). The TOLUD register is set to the appropriate value by BIOS. The remapbase/remaplimit registers remap logical accesses bound for addresses above 4GB onto physical addresses that fall within DRAM.

The Address Map includes a number of programmable ranges that are not configured using standard PCI BAR configuration:

·Device 0:

MCHBAR – Host Memory Mapped Configuration (memory subsystem and power management registers). (128 KB window)

VTDPVC0BAR - Memory mapped range for VT-d configuration

REGBAR - Memory mapped range for System Agent registers (16MB window).

GGC.GMS – Graphics Mode Select. Main memory that is pre-allocated to support the Processor Graphics device in VGA (non-linear) and Native (linear) modes – also known as Gfx Data Stolen Memory (GDSM). (0 – 512 MB options). 64MB is the recommended size.

GTT Graphics Memory Size. Main memory that is pre-allocated to support the Processor Graphics Translation Table. (8MB).

·For all other PCI devices within the processor that expose PCI configuration space, the behavior is according to PCI specification.

The rules for the above programmable ranges are:

·For security reasons, the processor positively decodes (FFE0_​0000h to FFFF_​FFFFh) to DMI. This ensures the boot vector and BIOS execute off the PCH.

·ALL of these ranges should be unique and NON-OVERLAPPING. It is the BIOS or system designer's responsibility to limit memory population so that adequate PCI, PCI Express, High BIOS, PCI Express Memory Mapped space, and APIC memory space can be allocated.

·In the case of overlapping ranges with memory, the memory decode will be given priority. This is an Intel® Trusted Execution Technology (Intel® TXT) requirement. It is necessary to get Intel® TXT protection checks, avoiding potential attacks.

·There are NO Hardware Interlocks to prevent problems in the case of overlapping memory ranges.

·Accesses to overlapped ranges may produce indeterminate results.

·Peer-to-peer write cycles are allowed below the Top of Low Usable memory (register TOLUD) for DMI Interface to PCI Express VGA range writes. Peer-to-peer cycles to the Processor Graphics VGA range are not supported.

System Address Range Example

DOS Legacy Address Range

The memory address range from 0 to 1 MB is known as Legacy Address. This area is divided into the following address regions:

  • 0 – 640 KB - DOS Area
  • 640 – 768 KB - Legacy Video Buffer Area
  • 768 – 896 KB in 16 KB sections (total of 8 sections) – Expansion Area
  • 896 – 960 KB in 16 KB sections (total of 4 sections) – Extended System BIOS Area
  • 960 KB – 1 MB Memory, System BIOS Area

The area between 768 KB – 1 MB is also collectively referred to as PAM (Programmable Address Memory). All accesses to the DOS and PAM ranges from any device are sent to DRAM. However, access to the legacy video buffer area is treated differently.

DOS Legacy Address Range

DOS Range (0h – 9_​FFFFh)

The DOS area is 640 KB (0000_​0000h – 0009_​FFFFh) in size and is always mapped to the main memory.

Legacy Video Area (A_​0000h – B_​FFFFh)

The same address region is used for both Legacy Video Area.

  • Legacy Video Area: The legacy 128 KB VGA memory range, frame buffer, at 000A_​0000h – 000B_​FFFFh, can be mapped to Processor Graphics (Device 2), to PCI Express (Device 1, 6), and/or to the DMI Interface.
  • Monochrome Adapter (MDA) Range: Legacy support for monochrome display adapter
Note:The legacy video area is not available for SMM use.

Legacy Video Area

The legacy 128 KB VGA memory range, frame buffer at 000A_​0000h – 000B_​FFFFh, can be mapped to Processor Graphics (Device 2), to PCI Express (Device 1, 6), and/or to the DMI Interface.

Monochrome Adapter (MDA) Range

Legacy support requires the ability to have a second graphics controller (monochrome) in the system. The monochrome adapter may be mapped to Processor Graphics (Device 2), to PCI Express (Device 1, 6), and/or to the DMI Interface.

Programmable Attribute Map (PAM) (C_​0000h – F_​FFFFh)

PAM is a legacy BIOS ROM area in MMIO. It is overlaid with DRAM and used as a faster ROM storage area. It has a fixed base address (000C_​0000h) and fixed size of 256 KB. The 13 sections from 768 KB to 1 MB comprise what is also known as the PAM Memory Area. Each section has Read enable and Write enable attributes

NOTE: MTL no longer supports setting READ/Write differently, only both DRAM or both to “DMI” are supported.

PAM Region Space

The PAM registers are mapped in Device 0 configuration space.

  • ISA Expansion Area (C_​0000h – D_​FFFFh)
  • Extended System BIOS Area (E_​0000h – E_​FFFFh)
  • System BIOS Area (F_​0000h – F_​FFFFh)

The processor decodes the Core request, then routes to the appropriate destination (DRAM or DMI).

Snooped accesses from devices to this region are snooped on processor Caches.

Graphics translated requests to this region are not allowed. If such a mapping error occurs, the request will be routed to C_​0000h. Writes will have the byte enables de-asserted.

Lower Main Memory Address Range (1 MB – TOLUD)

This address range extends from 1 MB to the top of Low Usable physical memory that is permitted to be accessible by the processor (as programmed in the TOLUD register). The processor will route all addresses within this range to the DRAM unless it falls into the optional TSEG, optional ISA Hole or optional Processor Graphics stolen memory.

This address range is divided into two sub-ranges:

  • 1 MB to TSEGMB
  • TSEGMB to TOULUD

TSEGMB indicates the TSEG Memory Base address.

Main Memory Address Range

ISA Hole (15 MB –16 MB)

MTL does not support the ISA hole being created.

MB to TSEGMB

Processor access to this range will be directed to memory with the exception of the ISA Hole (when enabled).

TSEG

For processor initiated transactions, the processor relies on correct programming of SMM Range Registers (SMRR) to enforce TSEG protection.

TSEG is below Processor Graphics stolen memory, which is at the Top of Low Usable physical memory (TOLUD). BIOS will calculate and program the TSEG BASE in Device 0 (TSEGMB), used to protect this region from DMA access. Calculation is:

TSEGMB = TOLUD – DSM SIZE – GSM SIZE – TSEG SIZE

SMM-mode processor accesses to TSEG always access the physical DRAM.

When the extended SMRAM space is enabled, processor accesses without SMM attribute or without write-back attribute to the TSEG range are handled as invalid accesses.

Non-processor originated accesses such as PCI Express, DMI or processor graphics to enabled SMM space are handled as invalid cycle type with reads and writes to location C_​0000h and byte enables turned off for writes.

Protected Memory Range (PMR) - (Programmable)

For robust and secure launch of the MVMM, the MVMM code and private data need to be loaded to a memory region protected from bus master accesses. Support for protected memory region is required for DMA-remapping hardware implementations on platforms supporting Intel® TXT, and is optional for non-Intel® TXT platforms. Since the protected memory region needs to be enabled before the MVMM is launched, hardware should support enabling of the protected memory region independently from enabling the DMA-remapping hardware.

As part of the secure launch process, the SINIT-AC module verifies the protected memory regions are properly configured and enabled. Once launched, the MVMM can setup the initial DMA-remapping structures in protected memory (to ensure they are protected while being setup) before enabling the DMA-remapping hardware units.

To optimally support platform configurations supporting varying amounts of main memory, the protected memory region is defined as two non-overlapping regions:

  • Protected Low-memory Region: This is defined as the protected memory region below 4 GB to hold the MVMM code/private data, and the initial DMA-remapping structures that control DMA to host physical addresses below 4 GB. DMA-remapping hardware implementations on platforms supporting Intel® TXT are required to support protected low-memory region 5.
  • Protected High-memory Region: This is defined as a variable sized protected memory region above 4 GB, enough to hold the initial DMA-remapping structures for managing DMA accesses to addresses above 4 GB. DMA-remapping hardware implementations on platforms supporting Intel® TXT are required to support protected high-memory region 6, if the platform supports main memory above 4 GB.

Once the protected low/high memory region registers are configured, bus master protection to these regions is enabled through the Protected Memory Enable register. For platforms with multiple DMA-remapping hardware units, each of the DMA-remapping hardware units should be configured with the same protected memory regions and enabled.

DRAM Protected Range (DPR)

This protection range only applies to DMA accesses and GMADR translations. It serves a purpose of providing a memory range that is only accessible to processor streams. The range just below TSEGMB is protected from DMA accesses.

The DPR range works independently of any other range, including the PMRC checks in Intel® VT-d. It occurs post any Intel® VT-d translation. Therefore, incoming cycles are checked against this range after the Intel® VT-d translation and faulted if they hit this protected range, even if they passed the Intel® VT-d translation.

The system will set up:

  • 0 to (TSEG_​BASE – DPR size – 1) for DMA traffic
  • TSEG_​BASE to (TSEG_​BASE – DPR size) as no DMA.

After some time, software could request more space for not allowing DMA. It will get some more pages and make sure there are no DMA cycles to the new region. DPR size is changed to the new value. When it does this, there should not be any DMA cycles going to DRAM to the new region.

All upstream cycles from 0 to (TSEG_​BASE – 1 – DPR size), and not in the legacy holes (VGA), are decoded to DRAM.

Pre-allocated Memory

Voids of physical addresses that are not accessible as general system memory and reside within the system memory address range (< TOLUD) are created for SMM-mode, legacy VGA graphics compatibility, and GFX GTT stolen memory. It is the responsibility of BIOS to properly initialize these regions.

PCI Memory Address Range (TOLUD – 4 GB)

This address range from the top of low usable DRAM (TOLUD) to 4 GB is normally mapped to the DMI Interface, except where other bars override the target to different locations.

PCI Memory Address Range

Upper Main Memory Address Space (4 GB to TOUUD)

The maximum main memory size supported is 64 GB total DRAM memory.

A hole between TOLUD and 4 GB occurs when main memory size approaches 4 GB or larger. As a result, TOM and TOUUD registers and REMAPBASE/REMAPLIMIT registers become relevant.

The remap configuration registers exist to remap lost main memory space. The greater than 32-bit remap handling will be handled similar to other MCHs.

Upstream read and write accesses above 39-bit addressing will be treated as invalid cycles by PEG and DMI.

Top of Memory (TOM)

The “Top of Memory” (TOM) register reflects the total amount of populated physical memory. This is NOT necessarily the highest main memory address (holes may exist in main memory address map due to addresses allocated for memory mapped IO above TOM).

The TOM was used to allocate the Intel® Management Engine (Intel® ME) stolen memory. The Intel® ME stolen size register reflects the total amount of physical memory stolen by the Intel® ME. The Intel® ME stolen memory is located at the top of physical memory. The Intel® ME stolen memory base is calculated by subtracting the amount of memory stolen by the Intel® ME from TOM.

Top of Upper Usable DRAM (TOUUD)

The Top of Upper Usable DRAM (TOUUD) register reflects the total amount of addressable DRAM. If remap is disabled, TOUUD will reflect TOM minus Intel® ME stolen size. If remap is enabled, then it will reflect the remap limit. When there is more than 4 GB of DRAM and reclaim is enabled, the reclaim base will be the same as TOM minus Intel® ME stolen memory size to the nearest 1 MB alignment.

Top of Low Usable DRAM (TOLUD)

TOLUD register is restricted to 4 GB memory (A[31:20]), but the processor can support up to 64 GB, limited by DRAM pins. For physical memory greater than 4 GB, the TOUUD register helps identify the address range between the 4 GB boundary and the top of physical memory. This identifies memory that can be directly accessed (including remap address calculation) that is useful for memory access indication and early path indication. TOLUD can be 1 MB aligned.

TSEG_​BASE

The “TSEG_​BASE” register reflects the total amount of low addressable DRAM, below TOLUD. BIOS will calculate memory size and program this register; thus, the system agent has knowledge of where (TOLUD) – (Gfx stolen) – (Gfx GTT stolen) – (TSEG) is located. I/O blocks use this minus DPR for upstream DRAM decode.

Memory Re-claim Background

The following are examples of Memory Mapped IO devices that are typically located below 4 GB:

  • High BIOS
  • TSEG
  • GFX stolen
  • GTT stolen
  • XAPIC
  • Local APIC
  • MSI Interrupts
  • Mbase/Mlimit
  • Pmbase/PMlimit
  • Memory Mapped IO space that supports only 32B addressing

The processor provides the capability to re-claim the physical memory overlapped by the Memory Mapped IO logical address space. The MCH re-maps physical memory from the Top of Low Memory (TOLUD) boundary up to the 4 GB boundary to an equivalent sized logical address range located just below the Intel® ME stolen memory.

Indirect Accesses to MCHBAR Registers

Similar to prior chipsets, MCHBAR registers can be indirectly accessed using:

Direct MCHBAR access decode:

  • Cycle to memory from processor
  • Hits MCHBAR base, AND
  • MCHBAR is enabled, AND
  • Within MMIO space (above and below 4 GB)

GTTMMADR (10000h – 13FFFh) range -> MCHBAR decode

MCHTMBAR -> MCHBAR (Thermal Monitor)

  • Cycle to memory from processor, AND
  • Targets MCHTMBAR base

IOBAR -> GTTMMADR -> MCHBAR

Memory Remapping

An incoming address (referred to as a logical address) is checked to see if it falls in the memory re-map window. The bottom of the re-map window is defined by the value in the REMAPBASE register. The top of the re-map window is defined by the value in the REMAPLIMIT register. An address that falls within this window is re-mapped to the physical memory starting at the address defined by the TOLUD register. The TOLUD register should be 1 MB aligned.

Hardware Remap Algorithm

The following pseudo-code defines the algorithm used to calculate the DRAM address to be used for a logical address above the top of physical memory made available using re-claiming.

IF (ADDRESS_​IN[38:20] >= REMAP_​BASE[35:20]) AND

(ADDRESS_​IN[38:20] <= REMAP_​LIMIT[35:20]) THEN

ADDRESS_​OUT[38:20] = (ADDRESS_​IN[38:20] - REMAP_​BASE[35:20]) +

0000000b & TOLUD[31:20]

ADDRESS_​OUT[19:0] = ADDRESS_​IN[19:0]

PCI Express* Configuration Address Space

PCIEXBAR is located in Device 0 configuration space. The processor detects memory accesses targeting PCIEXBAR. BIOS should assign this address range such that it will not conflict with any other address ranges.

Graphics Memory Address Ranges

The integrated memory controller can be programmed to direct memory accesses to the Processor Graphics when addresses are within any of the ranges specified using registers in MCH Device 2 configuration space.

  • The Graphics Local Memory Register (LMEMBAR) is used to access graphics stolen memory.
  • The Graphics Translation Table Base Register (GTTMMADR) is used to access the translation table and graphics control registers.

These ranges can reside above the Top-of-Low-DRAM and below High BIOS and APIC address ranges. They should reside above the top of memory (TOLUD) and below 4 GB so they do not take any physical DRAM memory space.

Alternatively, these ranges can reside above 4 GB, similar to other BARs that are larger than 32 bits in size.

LMEMBAR is a Prefetchable range in order to apply USWC attribute (from the processor point of view) to that range. The USWC attribute is used by the processor for write combining

Trusted Graphics Ranges

Trusted graphics ranges are NOT supported.

System Management Mode (SMM)

The Core handles all SMM mode transaction routing. The processor does not allow I/O devices access to the CSEG/TSEG/HSEG ranges.

DMI Interface and PCI Express* masters are Not allowed to access the SMM space.

SMM Regions

SMM Space Enabled Transaction Address Space DRAM Space (DRAM)
TSEG (T) (TOLUD – STOLEN – TSEG) to TOLUD – STOLEN (TOLUD – STOLEN – TSEG) to TOLUD – STOLEN

SMM and VGA Access Through GTT TLB

Accesses through GTT TLB address translation SMM DRAM space are not allowed. Writes will be routed to memory address 000C_​0000h with byte enables de-asserted and reads will be routed to Memory address 000C_​0000h. If a GTT TLB translated address hits VGA space, an error is recorded.

PCI Express* and DMI Interface originated accesses are never allowed to access SMM space directly or through the GTT TLB address translation. If a GTT TLB translated address hits enabled SMM DRAM space, an error is recorded.

PCI Express and DMI Interface write accesses through the GMADR range will not be snooped. Only PCI Express and DMI assesses to GMADR linear range (defined using fence registers) are supported. PCI Express and DMI Interface tileY and tileX writes to GMADR are not supported. If, when translated, the resulting physical address is to enable SMM DRAM space, the request will be remapped to address 000C_​0000h with de-asserted byte enables.

PCI Express and DMI Interface read accesses to the GMADR range are not supported. Therefore, there are no address translation concerns. PCI Express and DMI Interface reads to GMADR will be remapped to address 000C_​0000h. The read will complete with UR (unsupported request) completion status.

GTT fetches are always decoded (at fetch time) to ensure fetch is not in SMM (actually, anything above base of TSEG or 640 KB - 1 MB). Thus, the fetches will be invalid and go to address 000C_​0000h. This is not specific to PCI Express or DMI; it also applies to processor or Processor Graphics engines.

Intel Management Engine (Intel ME) Stolen Memory Accesses

There are two ways to validly access Intel® ME stolen memory:

  • PCH accesses mapped to VCm will be decoded to ensure only Intel® ME stolen memory is targeted. These VCm accesses will route non-snooped directly to DRAM. This is the means by which the Intel® ME (located within the PCH) is able to access the Intel® ME stolen range.
  • The display engine is allowed to access Intel® ME stolen memory as part of Intel® KVM technology flows. Specifically, display-initiated HHP reads (for displaying a Intel® KVM technology frame) and display initiated LP non-snoop writes (for display writing an Intel® KVM technology captured frame) to Intel® ME stolen memory are allowed.

I/O Address Space

The system agent generates either DMI Interface or PCI Express* bus cycles for all processor I/O accesses that it does not claim. The Configuration Address Register (CONFIG_​ADDRESS) and the Configuration Data Register (CONFIG_​DATA) are used to generate PCI configuration space access.

The processor allows 64K+3 bytes to be addressed within the I/O space. The upper 3 locations can be accessed only during I/O address wrap-around.

A set of I/O accesses are consumed by the Processor Graphics device if it is enabled. The mechanisms for Processor Graphics I/O decode and the associated control is explained in following sub-sections.

The I/O accesses are forwarded normally to the DMI Interface bus unless they fall within the PCI Express I/O address range as defined by the mechanisms explained below. I/O writes are NOT posted. Memory writes to PCH or PCI Express are posted. The PCI Express devices have a register that can disable the routing of I/O cycles to the PCI Express device.

The processor responds to I/O cycles initiated on PCI Express or DMI with an UR status. Upstream I/O cycles and configuration cycles should never occur. If one does occur, the transaction will complete with an UR completion status.

I/O reads that lie within 8-byte boundaries but cross 4-byte boundaries are issued from the processor as one transaction. The reads will be split into two separate transactions. I/O writes that lie within 8-byte boundaries but cross 4-byte boundaries will be split into two transactions by the processor.

PCI Express* I/O Address Mapping

The processor can be programmed to direct non-memory (I/O) accesses to the PCI Express bus interface when processor initiated I/O cycle addresses are within the PCI Express I/O address range. This range is controlled using the I/O Base Address (IOBASE) and I/O Limit Address (IOLIMIT) registers in Device 1 Functions 0, 1, 2 configuration space.

Address decoding for this range is based on the following concept. The top 4 bits of the respective I/O Base and I/O Limit registers correspond to address bits A[15:12] of an I/O address. For the purpose of address decoding, the device assumes that the lower 12 address bits A[11:0] of the I/O base are zero and that address bits A[11:0] of the I/O limit address are FFFh. This forces the I/O address range alignment to a 4 KB boundary and produces a size granularity of 4 KB.

The processor positively decodes I/O accesses to PCI Express I/O address space as defined by the following equation:

I/O_​Base_​Address ≤ processor I/O Cycle Address ≤ I/O_​Limit_​Address

The effective size of the range is programmed by the plug-and-play configuration software and it depends on the size of I/O space claimed by the PCI Express device.

The processor also forwards accesses to the Legacy VGA I/O ranges according to the settings in the PEG configuration registers BCTRL (VGA Enable) and PCICMD (IOAE), unless a second adapter (monochrome) is present on the DMI Interface/PCI (or ISA). The presence of a second graphics adapter is determined by the MDAP configuration bit. When MDAP is set to 1, the processor will decode legacy monochrome I/O ranges and forward them to the DMI Interface. The I/O ranges decoded for the monochrome adapter are 3B4h, 3B5h, 3B8h, 3B9h, 3BAh, and 3BFh.

The PEG I/O address range registers defined above are used for all I/O space allocation for any devices requiring such a window on PCI-Express.

The PCICMD register can disable the routing of I/O cycles to PCI Express.

Direct Media Interface (DMI) Interface Decode Rules

Note:DMI does not apply to P Processors.

All “SNOOP semantic” PCI Express* transactions are kept coherent with processor caches.

All “Snoop not required semantic” cycles reference the main DRAM address range. PCI Express non-snoop initiated cycles are not snooped.

The processor accepts accesses from the DMI Interface to the following address ranges:

  • All snoop memory read and write accesses to Main DRAM including PAM region (except stolen memory ranges, TSEG, A0000h – BFFFFh space)
  • Write accesses to enabled VGA range, MBASE/MLIMIT, and PMBASE/PMLIMIT will be routed as peer cycles to the PCI Express interface.
  • Write accesses above the top of usable DRAM and below 4 GB (not decoding to PCI Express or GMADR space) will be treated as master aborts.
  • Read accesses above the top of usable DRAM and below 4 GB (not decoding to PCI Express) will be treated as unsupported requests.
  • Reads and accesses above the TOUUD will be treated as unsupported requests on VC0.

DMI Interface memory read accesses that fall between TOLUD and 4 GB are considered invalid and will master abort. These invalid read accesses will be reassigned to address 000C_​0000h and dispatch to DRAM. Reads will return unsupported request completion. Writes targeting PCI Express space will be treated as peer-to-peer cycles.

There is a known usage model for peer writes from DMI to PEG. A video capture card can be plugged into the PCH PCI bus. The video capture card can send video capture data (writes) directly into the frame buffer on an external graphics card (writes to the PEG port). As a result, peer writes from DMI to PEG should be supported.

I/O cycles and configuration cycles are not supported in the upstream direction. The result will be an unsupported request completion status.

DMI Accesses to the Processor that Cross Device Boundaries

The processor does not support transactions that cross device boundaries. This should not occur because PCI Express transactions are not allowed to cross a 4 KB boundary.

For reads, the processor will provide separate completion status for each naturally-aligned 64-byte block or, if chaining is enabled, each 128-byte block. If the starting address of a transaction hits a valid address, the portion of a request that hits that target device (PCI Express or DRAM) will complete normally.

If the starting transaction address hits an invalid address, the entire transaction will be remapped to address 000C_​0000h and dispatched to DRAM. A single unsupported request completion will result.

Traffic Class (TC) / Virtual Channel (VC) Mapping Details

  • VC0 (enabled by default)
    • Snoop port and Non-snoop Asynchronous transactions are supported.
    • Internal Graphics GMADR writes can occur. These writes will NOT be snooped regardless of the snoop not required (SNR) bit.
    • Processor Graphics GMADR reads (unsupported).
    • Peer writes can occur. The SNR bit is ignored.
    • MSI can occur. These will route and be sent to the cores as Intlogical/IntPhysical interrupts regardless of the SNR bit.
    • VLW messages can occur. These will route and be sent to the cores as VLW messages regardless of the SNR bit.
    • MCTP messages can occur. These are routed in a peer fashion.
  • VC1 (Optionally enabled)
    • Supports non-snoop transactions only. (Used for isochronous traffic). The PCI Express* Egress port (PXPEPBAR) should also be programmed appropriately.
    • The snoop not required (SNR) bit should be set. Any transaction with the SNR bit not set will be treated as an unsupported request.
    • MSI and peer transactions are treated as unsupported requests.
    • No “pacer” arbitration or TWRR arbitration will occur. Never remaps to different port. (PCH takes care of Egress port remapping). The PCH meters TCm Intel® ME accesses and Intel® High Definition Audio (Intel® HD Audio) TC1 access bandwidth.
    • Processor Graphics GMADR writes and GMADR reads are not supported.
  • VCm accesses
    • VCm access only map to Intel® ME stolen DRAM. These transactions carry the direct physical DRAM address (no redirection or remapping of any kind will occur). This is how the PCH Intel® ME accesses its dedicated DRAM stolen space.
    • DMI block will decode these transactions to ensure only Intel® ME stolen memory is targeted, and abort otherwise.
    • VCm transactions will only route non-snoop.
    • VCm transactions will not go through VTd remap tables.
    • The remapbase/remaplimit registers to not apply to VCm transactions.

Example: DMI Upstream VC0 Memory Map

PCI Express* Interface Decode Rules

All “SNOOP semantic” PCI Express* transactions are kept coherent with processor caches. All “Snoop not required semantic” cycles should reference the direct DRAM address range. PCI Express non-snoop initiated cycles are not snooped. If a “Snoop not required semantic” cycle is outside of the address range mapped to system memory, then it will proceed as follows:

  • Reads: Sent to DRAM address 000C_​0000h (non-snooped) and will return “unsuccessful completion”.
  • Writes: Sent to DRAM address 000C_​0000h (non-snooped) with byte enables all disabled Peer writes from PEG to DMI are not supported.

If PEG bus master enable is not set, all reads and writes are treated as unsupported requests.

TC/VC Mapping Details

  • VC0 (enabled by default)

—Snoop port and Non-snoop Asynchronous transactions are supported.

  • Processor Graphics GMADR writes can occur. Unlike FSB chipsets, these will NOT be snooped regardless of the snoop not required (SNR) bit.
  • Processor Graphics GMADR reads (unsupported).
  • Peer writes are only supported between PEG ports. PEG to DMI peer write accesses are NOT supported.
  • MSI can occur. These will route to the cores (IntLogical/IntPhysical) regardless of the SNR bit.
    • VC1 is not supported.
    • VCm is not supported.

PEG Upstream VC0 Memory Map

Legacy VGA and I/O Range Decode Rules

The legacy 128 KB VGA memory range 000A_​0000h – 000B_​FFFFh can be mapped to Processor Graphics (Device 2), PCI Express (Device 1 Functions), and/or to the DMI interface depending on the programming of the VGA steering bits. Priority for VGA mapping is constant in that the processor always decodes internally mapped devices first. Internal to the processor, decode precedence is always given to Processor Graphics. The processor always positively decodes internally mapped devices, namely the Processor Graphics. Subsequent decoding of regions mapped to either PCI Express port or the DMI Interface depends on the Legacy VGA configurations bits (VGA Enable and MDAP).

For the remainder of this section, PCI Express can refer to either the device 1 port functions.

VGA range accesses will always be mapped as UC type memory.

Accesses to the VGA memory range are directed to Processor Graphics depend on the configuration. The configuration is specified by:

  • Processor Graphics controller in Device 2 is enabled (DEVEN.D2EN bit 4)
  • Processor Graphics VGA in Device 0 Function 0 is enabled through register GGC bit 1.
  • Processor Graphics's memory accesses (PCICMD2 04h – 05h, MAE bit 1) in Device 2 configuration space are enabled.
  • VGA compatibility memory accesses (VGA Miscellaneous Output register – MSR Register, bit 1) are enabled.
  • Software sets the proper value for VGA Memory Map Mode register (VGA GR06 Register, bits 3:2). See the following table for translations.

Processor Graphics Frame Buffer Accesses

Memory Access GR06(3:2) A0000h - AFFFFh B0000h - B7FFFh MDA B8000h - BFFFFh
00 Processor Graphics Processor Graphics Processor Graphics
01 Processor Graphics PCI Express bridge or DMI interface PCI Express bridge or DMI interface
10 PCI Express bridge or DMI interface Processor Graphics PCI Express bridge or DMI interface
11 PCI Express bridge or DMI interface PCI Express bridge or DMI interface Processor Graphics
Note: Note:Additional qualification within Processor Graphics comprehends internal MDA support. The VGA and MDA enabling bits detailed below control segments not mapped to Processor Graphics.

VGA I/O range is defined as addresses where A[15:0] are in the ranges 03B0h to 03BBh, and 03C0h to 03DFh. VGA I/O accesses are directed to Processor Graphics depends on the following configuration:

  • Processor Graphics controller in Device 2 is enabled through register DEVEN.D2EN bit 4.
  • Processor Graphics VGA in Device 0 Function 0 is enabled through register GGC bit 1.
  • Processor Graphics's I/O accesses (PCICMD2 04 – 05h, IOAE bit 0) in Device 2 are enabled.
  • VGA I/O decodes for Processor Graphics uses 16 address bits (15:0) there is no aliasing. This is different when compared to a bridge device (Device 1) that used only 10 address bits (A 9:0) for VGA I/O decode.
  • VGA I/O input/output address select (VGA Miscellaneous Output register - MSR Register, bit 0) is used to select mapping of I/O access as defined in the following table.

Processor Graphics VGA I/O Mapping

I/O Access MSRb0 3CX 3DX 3B0h – 3BBh 3BCh – 3BFh
0 Processor Graphics PCI Express bridge or DMI interface Processor Graphics PCI Express bridge or DMI interface
1 Processor Graphics Processor Graphics PCI Express bridge or DMI interface PCI Express bridge or DMI interface
Note:Additional qualification within Processor Graphics comprehends internal MDA support. The VGA and MDA enabling bits detailed below control ranges not mapped to Processor Graphics.

For regions mapped outside of the Processor Graphics (or if Processor Graphics is disabled), the legacy VGA memory range A0000h – BFFFFh are mapped to the DMI Interface or PCI Express depending on the programming of the VGA Enable bit in the BCTRL configuration register in the PEG configuration space, and the MDAPxx bits in the Legacy Access Control (LAC) register in Device 0 configuration space. The same register controls mapping VGA I/O address ranges. The VGA I/O range is defined as addresses where A[9:0] are in the ranges 3B0h to 3BBh and 3C0h to 3DFh (inclusive of ISA address aliases – A[15:10] are not decoded). The function and interaction of these two bits is described below:

VGA Enable: Controls the routing of processor initiated transactions targeting VGA compatible I/O and memory address ranges. When this bit is set, the following processor accesses will be forwarded to the PCI Express:

  • Memory accesses in the range 0A0000h to 0BFFFFh
  • I/O addresses where A[9:0] are in the ranges 3B0h to 3BBh and 3C0h to 3DFh (including ISA address aliases – A[15:10] are not decoded)

When this bit is set to a “1”:

  • Forwarding of these accesses issued by the processor is independent of the I/O address and memory address ranges defined by the previously defined base and limit registers.
  • Forwarding of these accesses is also independent of the settings of the ISA Enable settings if this bit is “1”.
  • Accesses to I/O address range x3BCh – x3BFh are forwarded to the DMI Interface.

When this bit is set to a “0”:

  • Accesses to I/O address range x3BCh – x3BFh are treated like any other I/O accesses; the cycles are forwarded to PCI Express if the address is within IOBASE and IOLIMIT and ISA enable bit is not set. Otherwise, these accesses are forwarded to the DMI interface.
  • VGA compatible memory and I/O range accesses are not forwarded to PCI Express but rather they are mapped to the DMI Interface, unless they are mapped to PCI Express using I/O and memory range registers defined above (IOBASE, IOLIMIT)

The following table shows the behavior for all combinations of MDA and VGA.

VGA and MDA IO Transaction Mapping

VGA_​en MDAP Range Destination Exceptions / Notes
0 0 VGA, MDA DMI interface
0 1 Illegal Undefined behavior results
1 0 VGA PCI Express
1 1 VGA PCI Express
1 1 MDA DMI interface x3BCh – x3BEh will also go to DMI interface

The same registers control mapping of VGA I/O address ranges. The VGA I/O range is defined as addresses where A[9:0] are in the ranges 3B0h to 3BBh and 3C0h to 3DFh (inclusive of ISA address aliases – A[15:10] are not decoded). The function and interaction of these two bits is described below.

MDA Present (MDAP): This bit works with the VGA Enable bit in the BCTRL register of Device 1 to control the routing of processor-initiated transactions targeting MDA compatible I/O and memory address ranges. This bit should not be set when the VGA Enable bit is not set. If the VGA enable bit is set, accesses to I/O address range x3BCh – x3BFh are forwarded to the DMI Interface. If the VGA enable bit is not set, accesses to I/O address range x3BCh – x3BFh are treated just like any other I/O accesses; that is, the cycles are forwarded to PCI Express if the address is within IOBASE and IOLIMIT and the ISA enable bit is not set; otherwise, the accesses are forwarded to the DMI Interface. MDA resources are defined as the following:

MDA Resources

Range Type Address
Memory 0B0000h – 0B7FFFh
I/O 3B4h, 3B5h, 3B8h, 3B9h, 3BAh, 3BFh (Including ISA address aliases, A[15:10] are not used in decode)

Any I/O reference that includes the I/O locations listed above, or their aliases, will be forwarded to the DMI interface even if the reference includes I/O locations not listed above.

For I/O reads that are split into multiple DWord accesses, this decode applies to each DWord independently. For example, a read to x3B3h and x3B4h (quadword read to x3B0h with BE#=E7h) will result in a DWord read from PEG at 3B0h (BE#=Eh), and a DWord read from DMI at 3B4h (BE=7h). Since the processor will not issue I/O writes crossing the DWord boundary, this case does not exist for writes.

Summary of decode priority:

  • Processor Graphics VGA, if enabled, gets:
    • 03C0h – 03CFh: always
    • 03B0h – 03BBh: if MSR[0]=0 (MSR is I/O register 03C2h)
    • 03D0h – 03DFh: if MSR[0]=1
Note:03BCh – 03BFh never decodes to Processor Graphics; 3BCh – 3BEh are parallel port I/Os, and 3BFh is only used by true MDA devices.
  • Else, if MDA Present (if VGA on PEG is enabled), DMI gets:
    • x3B4,5,8,9,A,F (any access with any of these bytes enabled, regardless of the other BEs)
  • Else, if VGA on PEG is enabled, PEG gets:
    • x3B0h – x3BBh
    • x3C0h – x3CFh
    • x3D0h – x3DFh
  • Else, if ISA Enable=1, DMI gets:
    • upper 768 bytes of each 1K block
  • Else, IOBASE/IOLIMIT apply.

I/O Mapped Registers

The processor contains two registers that reside in the processor I/O address space - the Configuration Address (CONFIG_​ADDRESS) Register and the Configuration Data (CONFIG_​DATA) Register. The Configuration Address Register enables/disables the configuration space and determines what portion of configuration space is visible through the Configuration Data window.

Registers

Available registers for Meteor Lake are listed in the navigation.