diff --git a/sections/cper-section-cxl-protocol.c b/sections/cper-section-cxl-protocol.c
index b902cc7..d7fbf0a 100644
--- a/sections/cper-section-cxl-protocol.c
+++ b/sections/cper-section-cxl-protocol.c
@@ -29,10 +29,10 @@
     json_object_object_add(section_ir, "agentType", agent_type);
 
     //CXL agent address, depending on the agent type.
+    json_object* agent_address = json_object_new_object();
     if (cxl_protocol_error->CxlAgentType == CXL_PROTOCOL_ERROR_DEVICE_AGENT)
     {
         //Address is a CXL1.1 device agent.
-        json_object* agent_address = json_object_new_object();
         json_object_object_add(agent_address, "functionNumber", 
             json_object_new_uint64(cxl_protocol_error->CxlAgentAddress.DeviceAddress.FunctionNumber));
         json_object_object_add(agent_address, "deviceNumber", 
@@ -41,15 +41,14 @@
             json_object_new_uint64(cxl_protocol_error->CxlAgentAddress.DeviceAddress.BusNumber));
         json_object_object_add(agent_address, "segmentNumber", 
             json_object_new_uint64(cxl_protocol_error->CxlAgentAddress.DeviceAddress.SegmentNumber));
-
-        json_object_object_add(section_ir, "cxlAgentAddress", agent_address);
     }
     else if (cxl_protocol_error->CxlAgentType == CXL_PROTOCOL_ERROR_HOST_DOWNSTREAM_PORT_AGENT)
     {
         //Address is a CXL port RCRB base address.
-        json_object_object_add(section_ir, "cxlAgentAddress", 
+        json_object_object_add(agent_address, "value", 
             json_object_new_uint64(cxl_protocol_error->CxlAgentAddress.PortRcrbBaseAddress));
     }
+    json_object_object_add(section_ir, "cxlAgentAddress", agent_address);
 
     //Device ID.
     json_object* device_id = json_object_new_object();
@@ -86,16 +85,18 @@
 
     //CXL DVSEC
     //For CXL 1.1 devices, this is the "CXL DVSEC For Flex Bus Device" structure as in CXL 1.1 spec.
+    //For CXL 1.1 host downstream ports, this is the "CXL DVSEC For Flex Bus Port" structure as in CXL 1.1 spec.
     unsigned char* cur_pos = (unsigned char*)(cxl_protocol_error + 1);
     char* encoded = b64_encode(cur_pos, cxl_protocol_error->CxlDvsecLength);
-    json_object_object_add(section_ir, "capabilityStructure", json_object_new_uint64(cxl_protocol_error->DeviceSerial));
+    json_object_object_add(section_ir, "cxlDVSEC", json_object_new_string(encoded));
     free(encoded);
     cur_pos += cxl_protocol_error->CxlDvsecLength;
 
-    //For CXL 1.1 host downstream ports, this is the "CXL DVSEC For Flex Bus Port" structure as in CXL 1.1 spec.
-
     //CXL Error Log
-    //This as the "CXL RAS Capability Structure" as in CXL 1.1 spec.
+    //This is the "CXL RAS Capability Structure" as in CXL 1.1 spec.
+    encoded = b64_encode(cur_pos, cxl_protocol_error->CxlErrorLogLength);
+    json_object_object_add(section_ir, "cxlErrorLog", json_object_new_string(encoded));
+    free(encoded);
     
     return section_ir;
 }
\ No newline at end of file
diff --git a/sections/cper-section-cxl-protocol.h b/sections/cper-section-cxl-protocol.h
index 9dd5de4..c3ac312 100644
--- a/sections/cper-section-cxl-protocol.h
+++ b/sections/cper-section-cxl-protocol.h
@@ -5,7 +5,7 @@
 #include "../edk/Cper.h"
 
 #define CXL_PROTOCOL_ERROR_VALID_BITFIELD_NAMES (const char*[]) {"cxlAgentTypeValid", "cxlAgentAddressValid", \
-    "deviceIDValid", "deviceSerialNumberValid", "capabilityStructureValid", "cxlDvsecValid", "cslErrorLogValid"}
+    "deviceIDValid", "deviceSerialValid", "capabilityStructureValid", "cxlDVSECValid", "cxlErrorLogValid"}
 #define CXL_PROTOCOL_ERROR_AGENT_TYPES_KEYS (int []){0, 1}
 #define CXL_PROTOCOL_ERROR_AGENT_TYPES_VALUES (const char*[]){"CXL 1.1 Device", "CXL 1.1 Host Downstream Port"}
 #define CXL_PROTOCOL_ERROR_DEVICE_AGENT 0
diff --git a/sections/cper-section-pci-dev.h b/sections/cper-section-pci-dev.h
index 02c6b4f..f79df74 100644
--- a/sections/cper-section-pci-dev.h
+++ b/sections/cper-section-pci-dev.h
@@ -5,7 +5,7 @@
 #include "../edk/Cper.h"
 
 #define PCI_DEV_ERROR_VALID_BITFIELD_NAMES (const char*[]) {"errorStatusValid", "idInfoValid", "memoryNumberValid", \
-    "ioNumberValid", "registerDataPairValid"}
+    "ioNumberValid", "registerDataPairsValid"}
 
 ///
 /// PCI/PCI-X Device Error Section
diff --git a/specification/cper-json-specification.tex b/specification/cper-json-specification.tex
index ac7af3f..4f9e1b7 100644
--- a/specification/cper-json-specification.tex
+++ b/specification/cper-json-specification.tex
@@ -401,7 +401,7 @@
 \hline
 instructionPointerValid & boolean & Whether the "instructionPointer" field in the Processor Error Info structure (\ref{subsection:ia32x64processorerrorinfostructure}) is valid.\\
 \hline
-\jsontableend{IA32/x64 Processor Error Info Validation structure field table.}
+\jsontableend{IA32/x64 Processor Error Info validation structure field table.}
 
 % IA32/x64 Processor Error Check Info (Cache/TLB Error)
 \subsection{IA32/x64 Processor Error Check Info (Cache/TLB Error) Structure}
@@ -511,7 +511,7 @@
 participationTypeValid & boolean (\textbf{optional}) & Whether the "participationType" field in the Processor Error Check Info (Bus Error) structure (\ref{subsection:ia32x64processorerrorcheckinfobusstructure}) is valid. \textbf{This field is only present on bus related check info structures.}\\
 \hline
 timedOutValid & boolean (\textbf{optional}) & Whether the "timeOut" field in the Processor Error Check Info (Bus Error) structure (\ref{subsection:ia32x64processorerrorcheckinfobusstructure}) is valid. \textbf{This field is only present on bus related check info structures.}\\
-\jsontableend{IA32/x64 Processor Error Check Info (Cache/TLB/Bus) Validation structure field table.}
+\jsontableend{IA32/x64 Processor Error Check Info (Cache/TLB/Bus) validation structure field table.}
 
 % IA32/x64 Processor Error Check Info (MS Check) Validation structure.
 \subsection{IA32/x64 Processor Error Check Info (MS Check) Validation Structure}
@@ -529,7 +529,7 @@
 restartableIPValid & boolean & Whether the "restartableIP" field in a Processor Error Check Info (MS Check) (\ref{subsection:ia32x64processorerrorcheckinfomscheckstructure}) structure is valid.\\
 \hline
 overflowValid & boolean & Whether the "overflow" field in a Processor Error Check Info (MS Check) (\ref{subsection:ia32x64processorerrorcheckinfomscheckstructure}) structure is valid.\\
-\jsontableend{IA32/x64 Processor Error Check Info (MS Check) Validation structure field table.}
+\jsontableend{IA32/x64 Processor Error Check Info (MS Check) validation structure field table.}
 
 % IA32/x64 Processor Context Info structure.
 \subsection{IA32/x64 Processor Context Info Structure}
@@ -733,7 +733,7 @@
 runningStateValid & boolean & Whether the "running" field in the ARM Processor Error structure (\ref{section:armprocessorerrorsection}) is valid.\\
 \hline
 vendorSpecificInfoValid & boolean & Whether the trailing vendor specific info (if present) in the ARM Processor Error Structure (\ref{section:armprocessorerrorsection}) is valid.\\
-\jsontableend{ARM Processor Error Validation structure field table.}
+\jsontableend{ARM Processor Error validation structure field table.}
 
 % ARM Processor Error Info structure
 \subsection{ARM Processor Error Info Structure}
@@ -775,7 +775,7 @@
 virtualFaultAddressValid & boolean & Whether the "virtualFaultAddress" field in the ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}) is valid.\\
 \hline
 physicalFaultAddressValid & boolean & Whether the "physicalFaultAddress" field in the ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}) is valid.\\
-\jsontableend{ARM Processor Error Info Validation structure field table.}
+\jsontableend{ARM Processor Error Info validation structure field table.}
 
 % ARM Processor Error Info Validation structure
 \subsection{ARM Processor Error Info Flags Structure}
@@ -833,7 +833,7 @@
 precisePCValid & boolean & Whether the "precisePC" field in the ARM Processor Info Cache/TLB Information structure (\ref{subsection:armprocessorerrorinfoerrorinformationcachetlbstructure}) is valid.\\
 \hline
 restartablePCValid & boolean & Whether the "restartablePC" field in the ARM Processor Info Cache/TLB Information structure (\ref{subsection:armprocessorerrorinfoerrorinformationcachetlbstructure}) is valid.\\
-\jsontableend{ARM Processor Error Info Cache/TLB Validation structure field table.}
+\jsontableend{ARM Processor Error Info Cache/TLB validation structure field table.}
 
 % ARM Processor Error Info Error Information (Bus) structure
 \subsection{ARM Processor Error Info Bus Information Structure}
@@ -900,7 +900,7 @@
 memoryAttributesValid & boolean & Whether the "memoryAttributes" field in the ARM Processor Info Bus Information structure (\ref{subsection:armprocessorerrorinfoerrorinformationbusstructure}) is valid.\\
 \hline
 accessModeValid & boolean & Whether the "accessMode" field in the ARM Processor Info Bus Information structure (\ref{subsection:armprocessorerrorinfoerrorinformationbusstructure}) is valid.\\
-\jsontableend{ARM Processor Error Info Bus Validation structure field table.}
+\jsontableend{ARM Processor Error Info Bus validation structure field table.}
 
 % ARM Processor Context Info structure
 \subsection{ARM Processor Context Info Structure}
@@ -1343,7 +1343,7 @@
 bankAddressValid & boolean & Whether the "bank.address" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
 \hline
 chipIdentificationValid & boolean & Whether the "extended.chipIdentification" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
-\jsontableend{Memory Error Validation structure field table.}
+\jsontableend{Memory Error validation structure field table.}
 
 % Memory error normal bank addressing structure.
 \subsection{Memory Error Standard Bank Address Structure}
@@ -1400,7 +1400,7 @@
 \hline
 rank & uint64 & The rank number of the error location.\\
 \hline
-chipID & uint64 & Chip identifier. Encoded field used to address the die in 3DS packages.\\
+chipID & uint64 & Chip identMrsOp2ifier. Encoded field used to address the die in 3DS packages.\\
 \hline
 requestorID & uint64 & Hardware address of the device that initiated the errored transaction.\\
 \hline
@@ -1461,7 +1461,7 @@
 bankGroupValid & boolean & Whether the "bankGroup" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
 \hline
 bankAddressValid & boolean & Whether the "bankAddress" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
-\jsontableend{Memory Error 2 Validation structure field table.}
+\jsontableend{Memory Error 2 validation structure field table.}
 
 % Memory error 2 normal bank addressing structure.
 \subsection{Memory Error 2 Standard Bank Address Structure}
@@ -1481,4 +1481,488 @@
 group & uint64 & The group of the bank.\\
 \jsontableend{Memory Error 2 Address/Group Bank Address structure field table.}
 
+% PCIe error section.
+\section{PCIe Error Section}
+\label{section:pcieerrorsection}
+This section describes the JSON format for a single PCIe Error Section from a CPER record. The GUID used for PCIe Error Sections is \texttt{\{ 0xd995e954, 0xbbc1, 0x430f, \{ 0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35 \}\}}.
+\jsontable{table:pcieerrorsection}
+validationBits & object & A PCIe Error Validation structure as defined in Subsection \ref{subsection:pcieerrorvalidationstructure}.\\
+\hline
+portType.value & uint64 & The raw value of the port type for this error.\\
+portType.name & string & The human readable name, if available, of the port type for this error.\\
+\hline
+version.major & int & The major version number for the PCIe specification supported.\\
+version.minor & int & The minor version number for the PCIe specification supported.\\
+\hline
+commandStatus.commandRegister & uint64 & The PCI command register value.\\
+commandStatus.statusRegister & uint64 & The PCI status register value.\\
+\hline
+deviceID & object & A PCIe Device ID structure as defined in Subsection \ref{pciedeviceidstructure}.\\
+\hline
+deviceSerialNumber & uint64 & The serial number of the device.\\
+\hline
+bridgeControlStatus.secondaryStatusRegister & uint64 & The bridge secondary status register. \emph{This field is valid for bridges only.}\\
+\hline
+bridgeControlStatus.controlRegister & uint64 & The bridge control register. \emph{This field is valid for bridges only.}\\
+\hline
+capabilityStructure.data & string & A base-64 formatted binary dump of the PCIe capability structure for this device. The structure could either be a PCIe 1.1 Capability Structure (36-byte, padded to 60 bytes) or a PCIe 2.0 Capability Structure (60-byte).\\
+\hline
+aerInfo & object & A PCIe AER Extended Capability structure, as defined in Subsection \ref{subsection:pcieaerecstructure}.\\
+\jsontableend{PCIe Error structure field table.}
+
+% PCIe error validation structure.
+\subsection{PCIe Error Validation Structure}
+\label{subsection:pcieerrorvalidationstructure}
+This structure describes which fields within a PCIe Error section (\ref{section:pcieerrorsection}) are valid, using boolean fields.
+\jsontable{table:pcieerrorvalidationstructure}
+portTypeValid & boolean & Whether the "portType" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+versionValid & boolean & Whether the "version" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+commandStatusValid & boolean & Whether the "commandStatus" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+deviceIDValid & boolean & Whether the "deviceID" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+deviceSerialNumber & boolean & Whether the "deviceSerialNumber" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+bridgeControlStatusValid & boolean & Whether the "bridgeControlStatus" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+capabilityStructureStatusValid & boolean & Whether the "capabilityStructure" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+aerInfoValid & boolean & Whether the "aerInfo" field within a PCIe Error section (\ref{section:pcieerrorsection}) is valid.\\
+\hline
+\jsontableend{PCIe Error validation structure field table.}
+
+% PCIe Device ID structure.
+\subsection{PCIe Device ID Structure}
+\label{subsection:pciedeviceidstructure}
+This structure describes a PCIe device ID, for use in a PCI Error section (\ref{table:pcieerrorsection}).
+\jsontable{table:pciedeviceidstructure}
+vendorID & uint64 & The vendor ID of the PCIe device.\\
+\hline
+deviceID & uint64 & The device ID of the PCIe device.\\
+\hline
+classCode & uint64 & The class code of the PCIe device.\\
+\hline
+functionNumber & uint64 & The function number of the PCIe device.\\
+\hline
+deviceNumber & uint64 & The device number of the PCIe device.\\
+\hline
+segmentNumber & uint64 & The segment number of the PCIe device.\\
+\hline
+primaryOrDeviceBusNumber & uint64 & The root port/bridge primary bus number or device bus number of the PCIe device.\\
+\hline
+secondaryBusNumber & uint64 & The root port/bridge secondary bus number of the PCIe device.\\
+\hline
+slotNumber & uint64 & The slot number of the PCIe device.\\
+\jsontableend{PCIe Device ID structure field table.}
+
+% PCIe Advanced Error Reporting Extended Capability structure.
+\subsection{PCIe AER Extended Capability Structure}
+\label{subsection:pcieaerecstructure}
+This structure describes a PCIe Advanced Error Reporting Extended Capability structure, for use in a PCI Error section (\ref{table:pcieerrorsection}).
+\jsontable{table:pcieaerecstructure}
+capabilityID & uint64 & The capability ID for this AER structure.\\
+\hline
+capabilityVersion & uint64 & The capability structure version for this AER structure.\\
+\hline
+uncorrectableErrorStatusRegister & uint64 & The uncorrectable error status register value.\\
+\hline
+uncorrectableErrorMaskRegister & uint64 & The uncorrectable error mask register value.\\
+\hline
+uncorrectableErrorSeverityRegister & uint64 & The uncorrectable error severity register value.\\
+\hline
+uncorrectableErrorMaskRegister & uint64 & The uncorrectable error mask register value.\\
+\hline
+aeccReg & uint64 & The AECC register value.\\
+\hline
+headerLogRegister & string & A base64-encoded binary dump of the header log register.\\
+\hline
+rootErrorCommand & uint64 & The root error command.\\
+\hline
+rootErrorStatus & uint64 & The root error status.\\
+\hline
+errorSourceIDRegister & uint64 & The error source ID register.\\
+\hline
+correctableErrorSourceIDRegister & uint64 & The correctable error source ID register.\\
+\jsontableend{PCIe AER Extended Capability structure field table.}
+
+% PCI/PCI-X Bus error section.
+\section{PCI/PCI-X Bus Error Section}
+\label{section:pcibuserrorsection}
+This section describes the JSON format for a single PCI/PCI-X Bus Error Section from a CPER record. The GUID used for PCI/PCI-X Bus Error Sections is \texttt{\{ 0xc5753963, 0x3b84, 0x4095, \{ 0xbf, 0x78, 0xed, 0xda, 0xd3, 0xf9, 0xc9, 0xdd \}\}}.
+\jsontable{table:pcibuserrorsection}
+validationBits & object & A PCI/PCI-X Bus Error Validation structure, as described in Subsection \ref{subsection:pcibuserrorvalidationstructure}.\\
+\hline
+errorStatus & object & A CPER Generic Error Status structure, as described in Subsection \ref{subsection:genericerrorstatusstructure}.\\
+\hline
+errorType.value & uint64 & The raw value of the error type for this bus error.\\
+errorType.name & string & The human readable name, if available, of the error type for this bus error.\\
+\hline
+busID.busNumber & int & The bus number of this bus ID.\\
+busID.segmentNumber & int & The segment number of this bus ID.\\
+\hline
+busAddress & uint64 & The memory or I/O address on the bus at the time of the error.\\
+\hline
+busData & uint64 & Data on the bus at the time of the error.\\
+\hline
+busCommandType & string & The type of command at the time of the error. Either "PCI" or "PCI-X".\\
+\hline
+busRequestorID & uint64 & The PCI bus requestor ID for the error.\\
+\hline
+busCompleterID & uint64 & The PCI bus completer ID for the error.\\
+\hline
+targetID & uint64 & The PCI bus intended target ID for the error.\\
+\jsontableend{PCI/PCI-X Bus Error structure field table.}
+
+% PCI/PCI-X Bus error validation structure.
+\subsection{PCI/PCI-X Bus Error Validation Structure}
+\label{subsection:pcibuserrorvalidationstructure}
+This structure describes which fields within a PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) are valid, using boolean fields.
+\jsontable{table:pcibuserrorvalidationstructure}
+errorStatusValid & boolean & Whether the "errorStatus" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+errorTypeValid & boolean & Whether the "errorType" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+busIDValid & boolean & Whether the "busID" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+busAddressValid & boolean & Whether the "busAddress" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+busDataValid & boolean & Whether the "busData" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+commandValid & boolean & Whether the "busCommandType" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+requestorIDValid & boolean & Whether the "busRequestorID" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+completerIDValid & boolean & Whether the "busCompleterID" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\hline
+targetIDValid & boolean & Whether the "targetID" field of the PCI/PCI-X Bus Error section (\ref{section:pcibuserrorsection}) is valid.\\
+\jsontableend{PCI/PCI-X Bus Error validation structure field table.}
+
+% PCI/PCI-X Component error section.
+\section{PCI/PCI-X Component Error Section}
+\label{section:pcicomponenterrorsection}
+This section describes the JSON format for a single PCI/PCI-X Component Error Section from a CPER record. The GUID used for PCI/PCI-X Component Error Sections is \texttt{\{ 0xeb5e4685, 0xca66, 0x4769, \{ 0xb6, 0xa2, 0x26, 0x06, 0x8b, 0x00, 0x13, 0x26 \}\}}.
+\jsontable{table:pcicomponenterrorsection}
+validationBits & object & A PCI/PCI-X Component Error Validation structure, as defined in Subsection \ref{subsection:pcicomponenterrorvalidationstructure}.\\
+\hline
+idInfo & object & A PCI/PCI-X Component ID structure, as defined in Subsection \ref{subsection:pcicomponentidstructure}.\\
+\hline
+memoryNumber & uint64 & The number of PCI/PCI-X component memory mapped register address/data pair values are present in this structure.\\
+\hline
+ioNumber & uint64 & The number of PCI/PCI-X component programmed I/O register address/data pair values are present in this structure.\\
+\hline
+registerDataPairs & array & An array of PCI/PCI-X Component Register Pair structures, as defined in Subsection \ref{subsection:pcicomponentregisterpairstructure}. The length corresponds to the amounts listed in fields \texttt{memoryNumber} and \texttt{ioNumber}.\\
+\jsontableend{PCI/PCI-X Component Error structure field table.}
+
+% PCI/PCI-X Component error validation structure.
+\subsection{PCI/PCI-X Component Error Validation Structure}
+\label{subsection:pcicomponenterrorvalidationstructure}
+This structure describes which fields within a PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}) are valid, using boolean fields.
+\jsontable{table:pcicomponenterrorvalidationstructure}
+errorStatusValid & boolean & Whether the "errorStatus" field of the PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}) is valid.\\
+\hline
+idInfoValid & boolean & Whether the "idInfo" field of the PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}) is valid.\\
+\hline
+memoryNumberValid & boolean & Whether the "memoryNumber" field of the PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}) is valid.\\
+\hline
+ioNumberValid & boolean & Whether the "ioNumber" field of the PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}) is valid.\\
+\hline
+registerDataPairsValid & boolean & Whether the "registerDataPairs" field of the PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}) is valid.\\
+\jsontableend{PCI/PCI-X Component Error validation structure field table.}
+
+% PCI/PCI-X Component ID structure.
+\subsection{PCI/PCI-X Component ID Structure}
+\label{subsection:pcicomponentidstructure}
+This structure describes the ID of a single PCI/PCI-X component for use in a PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}).
+\jsontable{table:pcicomponentidstructure}
+vendorID & uint64 & The vendor ID of this PCI/PCI-X component.\\
+\hline
+deviceID & uint64 & The device ID of this PCI/PCI-X component.\\
+\hline
+classCode & uint64 & The class code of this PCI/PCI-X component.\\
+\hline
+functionNumber & uint64 & The function number of this PCI/PCI-X component.\\
+\hline
+deviceNumber & uint64 & The device number of this PCI/PCI-X component.\\
+\hline
+busNumber & uint64 & The bus number of this PCI/PCI-X component.\\
+\hline
+segmentNumber & uint64 & The segment number of this PCI/PCI-X component.\\
+\jsontableend{PCI/PCI-X Component ID structure field table.}
+
+% PCI/PCI-X Component Register Pair structure.
+\subsection{PCI/PCI-X Component Register Pair Structure}
+\label{subsection:pcicomponentregisterpairstructure}
+This structure describes a single pair of registers from a PCI/PCI-X component for use in a PCI/PCI-X Component Error section (\ref{section:pcicomponenterrorsection}). The actual "pairs" of address and data aren't necessarily all 16 bytes allocated long, and there is no field to indicate their length, so do not assume that the address is in the first field and the data in the second.
+\jsontable{table:pcicomponentregisterpairstructure}
+firstHalf & uint64 & The first 8 bytes of the 16 byte register pair structure.\\
+\hline
+secondHalf & uint64 & The second 8 bytes of the 16 byte register pair structure.\\
+\jsontableend{PCI/PCI-X Component Register Pair structure field table.}
+
+% Firmware error section.
+\section{Firmware Error Section}
+\label{section:firmwareerrorsection}
+This section describes the JSON format for a single Firmware Error Section from a CPER record. The GUID used for Firmware Error Sections is \texttt{\{ 0x81212a96, 0x09ed, 0x4996, \{ 0x94, 0x71, 0x8d, 0x72, 0x9c, 0x8e, 0x69, 0xed \}\}}.
+\jsontable{table:firmwareerrorsection}
+errorRecordType.value & uint64 & The raw value of the type of firmware error record this is.\\
+errorRecordType.name & string & The human readable name, if available, of the type of firmware error record this is.\\
+\hline
+revision & int & The header revision of this record. For the referenced UEFI specification, this value is 2.\\
+\hline
+recordID & uint64 & Identifier for the referenced firmware error record. When the \texttt{revision} field is greater than 1 (which is expected here), this value will be null.\\
+\hline
+recordIDGUID & string & GUID of the firmware error record referenced by this section. \textbf{This field is only valid when the \texttt{errorRecordType} field has a value of 2.} Otherwise, this field is ignored.\\
+\jsontableend{Firmware Error structure field table.}
+
+% Generic DMAr error section.
+\section{Generic DMAr Error Section}
+\label{section:dmargenericerrorsection}
+This section describes the JSON format for a single Generic DMAr Error Section from a CPER record. The GUID used for Generic DMAr Error Sections is \texttt{\{ 0x5b51fef7, 0xc79d, 0x4434, \{ 0x8f, 0x1b, 0xaa, 0x62, 0xde, 0x3e, 0x2c, 0x64 \}\}}.
+\jsontable{table:dmargenericerrorsection}
+requesterID & int & The device ID associated with the fault condition.\\
+\hline
+segmentNumber & int & The segment number associated with the device.\\
+\hline
+faultReason.value & uint64 & The raw value of the reason for the fault.\\
+faultReason.name & string & The human readable name, if available, of the reason for the fault.\\
+faultReason.description & string & A human readable description, if available, of the reason for the fault.\\
+\hline
+accessType.value & uint64 & The raw value of the access type that caused the fault.\\
+accessType.name & string & The human readable name, if available, of the access type that caused the fault.\\
+\hline
+addressType.value & uint64 & The raw value of the addressing type that caused the fault.\\
+addressType.name & string & The human readable name, if available, of the addressing type that caused the fault.\\
+\hline
+architectureType.value & uint64 & The raw value of the DMAr architecture type.\\
+architectureType.name & string & The human readable name, if available, of the DMAr architecture type.\\
+\hline
+deviceAddress & uint64 & The 64-bit device virtual address contained in the faulted DMA request.\\
+\jsontableend{Generic DMAr Error structure field table.}
+
+% VT-d DMAr error section.
+\section{VT-d DMAr Error Section}
+\label{section:vtddmarerrorsection}
+This section describes the JSON format for a single VT-d DMAr Error Section from a CPER record. The GUID used for VT-d DMAr Error Sections is \texttt{\{ 0x71761d37, 0x32b2, 0x45cd, \{ 0xa7, 0xd0, 0xb0, 0xfe, 0xdd, 0x93, 0xe8, 0xcf \}\}}.
+\jsontable{table:vtddmarerrorsection}
+version & int & Version register value as defined in the VT-d specification.\\
+\hline
+revision & int & Revision field in VT-d specific DMA remapping reporting structure.\\
+\hline
+oemID & uint64 & OEM ID field in VT-d specific DMA remapping reporting structure.\\
+\hline
+capabilityRegister & uint64 & Value of VT-d capability register.\\
+\hline
+extendedCapabilityRegister & uint64 & Value of VT-d extended capability register.\\
+\hline
+globalCommandRegister & uint64 & Value of VT-d global command register.\\
+\hline
+globalStatusRegister & uint64 & Value of VT-d global status register.\\
+\hline
+faultStatusRegister & uint64 & Value of VT-d fault status register.\\
+\hline
+faultRecord & object & A VT-d DMAR Fault Record structure, as defined in Subsection .\\
+\hline
+rootEntry & string & A base64-represented binary dump of the root entry table for the associated requester ID.\\
+\hline
+contextEntry & string & A base64-represented binary dump of the context entry table for the associated requester ID.\\
+\hline
+pageTableEntry\_Level6 & uint64 & The page table entry for the device virtual address in page level 6.\\
+\hline
+pageTableEntry\_Level5 & uint64 & The page table entry for the device virtual address in page level 5.\\
+\hline
+pageTableEntry\_Level4 & uint64 & The page table entry for the device virtual address in page level 4.\\
+\hline
+pageTableEntry\_Level3 & uint64 & The page table entry for the device virtual address in page level 3.\\
+\hline
+pageTableEntry\_Level2 & uint64 & The page table entry for the device virtual address in page level 2.\\
+\hline
+pageTableEntry\_Level1 & uint64 & The page table entry for the device virtual address in page level 1.\\
+\jsontableend{VT-d DMAr Error structure field table.}
+
+% VT-d DMAR Fault Record structure.
+\subsection{VT-d DMAR Fault Record Structure}
+\label{subsection:vtddmarfaultrecordstructure}
+This structure describes a fault record, which forms part of a single VT-d DMAr Error section (\ref{section:vtddmarerrorsection}).
+\jsontable{table:vtddmarfaultrecordstructure}
+faultInformation & uint64 & Fault information field as defined in the VT-d specification.\\
+\hline
+sourceIdentifier & uint64 & Identifier of the source of the VT-d fault.\\
+\hline
+privelegeModeRequested & boolean & Whether privelege mode was requested.\\
+\hline
+executePermissionRequested & boolean & Whether execute permission was requested.\\
+\hline
+pasidPresent & boolean & Whether the "pasidValue" field contains valid data.\\
+\hline
+faultReason & uint64 & The reason for the VT-d fault, as defined in the VT-d specification.\\
+\hline
+pasidValue & uint64 & The PASID associated with the fault.\\
+\hline
+addressType & uint64 & The addressing type of the fault, as defined by the VT-d specification.\\
+\hline
+type.value & uint64 & The raw value of the type of VT-d fault record.\\
+type.name & string & The human readable name, if available, of the type of VT-d fault record.\\
+\jsontableend{VT-d DMAR Fault Record structure field table.}
+
+% IOMMU DMAr error section.
+\section{IOMMU DMAr Error Section}
+\label{section:iommudmarerrorsection}
+This section describes the JSON format for a single IOMMU DMAr Error Section from a CPER record. The GUID used for IOMMU DMAr Error Sections is \texttt{\{ 0x036f84e1, 0x7f37, 0x428c, \{ 0xa7, 0x9e, 0x57, 0x5f, 0xdf, 0xaa, 0x84, 0xec \}\}}.
+\jsontable{table:iommudmarerrorsection}
+revision & int & The IOMMU specification revision.\\
+\hline
+controlRegister & uint64 & The IOMMU control register value.\\
+\hline
+statusRegister & uint64 & The IOMMU status register value.\\
+\hline
+eventLogEntry & string & A base-64 binary dump of the IOMMU fault-related event log entry, as defined in the IOMMU specification.\\
+\hline
+deviceTableEntry & string & A base-64 representation of the value from the device table for a given requester ID.\\
+\hline
+pageTableEntry\_Level6 & uint64 & Page table entry for device virtual address in page level 6.\\
+\hline
+pageTableEntry\_Level5 & uint64 & Page table entry for device virtual address in page level 5.\\
+\hline
+pageTableEntry\_Level4 & uint64 & Page table entry for device virtual address in page level 4.\\
+\hline
+pageTableEntry\_Level3 & uint64 & Page table entry for device virtual address in page level 3.\\
+\hline
+pageTableEntry\_Level2 & uint64 & Page table entry for device virtual address in page level 2.\\
+\hline
+pageTableEntry\_Level1 & uint64 & Page table entry for device virtual address in page level 1.\\
+\jsontableend{IOMMU DMAr Error structure field table.}
+
+% CCIX PER error section.
+\section{CCIX PER Error Section}
+\label{section:ccixpererrorsection}
+This section describes the JSON format for a single CCIX PER Error Section from a CPER record. The GUID used for CCIX PER Error Sections is \texttt{\{ 0x91335EF6, 0xEBFB, 0x4478, \{0xA6, 0xA6, 0x88, 0xB7, 0x28, 0xCF, 0x75, 0xD7 \}\}}.
+\jsontable{table:ccixpererrorsection}
+length & uint64 & The length (in bytes) of the entire structure.\\
+\hline
+validationBits & object & A CCIX PER Validation structure as described in Subsection \ref{subsection:vtddmarfaultrecordstructure}.\\
+\hline
+ccixSourceID & int & If the agent is an HA, SA, or RA, this indicates the CCIX Agent ID of the reporting component. Otherwise, this is the CCIX Device ID.\\
+\hline
+ccixPortID & int & The CCIX Port ID that reported this error.\\
+\hline
+ccixPERLog & string & A base64-represented binary dump of the CCIX PER Log structure, as defined in Section 7.3.2 of the CCIX Base Specification (Rev. 1.0).\\
+\jsontableend{CCIX PER Error structure field table.}
+
+% CCIX PER Validation structure.
+\subsection{CCIX PER Validation Structure}
+\label{subsection:ccixpervalidationstructure}
+This structure describes which fields are valid in a CCIX PER Error section (\ref{section:ccixpererrorsection}) using boolean fields.
+\jsontable{table:ccixpervalidationstructure}
+ccixSourceIDValid & boolean & Whether the "ccixSourceID" field in the CCIX PER Error Section (\ref{section:ccixpererrorsection}) is valid.\\
+\hline
+ccixPortIDValid & boolean & Whether the "ccixPortID" field in the CCIX PER Error Section (\ref{section:ccixpererrorsection}) is valid.\\
+\hline
+ccixPERLogValid & boolean & Whether the "ccixPERLog" field in the CCIX PER Error Section (\ref{section:ccixpererrorsection}) is valid.\\
+\jsontableend{CCIX PER validation structure field table.}
+
+% CXL Protocol error section.
+\section{CXL Protocol Error Section}
+\label{section:cxlprotocolerrorsection}
+This section describes the JSON format for a single CXL Protocol Error Section from a CPER record. The GUID used for CXL Protocol Error Sections is \texttt{\{ 0x80B9EFB4, 0x52B5, 0x4DE3, \{ 0xA7, 0x77, 0x68, 0x78, 0x4B, 0x77, 0x10, 0x48 \}\}}.
+\jsontable{table:cxlprotocolerrorsection}
+validationBits & object & A CXL Protocol Validation structure as defined in Subsection \ref{subsection:cxlprotocolvalidationstructure}.\\
+\hline
+agentType.value & uint64 & The raw value of the detecting CXL agent type.\\
+agentType.name & string & The human readable name, if available, of the CXL agent type.\\
+\hline
+agentAddress & object & One of the structures described in Subsection \ref{subsection:cxlprotocoldeviceagentaddressstructure} or Subsection \ref{subsection:cxlprotocolrcrbaddressstructure}. Included structure is dependent on the \texttt{agentType.value} field.\\
+\hline
+deviceID & object & A CXL Device ID structure, as defined in Subsection \ref{subsection:cxlprotocoldeviceidstructure}.\\
+\hline
+deviceSerial & object (\textbf{optional}) & The CXL device serial number. Only included if the detecting device is a CXL device (field \texttt{agentType.value} has value 0).\\
+\hline
+capabilityStructure & string & A base64-encoded binary dump of the CXL device's PCIe capability structure. This could either be a PCIe 1.1 Capability Structure (36-byte, padded to 60 bytes), or a PCIe 2.0 Capability Structure (60-byte). Only included if the detecting device is a CXL device (field \texttt{agentType.value} has value 0).\\
+\hline
+dvsecLength & int & Length (in bytes) of the CXL DVSEC structure.\\
+\hline
+errorLogLength & int & Length (in bytes) of the CXL Error Log structure.\\
+\hline
+cxlDVSEC & string & A base64-encoded dump of the CXL DVSEC structure. For CXL 1.1 devices, this is a "CXL DVSEC For Flex Bus Devices" structure as defined in the CXL 1.1 specification. For CXL 1.1 host downstream ports, this is the "CXL DVSEC For Flex Bus Port" structure as defined in the CXL 1.1 specification.\\
+\hline
+cxlErrorLog & string & A base64-encoded dump of the CXL error log. This field contains a copy of "CXL RAS Capability Structure", as defined in the CXL 1.1 specification.\\
+\jsontableend{CXL Protocol Error structure field table.}
+
+% CXL Protocol Validation structure.
+\subsection{CXL Protocol Validation Structure}
+\label{subsection:cxlprotocolvalidationstructure}
+This structure describes which fields are valid in a CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) using boolean fields.
+\jsontable{table:cxlprotocolvalidationstructure}
+cxlAgentTypeValid & boolean & Whether the "cxlAgentType" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\hline
+cxlAgentAddressValid & boolean & Whether the "cxlAgentAddress" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\hline
+deviceID & boolean & Whether the "deviceID" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\hline
+deviceSerialValid & boolean & Whether the "deviceSerial" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\hline
+capabiltyStructureValid & boolean & Whether the "capabilityStructure" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\hline
+cxlDVSECValid & boolean & Whether the "cxlDVSEC" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\hline
+cxlErrorLogValid & boolean & Whether the "cxlErrorLog" field in the CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}) is valid.\\
+\jsontableend{CXL Protocol validation structure field table.}
+
+% CXL Protocol Device Agent Address structure.
+\subsection{CXL Protocol Device Agent Address Structure}
+\label{subsection:cxlprotocoldeviceagentaddressstructure}
+This structure describes the address of a single CXL device agent, for use in a CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}). Included when the \texttt{agentType.value} field has the value "0".
+\jsontable{table:cxlprotocoldeviceagentaddressstructure}
+functionNumber & uint64 & The function number of the CXL device.\\
+\hline
+deviceNumber & uint64 & The device number of the CXL device.\\
+\hline
+busNumber & uint64 & The bus number of the CXL device.\\
+\hline
+segmentNumber & uint64 & The segment number of the CXL device.\\
+\jsontableend{CXL Protocol Device Agent Address structure field table.}
+
+% CXL Protocol RCRB Base Address structure.
+\subsection{CXL Protocol RCRB Base Address Structure}
+\label{subsection:cxlprotocolrcrbaddressstructure}
+This structure describes an RCRB base address, for use in a CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}). Included when the \texttt{agentType.value} field has the value "1".
+\jsontable{table:cxlprotocolrcrbaddressstructure}
+value & uint64 & The CXL port RCRB base address.\\
+\jsontableend{CXL Protocol RCRB Base Address structure field table.}
+
+% CXL Protocol Device ID structure.
+\subsection{CXL Protocol Device ID Structure}
+\label{subsection:cxlprotocoldeviceidstructure}
+This structure describes the ID of a CXL device, for use in a CXL Protocol Error section (\ref{section:cxlprotocolerrorsection}).
+\jsontable{table:cxlprotocoldeviceidstructure}
+vendorID & uint64 & The vendor ID of the CXL device.\\
+\hline
+deviceID & uint64 & The device ID of the CXL device.\\
+\hline
+subsystemVendorID & uint64 & The subsystem vendor ID of the CXL device.\\
+\hline
+subsystemDeviceID & uint64 & The subsystem device ID of the CXL device.\\
+\hline
+classCode & uint64 & The class code of the CXL device.\\
+\hline
+slotNumber & uint64 & The slot number of the CXL device.\\
+\jsontableend{CXL Protocol Device ID structure field table.}
+
+% CXL Component error section.
+\section{CXL Component Error Section}
+\label{section:cxlcomponenterrorsection}
+This section describes the JSON format for a single CXL Component Error Section from a CPER record. There are several GUIDs used for CXL Component Error Sections, of which defined are:\\
+\begin{itemize}
+    \item CXL General Media Error (\texttt{\{ 0xfbcd0a77, 0xc260, 0x417f, \{ 0x85, 0xa9, 0x08, 0x8b, 0x16, 0x21, 0xeb, 0xa6 \}\}})\\
+    \item CXL DRAM Event Error (\texttt{\{ 0x601dcbb3, 0x9c06, 0x4eab, \{ 0xb8, 0xaf, 0x4e, 0x9b, 0xfb, 0x5c, 0x96, 0x24 \}\}})\\
+    \item CXL Memory Module Error (\texttt{\{ 0xfe927475, 0xdd59, 0x4339, \{ 0xa5, 0x86, 0x79, 0xba, 0xb1, 0x13, 0xb7, 0x74 \}\}})\\
+    \item CXL Physical Switch Error (\texttt{\{ 0x77cf9271, 0x9c02, 0x470b, \{ 0x9f, 0xe4, 0xbc, 0x7b, 0x75, 0xf2, 0xda, 0x97 \}\}})\\
+    \item CXL Virtual Switch Error (\texttt{\{ 0x40d26425, 0x3396, 0x4c4d, \{ 0xa5, 0xda, 0x3d, 0x47, 0x26, 0x3a, 0xf4, 0x25 \}\}})\\
+    \item CXL MLD Port Error (\texttt{\{ 0x8dc44363, 0x0c96, 0x4710, \{ 0xb7, 0xbf, 0x04, 0xbb, 0x99, 0x53, 0x4c, 0x3f \}\}})\\
+\end{itemize}
+\jsontable{table:cxlcomponenterrorsection}
+
+\jsontableend{CXL Protocol Error structure field table.}
+
 \end{document}
\ No newline at end of file
