Fix minor errors in spec, add JSON specification.
diff --git a/specification/json/common/cper-json-error-status.json b/specification/json/common/cper-json-error-status.json
new file mode 100644
index 0000000..4db531c
--- /dev/null
+++ b/specification/json/common/cper-json-error-status.json
@@ -0,0 +1,45 @@
+{
+    "$id": "cper-json-error-status",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["errorType", "addressSignal", "controlSignal", "dataSignal", "detectedByResponder", "detectedByRequester", "firstError", "overflowDroppedLogs"],
+    "additionalProperties": false,
+    "properties": {
+        "errorType": {
+            "type": "object",
+            "required": ["name", "value", "description"],
+            "properties": {
+                "name": {
+                    "type": "string"
+                },
+                "value": {
+                    "type": "integer"
+                },
+                "description": {
+                    "type": "string"
+                }
+            }
+        },
+        "addressSignal": {
+            "type": "boolean"
+        },
+        "controlSignal": {
+            "type": "boolean"
+        },
+        "dataSignal": {
+            "type": "boolean"
+        },
+        "detectedByResponder": {
+            "type": "boolean"
+        },
+        "detectedByRequester": {
+            "type": "boolean"
+        },
+        "firstError": {
+            "type": "boolean"
+        },
+        "overflowDroppedLogs": {
+            "type": "boolean"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/common/cper-json-nvp.json b/specification/json/common/cper-json-nvp.json
new file mode 100644
index 0000000..6e57c90
--- /dev/null
+++ b/specification/json/common/cper-json-nvp.json
@@ -0,0 +1,15 @@
+{
+    "$id": "cper-json-namevaluepair",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["name", "value"],
+    "additionalProperties": false,
+    "properties": {
+        "name": {
+            "type": "string"
+        },
+        "value": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/cper-json-header.json b/specification/json/cper-json-header.json
new file mode 100644
index 0000000..68a9387
--- /dev/null
+++ b/specification/json/cper-json-header.json
@@ -0,0 +1,97 @@
+{
+    "$id": "cper-json-header",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["revision", "sectionCount", "severity", "validationBits", "recordLength", "creatorID", "notificationType", "recordID", "flags", "persistenceInfo"],
+    "additionalProperties": false,
+    "properties": {
+        "revision": {
+            "type": "object",
+            "required": ["major", "minor"],
+            "properties": {
+                "major": {
+                    "type": "integer",
+                    "minimum": 0
+                },
+                "minor": {
+                    "type": "integer",
+                    "minimum": 0
+                }
+            }
+        },
+        "sectionCount": {
+            "type": "integer",
+            "minimum": 0
+        },
+        "severity": {
+            "type": "object",
+            "required": ["name", "code"],
+            "properties": {
+                "name": {
+                    "type": "string"
+                },
+                "code": {
+                    "type": "integer",
+                    "minimum": 0
+                }
+            }
+        },
+        "validationBits": {
+            "type": "object",
+            "required": ["platformIDValid", "timestampValid", "partitionIDValid"],
+            "properties": {
+                "platformIDValid": {
+                    "type": "boolean"
+                },
+                "timestampValid": {
+                    "type": "boolean"
+                },
+                "partitionIDValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "recordLength": {
+            "type": "integer",
+            "minimum": 0
+        },
+        "timestamp": {
+            "type": "string"
+        },
+        "timestampIsPrecise": {
+            "type": "boolean"
+        },
+        "platformID": {
+            "type": "string"
+        },
+        "partitionID": {
+            "type": "string"
+        },
+        "creatorID": {
+            "type": "string"
+        },
+        "notificationType": {
+            "type": "object",
+            "required": ["guid", "type"],
+            "properties": {
+                "guid": {
+                    "type": "string",
+                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
+                },
+                "type": {
+                    "type": "string"
+                }
+            }
+        },
+        "recordID": {
+            "type": "integer"
+        },
+        "flags": {
+            "type": "object",
+            "$ref": "./common/cper-json-nvp.json"
+        },
+        "persistenceInfo": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/cper-json-section-descriptor.json b/specification/json/cper-json-section-descriptor.json
new file mode 100644
index 0000000..6148a5b
--- /dev/null
+++ b/specification/json/cper-json-section-descriptor.json
@@ -0,0 +1,103 @@
+{
+    "$id": "cper-json-section-descriptor",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["sectionOffset", "sectionLength", "revision", "validationBits", "flags", "sectionType", "severity"],
+    "additionalProperties": false,
+    "properties": {
+        "sectionOffset": {
+            "type": "integer"
+        },
+        "sectionLength": {
+            "type": "integer"
+        },
+        "revision": {
+            "type": "object",
+            "required": ["major", "minor"],
+            "properties": {
+                "major": {
+                    "type": "integer",
+                    "minimum": 0
+                },
+                "minor": {
+                    "type": "integer",
+                    "minimum": 0
+                }
+            }
+        },
+        "validationBits": {
+            "type": "object",
+            "required": ["fruIDValid", "fruStringValid"],
+            "properties": {
+                "fruIDValid": {
+                    "type": "boolean"
+                },
+                "fruStringValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "flags": {
+            "type": "object",
+            "required": ["primary", "containmentWarning", "reset", "errorThresholdExceeded", "resourceNotAccessible", "latentError", "propagated", "overflow"],
+            "properties": {
+                "primary": {
+                    "type": "boolean"
+                },
+                "containmentWarning": {
+                    "type": "boolean"
+                },
+                "reset": {
+                    "type": "boolean"
+                },
+                "errorThresholdExceeded": {
+                    "type": "boolean"
+                },
+                "resourceNotAccessible": {
+                    "type": "boolean"
+                },
+                "latentError": {
+                    "type": "boolean"
+                },
+                "propagated": {
+                    "type": "boolean"
+                },
+                "overflow": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "sectionType": {
+            "type": "object",
+            "required": ["data", "name"],
+            "properties": {
+                "data": {
+                    "type": "string",
+                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "fruID": {
+            "type": "string"
+        },
+        "severity": {
+            "type": "object",
+            "required": ["code", "name"],
+            "properties": {
+                "code": {
+                    "type": "integer",
+                    "minimum": 0
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "fruText": {
+            "type": "string"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/cper-json.json b/specification/json/cper-json.json
new file mode 100644
index 0000000..e0e7133
--- /dev/null
+++ b/specification/json/cper-json.json
@@ -0,0 +1,43 @@
+{
+    "$id": "cper-json",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "description": "JSON Schema for the CPER-JSON format, as described in the CPER-JSON specification document.",
+    "type": "object",
+    "required": ["header", "sectionDescriptors", "sections"],
+    "additionalProperties": false,
+    "properties": {
+        "header": {
+            "$ref": "./cper-json-header.json"
+        },
+        "sectionDescriptors": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "$ref": "./cper-json-section-descriptor.json"
+            }
+        },
+        "sections": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "oneOf": [
+                    { "$ref": "./sections/cper-generic-processor.json" },
+                    { "$ref": "./sections/cper-ia32x64-processor.json" },
+                    { "$ref": "./sections/cper-arm-processor.json" },
+                    { "$ref": "./sections/cper-memory.json" },
+                    { "$ref": "./sections/cper-memory2.json" },
+                    { "$ref": "./sections/cper-pcie.json" },
+                    { "$ref": "./sections/cper-pci-bus.json" },
+                    { "$ref": "./sections/cper-pci-component.json" },
+                    { "$ref": "./sections/cper-firmware.json" },
+                    { "$ref": "./sections/cper-generic-dmar.json" },
+                    { "$ref": "./sections/cper-vtd-dmar.json" },
+                    { "$ref": "./sections/cper-iommu-dmar.json" },
+                    { "$ref": "./sections/cper-ccix-per.json" },
+                    { "$ref": "./sections/cper-cxl-protocol.json" },
+                    { "$ref": "./sections/cper-cxl-component.json" }
+                ]
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-arm-processor.json b/specification/json/sections/cper-arm-processor.json
new file mode 100644
index 0000000..55b1dbc
--- /dev/null
+++ b/specification/json/sections/cper-arm-processor.json
@@ -0,0 +1,523 @@
+{
+    "$id": "cper-json-arm-processor-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "errorInfoNum", "contextInfoNum", "sectionLength", "errorAffinity", "mpidrEl1", "midrEl1", "running", "errorInfo", "contextInfo"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["mpidrValid", "errorAffinityLevelValid", "runningStateValid", "vendorSpecificInfoValid"],
+            "properties": {
+                "mpidrValid": {
+                    "type": "boolean"
+                },
+                "errorAffinityLevelValid": {
+                    "type": "boolean"
+                },
+                "runningStateValid": {
+                    "type": "boolean"
+                },
+                "vendorSpecificInfoValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "errorInfoNum": {
+            "type": "integer"
+        },
+        "contextInfoNum": {
+            "type": "integer"
+        },
+        "sectionLength": {
+            "type": "integer"
+        },
+        "errorAffinity": {
+            "type": "object",
+            "required": ["value", "type"],
+            "properties": {
+                "value": {
+                    "type": "integer"
+                },
+                "type": {
+                    "type": "string"
+                }
+            }
+        },
+        "mpidrEl1": {
+            "type": "integer"
+        },
+        "midrEl1": {
+            "type": "integer"
+        },
+        "running": {
+            "type": "boolean"
+        },
+        "psciState": {
+            "type": "integer"
+        },
+        "errorInfo": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "required": ["version", "length", "validationBits", "errorType", "multipleError", "flags", "errorInformation", "virtualFaultAddress", "physicalFaultAddress"],
+                "additionalProperties": false,
+                "properties": {
+                    "version": {
+                        "type": "integer"
+                    },
+                    "length": {
+                        "type": "integer"
+                    },
+                    "validationBits": {
+                        "type": "object",
+                        "required": ["multipleErrorValid", "flagsValid", "errorInformationValid", "virtualFaultAddressValid", "physicalFaultAddressValid"],
+                        "properties": {
+                            "multipleErrorValid": {
+                                "type": "boolean"
+                            },
+                            "flagsValid": {
+                                "type": "boolean"
+                            },
+                            "errorInformationValid": {
+                                "type": "boolean"
+                            },
+                            "virtualFaultAddressValid": {
+                                "type": "boolean"
+                            },
+                            "physicalFaultAddressValid": {
+                                "type": "boolean"
+                            }
+                        }
+                    },
+                    "errorType": {
+                        "type": "object",
+                        "$ref": "../common/cper-json-nvp.json"
+                    },
+                    "multipleError": {
+                        "type": "object",
+                        "$ref": "../common/cper-json-nvp.json"
+                    },
+                    "flags": {
+                        "type": "object",
+                        "required": ["firstErrorCaptured", "lastErrorCaptured", "propagated", "overflow"],
+                        "properties": {
+                            "firstErrorCaptured": {
+                                "type": "boolean"
+                            },
+                            "lastErrorCaptured": {
+                                "type": "boolean"
+                            },
+                            "propagated": {
+                                "type": "boolean"
+                            },
+                            "overflow": {
+                                "type": "boolean"
+                            }
+                        }
+                    },
+                    "errorInformation": {
+                        "type": "object",
+                        "oneOf": [
+                            {
+                                "type": "object",
+                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "validationBits": {
+                                        "type": "object",
+                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid"],
+                                        "properties": {
+                                            "transactionTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "operationValid": {
+                                                "type": "boolean"
+                                            },
+                                            "levelValid": {
+                                                "type": "boolean"
+                                            },
+                                            "processorContextCorruptValid": {
+                                                "type": "boolean"
+                                            },
+                                            "correctedValid": {
+                                                "type": "boolean"
+                                            },
+                                            "precisePCValid": {
+                                                "type": "boolean"
+                                            },
+                                            "restartablePCValid": {
+                                                "type": "boolean"
+                                            }
+                                        }
+                                    },
+                                    "transactionType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "operation": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "level": {
+                                        "type": "integer"
+                                    },
+                                    "processorContextCorrupt": {
+                                        "type": "boolean"
+                                    },
+                                    "corrected": {
+                                        "type": "boolean"
+                                    },
+                                    "precisePC": {
+                                        "type": "boolean"
+                                    },
+                                    "restartablePC": {
+                                        "type": "boolean"
+                                    }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC", "timedOut", "participationType", "addressSpace", "memoryAttributes", "accessMode"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "validationBits": {
+                                        "type": "object",
+                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid", "participationTypeValid", "timedOutValid", "addressSpaceValid", "memoryAttributesValid", "accessModeValid"],
+                                        "properties": {
+                                            "transactionTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "operationValid": {
+                                                "type": "boolean"
+                                            },
+                                            "levelValid": {
+                                                "type": "boolean"
+                                            },
+                                            "processorContextCorruptValid": {
+                                                "type": "boolean"
+                                            },
+                                            "correctedValid": {
+                                                "type": "boolean"
+                                            },
+                                            "precisePCValid": {
+                                                "type": "boolean"
+                                            },
+                                            "restartablePCValid": {
+                                                "type": "boolean"
+                                            },
+                                            "participationTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "timedOutValid": {
+                                                "type": "boolean"
+                                            },
+                                            "addressSpaceValid": {
+                                                "type": "boolean"
+                                            },
+                                            "memoryAttributesValid": {
+                                                "type": "boolean"
+                                            },
+                                            "accessModeValid": {
+                                                "type": "boolean"
+                                            }
+                                        }
+                                    },
+                                    "transactionType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "operation": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "level": {
+                                        "type": "integer"
+                                    },
+                                    "processorContextCorrupt": {
+                                        "type": "boolean"
+                                    },
+                                    "corrected": {
+                                        "type": "boolean"
+                                    },
+                                    "precisePC": {
+                                        "type": "boolean"
+                                    },
+                                    "restartablePC": {
+                                        "type": "boolean"
+                                    },
+                                    "timedOut": {
+                                        "type": "boolean"
+                                    },
+                                    "participationType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "addressSpace": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "accessMode": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "memoryAttributes": {
+                                        "type": "integer"
+                                    }
+                                }
+                            }
+                        ]
+                    },
+                    "virtualFaultAddress": {
+                        "type": "integer"
+                    },
+                    "physicalFaultAddress": {
+                        "type": "integer"
+                    }
+                }
+            }
+        },
+        "contextInfo": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "required": ["registerContextType", "registerArraySize", "registerArray"],
+                "additionalProperties": false,
+                "properties": {
+                    "registerContextType": {
+                        "type": "object",
+                        "$ref": "../common/cper-json-nvp.json"
+                    },
+                    "registerArraySize": {
+                        "type": "integer"
+                    },
+                    "registerArray": {
+                        "type": "object",
+                        "oneOf": [
+                            {
+                                "type": "object",
+                                "required": ["r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13_sp", "r14_lr", "r15_pc"],
+                                "properties": {
+                                    "r0": { "type": "integer" },
+                                    "r1": { "type": "integer" },
+                                    "r2": { "type": "integer" },
+                                    "r3": { "type": "integer" },
+                                    "r4": { "type": "integer" },
+                                    "r5": { "type": "integer" },
+                                    "r6": { "type": "integer" },
+                                    "r7": { "type": "integer" },
+                                    "r8": { "type": "integer" },
+                                    "r9": { "type": "integer" },
+                                    "r10": { "type": "integer" },
+                                    "r11": { "type": "integer" },
+                                    "r12": { "type": "integer" },
+                                    "r13_sp": { "type": "integer" },
+                                    "r14_lr": { "type": "integer" },
+                                    "r15_pc": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["dfar", "dfsr", "ifar", "isr", "mair0", "mair1", "midr", "mpidr", "nmrr", "prrr", "sctlr_ns", "spsr", "spsr_abt", "spsr_fiq", "spsr_irq", "spsr_svc", "spsr_und", "tpidrprw", "tpidruro", "tpidrurw", "ttbcr", "ttbr0", "ttbr1", "dacr"],
+                                "properties": {
+                                    "dfar": { "type": "integer" },
+                                    "dfsr": { "type": "integer" },
+                                    "ifar": { "type": "integer" },
+                                    "isr": { "type": "integer" },
+                                    "mair0": { "type": "integer" },
+                                    "mair1": { "type": "integer" },
+                                    "midr": { "type": "integer" },
+                                    "mpidr": { "type": "integer" },
+                                    "nmrr": { "type": "integer" },
+                                    "prrr": { "type": "integer" },
+                                    "sctlr_ns": { "type": "integer" },
+                                    "spsr": { "type": "integer" },
+                                    "spsr_abt": { "type": "integer" },
+                                    "spsr_fiq": { "type": "integer" },
+                                    "spsr_irq": { "type": "integer" },
+                                    "spsr_svc": { "type": "integer" },
+                                    "spsr_und": { "type": "integer" },
+                                    "tpidrprw": { "type": "integer" },
+                                    "tpidruro": { "type": "integer" },
+                                    "tpidrurw": { "type": "integer" },
+                                    "ttbcr": { "type": "integer" },
+                                    "ttbr0": { "type": "integer" },
+                                    "ttbr1": { "type": "integer" },
+                                    "dacr": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["elr_hyp", "hamair0", "hamair1", "hcr", "hcr2", "hdfar", "hifar", "hpfar", "hsr", "htcr", "htpidr", "httbr", "spsr_hyp", "vtcr", "vttbr", "dacr32_el2"],
+                                "properties": {
+                                    "elr_hyp": { "type": "integer" },
+                                    "hamair0": { "type": "integer" },
+                                    "hamair1": { "type": "integer" },
+                                    "hcr": { "type": "integer" },
+                                    "hcr2": { "type": "integer" },
+                                    "hdfar": { "type": "integer" },
+                                    "hifar": { "type": "integer" },
+                                    "hpfar": { "type": "integer" },
+                                    "hsr": { "type": "integer" },
+                                    "htcr": { "type": "integer" },
+                                    "htpidr": { "type": "integer" },
+                                    "httbr": { "type": "integer" },
+                                    "spsr_hyp": { "type": "integer" },
+                                    "vtcr": { "type": "integer" },
+                                    "vttbr": { "type": "integer" },
+                                    "dacr32_el2": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["sctlr_s", "spsr_mon"],
+                                "properties": {
+                                    "sctlr_s": { "type": "integer" },
+                                    "spsr_mon": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp"],
+                                "properties": {
+                                    "x0": { "type": "integer" },
+                                    "x1": { "type": "integer" },
+                                    "x2": { "type": "integer" },
+                                    "x3": { "type": "integer" },
+                                    "x4": { "type": "integer" },
+                                    "x5": { "type": "integer" },
+                                    "x6": { "type": "integer" },
+                                    "x7": { "type": "integer" },
+                                    "x8": { "type": "integer" },
+                                    "x9": { "type": "integer" },
+                                    "x10": { "type": "integer" },
+                                    "x11": { "type": "integer" },
+                                    "x12": { "type": "integer" },
+                                    "x13": { "type": "integer" },
+                                    "x14": { "type": "integer" },
+                                    "x15": { "type": "integer" },
+                                    "x16": { "type": "integer" },
+                                    "x17": { "type": "integer" },
+                                    "x18": { "type": "integer" },
+                                    "x19": { "type": "integer" },
+                                    "x20": { "type": "integer" },
+                                    "x21": { "type": "integer" },
+                                    "x22": { "type": "integer" },
+                                    "x23": { "type": "integer" },
+                                    "x24": { "type": "integer" },
+                                    "x25": { "type": "integer" },
+                                    "x26": { "type": "integer" },
+                                    "x27": { "type": "integer" },
+                                    "x28": { "type": "integer" },
+                                    "x29": { "type": "integer" },
+                                    "x30": { "type": "integer" },
+                                    "sp": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["elr_el1", "esr_el1", "far_el1", "isr_el1", "mair_el1", "midr_el1", "mpidr_el1", "sctlr_el1", "sp_el0", "sp_el1", "spsr_el1", "tcr_el1", "tpidr_el0", "tpidr_el1", "tpidrro_el0", "ttbr0_el1", "ttbr1_el1"],
+                                "properties": {
+                                    "elr_el1": { "type": "integer" },
+                                    "esr_el1": { "type": "integer" },
+                                    "far_el1": { "type": "integer" },
+                                    "isr_el1": { "type": "integer" },
+                                    "mair_el1": { "type": "integer" },
+                                    "midr_el1": { "type": "integer" },
+                                    "mpidr_el1": { "type": "integer" },
+                                    "sctlr_el1": { "type": "integer" },
+                                    "sp_el0": { "type": "integer" },
+                                    "sp_el1": { "type": "integer" },
+                                    "spsr_el1": { "type": "integer" },
+                                    "tcr_el1": { "type": "integer" },
+                                    "tpidr_el0": { "type": "integer" },
+                                    "tpidr_el1": { "type": "integer" },
+                                    "tpidrro_el0": { "type": "integer" },
+                                    "ttbr0_el1": { "type": "integer" },
+                                    "ttbr1_el1": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["elr_el2", "esr_el2", "far_el2", "hacr_el2", "hcr_el2", "hpfar_el2", "mair_el2", "sctlr_el2", "sp_el2", "spsr_el2", "tcr_el2", "tpidr_el2", "ttbr0_el2", "vtcr_el2", "vttbr_el2"],
+                                "properties": {
+                                    "elr_el2": { "type": "integer" },
+                                    "esr_el2": { "type": "integer" },
+                                    "far_el2": { "type": "integer" },
+                                    "hacr_el2": { "type": "integer" },
+                                    "hcr_el2": { "type": "integer" },
+                                    "hpfar_el2": { "type": "integer" },
+                                    "mair_el2": { "type": "integer" },
+                                    "sctlr_el2": { "type": "integer" },
+                                    "sp_el2": { "type": "integer" },
+                                    "spsr_el2": { "type": "integer" },
+                                    "tcr_el2": { "type": "integer" },
+                                    "tpidr_el2": { "type": "integer" },
+                                    "ttbr0_el2": { "type": "integer" },
+                                    "vtcr_el2": { "type": "integer" },
+                                    "vttbr_el2": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["elr_el3", "esr_el3", "far_el3", "mair_el3", "sctlr_el3", "sp_el3", "spsr_el3", "tcr_el3", "tpidr_el3", "ttbr0_el3"],
+                                "properties": {
+                                    "elr_el3": { "type": "integer" },
+                                    "esr_el3": { "type": "integer" },
+                                    "far_el3": { "type": "integer" },
+                                    "mair_el3": { "type": "integer" },
+                                    "sctlr_el3": { "type": "integer" },
+                                    "sp_el3": { "type": "integer" },
+                                    "spsr_el3": { "type": "integer" },
+                                    "tcr_el3": { "type": "integer" },
+                                    "tpidr_el3": { "type": "integer" },
+                                    "ttbr0_el3": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["mrsEncoding", "value"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "mrsEncoding": {
+                                        "type": "object",
+                                        "required": ["op2", "crm", "crn", "op1", "o0"],
+                                        "properties": {
+                                            "op2": { "type": "integer" },
+                                            "crm": { "type": "integer" },
+                                            "crn": { "type": "integer" },
+                                            "op1": { "type": "integer" },
+                                            "o0": { "type": "integer" }
+                                        }
+                                    },
+                                    "value": {
+                                        "type": "integer"
+                                    }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["data"],
+                                "properties": {
+                                    "data": {
+                                        "type": "string"
+                                    }
+                                }
+                            }
+                        ]
+                    }
+                }
+            }
+        },
+        "vendorSpecificInfo": {
+            "type": "object",
+            "required": ["data"],
+            "additionalProperties": false,
+            "properties": {
+                "data": {
+                    "type": "string"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-ccix-per.json b/specification/json/sections/cper-ccix-per.json
new file mode 100644
index 0000000..f6e95a9
--- /dev/null
+++ b/specification/json/sections/cper-ccix-per.json
@@ -0,0 +1,36 @@
+{
+    "$id": "cper-json-ccix-per-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["length", "validationBits", "ccixSourceID", "ccixPortID", "ccixPERLog"],
+    "additionalProperties": false,
+    "properties": {
+        "length": {
+            "type": "integer"
+        },
+        "validationBits": {
+            "type": "object",
+            "required": ["ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid"],
+            "properties": {
+                "ccixSourceIDValid": {
+                    "type": "boolean"
+                },
+                "ccixPortIDValid": {
+                    "type": "boolean"
+                },
+                "ccixPERLogValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "ccixSourceID": {
+            "type": "integer"
+        },
+        "ccixPortID": {
+            "type": "integer"
+        },
+        "ccixPERLog": {
+            "type": "string"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-cxl-component.json b/specification/json/sections/cper-cxl-component.json
new file mode 100644
index 0000000..9cbd2e9
--- /dev/null
+++ b/specification/json/sections/cper-cxl-component.json
@@ -0,0 +1,63 @@
+{
+    "$id": "cper-json-cxl-component-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "deviceID", "deviceSerial"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["deviceIDValid", "deviceSerialValid", "cxlComponentEventLogValid"],
+            "properties": {
+                "deviceIDValid": {
+                    "type": "boolean"
+                },
+                "deviceSerialValid": {
+                    "type": "boolean"
+                },
+                "cxlComponentEventLogValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "deviceID": {
+            "type": "object",
+            "required": ["vendorID", "deviceID", "functionNumber", "deviceNumber", "busNumber", "segmentNumber", "slotNumber"],
+            "properties": {
+                "vendorID": {
+                    "type": "integer"
+                },
+                "deviceID": {
+                    "type": "integer"
+                },
+                "functionNumber": {
+                    "type": "integer"
+                },
+                "deviceNumber": {
+                    "type": "integer"
+                },
+                "busNumber": {
+                    "type": "integer"
+                },
+                "segmentNumber": {
+                    "type": "integer"
+                },
+                "slotNumber": {
+                    "type": "integer"
+                }
+            }
+        },
+        "deviceSerial": {
+            "type": "integer"
+        },
+        "cxlComponentEventLog": {
+            "type": "object",
+            "required": ["data"],
+            "properties": {
+                "data": {
+                    "type": "string"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-cxl-protocol.json b/specification/json/sections/cper-cxl-protocol.json
new file mode 100644
index 0000000..43ca251
--- /dev/null
+++ b/specification/json/sections/cper-cxl-protocol.json
@@ -0,0 +1,90 @@
+{
+    "$id": "cper-json-cxl-protocol-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "agentType", "agentAddress", "deviceID", "deviceSerial", "capabilityStructure", "dvsecLength", "errorLogLength", "cxlDVSEC", "cxlErrorLog"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["cxlAgentTypeValid", "cxlAgentAddressValid", "deviceIDValid", "deviceSerialValid", "capabilityStructureValid", "cxlDVSECValid", "cxlErrorLogValid"],
+            "properties": {
+                "cxlAgentTypeValid": {
+                    "type": "boolean"
+                },
+                "cxlAgentAddressValid": {
+                    "type": "boolean"
+                },
+                "deviceIDValid": {
+                    "type": "boolean"
+                },
+                "deviceSerialValid": {
+                    "type": "boolean"
+                },
+                "capabilityStructureValid": {
+                    "type": "boolean"
+                },
+                "cxlDVSECValid": {
+                    "type": "boolean"
+                },
+                "cxlErrorLogValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "agentType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "agentAddress": {
+            "type": "object",
+            "oneOf": [
+                {
+                    "type": "object",
+                    "required": ["functionNumber", "deviceNumber", "busNumber", "segmentNumber"],
+                    "properties": {
+                        "functionNumber": { 
+                            "type": "integer"
+                        },
+                        "deviceNumber": { 
+                            "type": "integer"
+                        },
+                        "busNumber": { 
+                            "type": "integer"
+                        },
+                        "segmentNumber": { 
+                            "type": "integer"
+                        }
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["value"],
+                    "properties": {
+                        "value": {
+                            "type": "integer"
+                        }
+                    }
+                }
+            ]
+        },
+        "deviceSerial": { 
+            "type": "integer"
+        },
+        "capabilityStructure": {
+            "type": "string"
+        },
+        "dvsecLength": { 
+            "type": "integer"
+        },
+        "errorLogLength": { 
+            "type": "integer"
+        },
+        "cxlDVSEC": { 
+            "type": "string"
+        },
+        "cxlErrorLog": { 
+            "type": "string"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-firmware.json b/specification/json/sections/cper-firmware.json
new file mode 100644
index 0000000..5c7126a
--- /dev/null
+++ b/specification/json/sections/cper-firmware.json
@@ -0,0 +1,22 @@
+{
+    "$id": "cper-json-firmware-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["errorRecordType", "revision", "recordID", "recordIDGUID"],
+    "additionalProperties": false,
+    "properties": {
+        "errorRecordType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "revision": {
+            "type": "integer"
+        },
+        "recordID": {
+            "type": "integer"
+        },
+        "recordIDGUID": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-generic-dmar.json b/specification/json/sections/cper-generic-dmar.json
new file mode 100644
index 0000000..e8f9d0e
--- /dev/null
+++ b/specification/json/sections/cper-generic-dmar.json
@@ -0,0 +1,45 @@
+{
+    "$id": "cper-json-generic-dmar-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["requesterID", "segmentNumber", "faultReason", "accessType", "addressType", "architectureType", "deviceAddress"],
+    "additionalProperties": false,
+    "properties": {
+        "requesterID": {
+            "type": "integer"
+        },
+        "segmentNumber": {
+            "type": "integer"
+        },
+        "faultReason": {
+            "type": "object",
+            "required": ["value", "name", "description"],
+            "properties": {
+                "value": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "description": {
+                    "type": "string"
+                }
+            }
+        },
+        "accessType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "addressType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "architectureType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "deviceAddress": {
+            "type" : "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-generic-processor.json b/specification/json/sections/cper-generic-processor.json
new file mode 100644
index 0000000..568046f
--- /dev/null
+++ b/specification/json/sections/cper-generic-processor.json
@@ -0,0 +1,112 @@
+{
+    "$id": "cper-json-generic-processor-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "processorType", "processorISA", "errorType", "operation", "flags", "level", "cpuVersionInfo", "cpuBrandString", "processorID", "targetAddress", "requestorID", "responderID", "instructionIP"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["processorTypeValid", "processorISAValid", "errorTypeValid", "operationValid", "flagsValid", "levelValid", "cpuVersionValid", "cpuBrandInfoValid", "cpuIDValid", "targetAddressValid", "requestorIDValid", "responderIDValid", "instructionIPValid"],
+            "properties": {
+                "processorTypeValid": {
+                    "type": "boolean"
+                },
+                "processorISAValid": {
+                    "type": "boolean"
+                },
+                "errorTypeValid": {
+                    "type": "boolean"
+                },
+                "operationValid": {
+                    "type": "boolean"
+                },
+                "flagsValid": {
+                    "type": "boolean"
+                },
+                "levelValid": {
+                    "type": "boolean"
+                },
+                "cpuVersionValid": {
+                    "type": "boolean"
+                },
+                "cpuBrandInfoValid": {
+                    "type": "boolean"
+                },
+                "cpuIDValid": {
+                    "type": "boolean"
+                },
+                "targetAddressValid": {
+                    "type": "boolean"
+                },
+                "requestorIDValid": {
+                    "type": "boolean"
+                },
+                "responderIDValid": {
+                    "type": "boolean"
+                },
+                "instructionIPValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "processorType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "processorISA": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "errorType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "operation": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "flags": {
+            "type": "object",
+            "required": ["restartableIP", "preciseIP", "overflow", "corrected"],
+            "properties": {
+                "restartableIP": {
+                    "type": "boolean"
+                },
+                "preciseIP": {
+                    "type": "boolean"
+                },
+                "overflow": {
+                    "type": "boolean"
+                },
+                "corrected": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "level": {
+            "type": "integer"
+        },
+        "cpuVersionInfo": {
+            "type": "integer"
+        },
+        "cpuBrandString": {
+            "type": "string"
+        },
+        "processorID": {
+            "type": "integer"
+        },
+        "targetAddress": {
+            "type": "integer"
+        },
+        "requestorID": {
+            "type": "integer"
+        },
+        "responderID": {
+            "type": "integer"
+        },
+        "instructionIP": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-ia32x64-processor.json b/specification/json/sections/cper-ia32x64-processor.json
new file mode 100644
index 0000000..ff482e5
--- /dev/null
+++ b/specification/json/sections/cper-ia32x64-processor.json
@@ -0,0 +1,410 @@
+{
+    "$id": "cper-json-ia32x54-processor-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "localAPICID", "cpuidInfo", "processorErrorInfo", "processorContextInfo"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["localAPICIDValid", "cpuIDInfoValid", "processorErrorInfoNum", "processorContextInfoNum"],
+            "properties": {
+                "localAPICIDValid": {
+                    "type": "boolean"
+                },
+                "cpuIDInfoValid": {
+                    "type": "boolean"
+                },
+                "processorErrorInfoNum": {
+                    "type": "integer",
+                    "minimum": 0
+                },
+                "processorContextInfoNum": {
+                    "type": "integer",
+                    "minimum": 0
+                }
+            }
+        },
+        "localAPICID": {
+            "type": "integer"
+        },
+        "cpuidInfo": {
+            "type": "object",
+            "required": ["eax", "ebx", "ecx", "edx"],
+            "properties": {
+                "eax": {
+                    "type": "integer"
+                },
+                "ebx": {
+                    "type": "integer"
+                },
+                "ecx": {
+                    "type": "integer"
+                },
+                "edx": {
+                    "type": "integer"
+                }
+            }
+        },
+        "processorErrorInfo": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "required": ["type", "validationBits", "checkInfo", "targetAddressID", "requestorID", "responderID", "instructionPointer"],
+                "additionalProperties": false,
+                "properties": {
+                    "type": {
+                        "type": "string"
+                    },
+                    "validationBits": {
+                        "type": "object",
+                        "required": ["checkInfoValid", "targetAddressIDValid", "requestorIDValid", "responderIDValid", "instructionPointerValid"],
+                        "additionalProperties": false,
+                        "properties": {
+                            "checkInfoValid": {
+                                "type": "boolean"
+                            },
+                            "targetAddressIDValid": {
+                                "type": "boolean"
+                            },
+                            "requestorIDValid": {
+                                "type": "boolean"
+                            },
+                            "responderIDValid": {
+                                "type": "boolean"
+                            },
+                            "instructionPointerValid": {
+                                "type": "boolean"
+                            }
+                        }
+                    },
+                    "checkInfo": {
+                        "type" : "object",
+                        "oneOf": [
+                            {
+                                "type": "object",
+                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "uncorrected", "preciseIP", "restartableIP", "overflow"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "validationBits": {
+                                        "type": "object",
+                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
+                                        "properties": {
+                                            "transactionTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "operationValid": {
+                                                "type": "boolean"
+                                            },
+                                            "levelValid": {
+                                                "type": "boolean"
+                                            },
+                                            "processorContextCorruptValid": {
+                                                "type": "boolean"
+                                            },
+                                            "uncorrectedValid": {
+                                                "type": "boolean"
+                                            },
+                                            "preciseIPValid": {
+                                                "type": "boolean"
+                                            },
+                                            "restartableIPValid": {
+                                                "type": "boolean"
+                                            },
+                                            "overflowValid": {
+                                                "type": "boolean"
+                                            }
+                                        }
+                                    },
+                                    "transactionType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "operation": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "level": {
+                                        "type": "integer",
+                                        "minimum": 0
+                                    },
+                                    "processorContextCorrupt": {
+                                        "type": "boolean"
+                                    },
+                                    "uncorrected": {
+                                        "type": "boolean"
+                                    },
+                                    "preciseIP": {
+                                        "type": "boolean"
+                                    },
+                                    "restartableIP": {
+                                        "type": "boolean"
+                                    },
+                                    "overflow": {
+                                        "type": "boolean"
+                                    }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "uncorrected", "preciseIP", "restartableIP", "overflow", "participationType", "timedOut", "addressSpace"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "validationBits": {
+                                        "type": "object",
+                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid", "participationTypeValid", "timedOutValid"],
+                                        "properties": {
+                                            "transactionTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "operationValid": {
+                                                "type": "boolean"
+                                            },
+                                            "levelValid": {
+                                                "type": "boolean"
+                                            },
+                                            "processorContextCorruptValid": {
+                                                "type": "boolean"
+                                            },
+                                            "uncorrectedValid": {
+                                                "type": "boolean"
+                                            },
+                                            "preciseIPValid": {
+                                                "type": "boolean"
+                                            },
+                                            "restartableIPValid": {
+                                                "type": "boolean"
+                                            },
+                                            "overflowValid": {
+                                                "type": "boolean"
+                                            },
+                                            "participationTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "timedOutValid": {
+                                                "type": "boolean"
+                                            }
+                                        }
+                                    },
+                                    "transactionType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "operation": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "level": {
+                                        "type": "integer",
+                                        "minimum": 0
+                                    },
+                                    "processorContextCorrupt": {
+                                        "type": "boolean"
+                                    },
+                                    "uncorrected": {
+                                        "type": "boolean"
+                                    },
+                                    "preciseIP": {
+                                        "type": "boolean"
+                                    },
+                                    "restartableIP": {
+                                        "type": "boolean"
+                                    },
+                                    "overflow": {
+                                        "type": "boolean"
+                                    },
+                                    "participationType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "addressSpace": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "timedOut": {
+                                        "type": "boolean"
+                                    }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": [],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "validationBits": {
+                                        "type": "object",
+                                        "required": ["errorTypeValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
+                                        "properties": {
+                                            "errorTypeValid": {
+                                                "type": "boolean"
+                                            },
+                                            "processorContextCorruptValid": {
+                                                "type": "boolean"
+                                            },
+                                            "uncorrectedValid": {
+                                                "type": "boolean"
+                                            },
+                                            "preciseIPValid": {
+                                                "type": "boolean"
+                                            },
+                                            "restartableIPValid": {
+                                                "type": "boolean"
+                                            },
+                                            "overflowValid": {
+                                                "type": "boolean"
+                                            }
+                                        }
+                                    },
+                                    "errorType": {
+                                        "type": "object",
+                                        "$ref": "../common/cper-json-nvp.json"
+                                    },
+                                    "processorContextCorrupt": {
+                                        "type": "boolean"
+                                    },
+                                    "uncorrected": {
+                                        "type": "boolean"
+                                    },
+                                    "preciseIP": {
+                                        "type": "boolean"
+                                    },
+                                    "restartableIP": {
+                                        "type": "boolean"
+                                    },
+                                    "overflow": {
+                                        "type": "boolean"
+                                    }
+                                }
+                            }
+                        ]
+                    },
+                    "targetAddressID": {
+                        "type": "integer"
+                    },
+                    "requestorID": {
+                        "type": "integer"
+                    },
+                    "responderID": {
+                        "type": "integer"
+                    },
+                    "instructionPointer": {
+                        "type": "integer"
+                    }
+                }
+            }
+        },
+        "processorContextInfo": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "required": ["registerContextType", "registerArraySize", "msrAddress", "mmRegisterAddress"],
+                "additionalProperties": false,
+                "properties": {
+                    "registerContextType": {
+                        "type": "object",
+                        "$ref": "../common/cper-json-nvp.json"
+                    },
+                    "registerArraySize": {
+                        "type": "integer"
+                    },
+                    "msrAddress": {
+                        "type": "integer"
+                    },
+                    "mmRegisterAddress": {
+                        "type": "integer"
+                    },
+                    "registerArray": {
+                        "type": "object",
+                        "oneOf": [
+                            {
+                                "type": "object",
+                                "required": ["eax", "ebx", "ecx", "edx", "esi", "edi", "ebp", "esp", "cs", "ds", "ss", "es", "fs", "gs", "eflags", "eip", "cr0", "cr1", "cr2", "cr3", "cr4", "gdtr", "idtr", "ldtr", "tr"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "eax": { "type": "integer" },
+                                    "ebx": { "type": "integer" },
+                                    "ecx": { "type": "integer" },
+                                    "edx": { "type": "integer" },
+                                    "esi": { "type": "integer" },
+                                    "edi": { "type": "integer" },
+                                    "ebp": { "type": "integer" },
+                                    "esp": { "type": "integer" },
+                                    "cs": { "type": "integer" },
+                                    "ds": { "type": "integer" },
+                                    "ss": { "type": "integer" },
+                                    "es": { "type": "integer" },
+                                    "fs": { "type": "integer" },
+                                    "gs": { "type": "integer" },
+                                    "eflags": { "type": "integer" },
+                                    "eip": { "type": "integer" },
+                                    "cr0": { "type": "integer" },
+                                    "cr1": { "type": "integer" },
+                                    "cr2": { "type": "integer" },
+                                    "cr3": { "type": "integer" },
+                                    "cr4": { "type": "integer" },
+                                    "gdtr": { "type": "integer" },
+                                    "idtr": { "type": "integer" },
+                                    "ldtr": { "type": "integer" },
+                                    "tr": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["rax", "rbx", "rcx", "rdx", "rsi", "rdi", "rbp", "rsp", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "cs", "ds", "es", "fs", "gs", "rflags", "eip", "cr0", "cr1", "cr2", "cr3", "cr4", "cr8", "gdtr_0", "gdtr_1", "idtr_0", "idtr_1", "ldtr", "tr"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "rax": { "type": "integer" },
+                                    "rbx": { "type": "integer" },
+                                    "rcx": { "type": "integer" },
+                                    "rdx": { "type": "integer" },
+                                    "rsi": { "type": "integer" },
+                                    "rdi": { "type": "integer" },
+                                    "rbp": { "type": "integer" },
+                                    "rsp": { "type": "integer" },
+                                    "r8": { "type": "integer" },
+                                    "r9": { "type": "integer" },
+                                    "r10": { "type": "integer" },
+                                    "r11": { "type": "integer" },
+                                    "r12": { "type": "integer" },
+                                    "r13": { "type": "integer" },
+                                    "r14": { "type": "integer" },
+                                    "r15": { "type": "integer" },
+                                    "cs": { "type": "integer" },
+                                    "ds": { "type": "integer" },
+                                    "ss": { "type": "integer" },
+                                    "es": { "type": "integer" },
+                                    "fs": { "type": "integer" },
+                                    "gs": { "type": "integer" },
+                                    "rflags": { "type": "integer" },
+                                    "eip": { "type": "integer" },
+                                    "cr0": { "type": "integer" },
+                                    "cr1": { "type": "integer" },
+                                    "cr2": { "type": "integer" },
+                                    "cr3": { "type": "integer" },
+                                    "cr4": { "type": "integer" },
+                                    "cr8": { "type": "integer" },
+                                    "gdtr_0": { "type": "integer" },
+                                    "gdtr_1": { "type": "integer" },
+                                    "idtr_0": { "type": "integer" },
+                                    "idtr_1": { "type": "integer" },
+                                    "ldtr": { "type": "integer" },
+                                    "tr": { "type": "integer" }
+                                }
+                            },
+                            {
+                                "type": "object",
+                                "required": ["data"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "data": {
+                                        "type": "string"
+                                    }
+                                }
+                            }
+                        ]
+                    }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-iommu-dmar.json b/specification/json/sections/cper-iommu-dmar.json
new file mode 100644
index 0000000..2db53cc
--- /dev/null
+++ b/specification/json/sections/cper-iommu-dmar.json
@@ -0,0 +1,42 @@
+{
+    "$id": "cper-json-iommu-dmar-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["revision", "controlRegister", "statusRegister", "eventLogEntry", "deviceTableEntry", "pageTableEntry_Level6", "pageTableEntry_Level5", "pageTableEntry_Level4", "pageTableEntry_Level3", "pageTableEntry_Level2", "pageTableEntry_Level1"],
+    "additionalProperties": false,
+    "properties": {
+        "revision": {
+            "type": "integer"
+        },
+        "controlRegister": {
+            "type": "integer"
+        },
+        "statusRegister": {
+            "type": "integer"
+        },
+        "eventLogEntry": {
+            "type": "string"
+        },
+        "deviceTableEntry": {
+            "type": "string"
+        },
+        "pageTableEntry_Level6": {
+            "type": "integer"
+        },
+        "pageTableEntry_Level5": {
+            "type": "integer"
+        },
+        "pageTableEntry_Level4": {
+            "type": "integer"
+        },
+        "pageTableEntry_Level3": {
+            "type": "integer"
+        },
+        "pageTableEntry_Level2": {
+            "type": "integer"
+        },
+        "pageTableEntry_Level1": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-memory.json b/specification/json/sections/cper-memory.json
new file mode 100644
index 0000000..d4686b1
--- /dev/null
+++ b/specification/json/sections/cper-memory.json
@@ -0,0 +1,163 @@
+{
+    "$id": "cper-json-memory-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "errorStatus", "bank", "memoryErrorType", "extended", "physicalAddress", "physicalAddressMask", "node", "card", "moduleRank", "device", "row", "column", "bitPosition", "requestorID", "responderID", "targetID", "rankNumber", "cardSmbiosHandle", "moduleSmbiosHandle"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["errorStatusValid", "physicalAddressValid", "physicalAddressMaskValid", "nodeValid", "cardValid", "moduleValid", "bankValid", "deviceValid", "rowValid", "memoryPlatformTargetValid", "memoryErrorTypeValid", "rankNumberValid", "cardHandleValid", "moduleHandleValid", "extendedRowBitsValid", "bankGroupValid", "bankAddressValid", "chipIdentificationValid"],
+            "properties": {
+                "errorStatusValid": {
+                    "type": "boolean"
+                },
+                "physicalAddressValid": {
+                    "type": "boolean"
+                },
+                "physicalAddressMaskValid": {
+                    "type": "boolean"
+                },
+                "nodeValid": {
+                    "type": "boolean"
+                },
+                "cardValid": {
+                    "type": "boolean"
+                },
+                "moduleValid": {
+                    "type": "boolean"
+                },
+                "bankValid": {
+                    "type": "boolean"
+                },
+                "deviceValid": {
+                    "type": "boolean"
+                },
+                "rowValid": {
+                    "type": "boolean"
+                },
+                "memoryPlatformTargetValid": {
+                    "type": "boolean"
+                },
+                "memoryErrorTypeValid": {
+                    "type": "boolean"
+                },
+                "rankNumberValid": {
+                    "type": "boolean"
+                },
+                "cardHandleValid": {
+                    "type": "boolean"
+                },
+                "moduleHandleValid": {
+                    "type": "boolean"
+                },
+                "extendedRowBitsValid": {
+                    "type": "boolean"
+                },
+                "bankGroupValid": {
+                    "type": "boolean"
+                },
+                "bankAddressValid": {
+                    "type": "boolean"
+                },
+                "chipIdentificationValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "errorStatus": {
+            "type": "object",
+            "$ref": "../common/cper-json-error-status.json"
+        },
+        "bank": {
+            "type": "object",
+            "oneOf": [
+                {
+                    "type": "object",
+                    "required": ["value"],
+                    "properties": {
+                        "value": {
+                            "type": "integer"
+                        }
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["address", "group"],
+                    "properties": {
+                        "address": {
+                            "type": "integer"
+                        },
+                        "group": {
+                            "type": "integer"
+                        }
+                    }
+                }
+            ]
+        },
+        "memoryErrorType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "extended": {
+            "type": "object",
+            "required": ["rowBit16", "rowBit17", "chipIdentification"],
+            "properties": {
+                "rowBit16": {
+                    "type": "boolean"
+                },
+                "rowBit17": {
+                    "type": "boolean"
+                },
+                "chipIdentification": {
+                    "type": "integer"
+                }
+            }
+        },
+        "physicalAddress": {
+            "type": "integer"
+        },
+        "physicalAddressMask": {
+            "type": "integer"
+        },
+        "node": {
+            "type": "integer"
+        },
+        "card": {
+            "type": "integer"
+        },
+        "moduleRank": {
+            "type": "integer"
+        },
+        "device": {
+            "type": "integer"
+        },
+        "row": {
+            "type": "integer"
+        },
+        "column": {
+            "type": "integer"
+        },
+        "bitPosition": {
+            "type": "integer"
+        },
+        "requestorID": {
+            "type": "integer"
+        },
+        "responderID": {
+            "type": "integer"
+        },
+        "targetID": {
+            "type": "integer"
+        },
+        "rankNumber": {
+            "type": "integer"
+        },
+        "cardSmbiosHandle": {
+            "type": "integer"
+        },
+        "moduleSmbiosHandle": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-memory2.json b/specification/json/sections/cper-memory2.json
new file mode 100644
index 0000000..6f615c3
--- /dev/null
+++ b/specification/json/sections/cper-memory2.json
@@ -0,0 +1,175 @@
+{
+    "$id": "cper-json-memory2-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "errorStatus", "bank", "memoryErrorType", "status", "physicalAddress", "physicalAddressMask", "node", "card", "module", "device", "row", "column", "bitPosition", "rank", "chipID", "requestorID", "responderID", "targetID", "cardSmbiosHandle", "moduleSmbiosHandle"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["errorStatusValid", "physicalAddressValid", "physicalAddressMaskValid", "nodeValid", "cardValid", "moduleValid", "bankValid", "deviceValid", "rowValid", "columnValid", "rankValid", "bitPositionValid", "chipIDValid", "memoryErrorTypeValid", "statusValid", "requestorIDValid", "responderIDValid", "targetIDValid", "cardHandleValid", "moduleHandleValid", "bankGroupValid", "bankAddressValid"],
+            "properties": {
+                "errorStatusValid": {
+                    "type": "boolean"
+                },
+                "physicalAddressValid": {
+                    "type": "boolean"
+                },
+                "physicalAddressMaskValid": {
+                    "type": "boolean"
+                },
+                "nodeValid": {
+                    "type": "boolean"
+                },
+                "cardValid": {
+                    "type": "boolean"
+                },
+                "moduleValid": {
+                    "type": "boolean"
+                },
+                "bankValid": {
+                    "type": "boolean"
+                },
+                "deviceValid": {
+                    "type": "boolean"
+                },
+                "rowValid": {
+                    "type": "boolean"
+                },
+                "columnValid": {
+                    "type": "boolean"
+                },
+                "rankValid": {
+                    "type": "boolean"
+                },
+                "bitPositionValid": {
+                    "type": "boolean"
+                },
+                "chipIDValid": {
+                    "type": "boolean"
+                },
+                "memoryErrorTypeValid": {
+                    "type": "boolean"
+                },
+                "statusValid": {
+                    "type": "boolean"
+                },
+                "requestorIDValid": {
+                    "type": "boolean"
+                },
+                "responderIDValid": {
+                    "type": "boolean"
+                },
+                "targetIDValid": {
+                    "type": "boolean"
+                },
+                "cardHandleValid": {
+                    "type": "boolean"
+                },
+                "moduleHandleValid": {
+                    "type": "boolean"
+                },
+                "bankGroupValid": {
+                    "type": "boolean"
+                },
+                "bankAddressValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "errorStatus": {
+            "type": "object",
+            "$ref": "../common/cper-json-error-status.json"
+        },
+        "bank": {
+            "type": "object",
+            "oneOf": [
+                {
+                    "type": "object",
+                    "required": ["value"],
+                    "properties": {
+                        "value": {
+                            "type": "integer"
+                        }
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["address", "group"],
+                    "properties": {
+                        "address": {
+                            "type": "integer"
+                        },
+                        "group": {
+                            "type": "integer"
+                        }
+                    }
+                }
+            ]
+        },
+        "memoryErrorType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "status": {
+            "type": "object",
+            "required": ["value", "state"],
+            "properties": {
+                "value": {
+                    "type": "integer"
+                },
+                "state": {
+                    "type": "string"
+                }
+            }
+        },
+        "physicalAddress": {
+            "type": "integer"
+        },
+        "physicalAddressMask": {
+            "type": "integer"
+        },
+        "node": {
+            "type": "integer"
+        },
+        "card": {
+            "type": "integer"
+        },
+        "module": {
+            "type": "integer"
+        },
+        "device": {
+            "type": "integer"
+        },
+        "row": {
+            "type": "integer"
+        },
+        "column": {
+            "type": "integer"
+        },
+        "bitPosition": {
+            "type": "integer"
+        },
+        "rank": {
+            "type": "integer"
+        },
+        "chipID": {
+            "type": "integer"
+        },
+        "requestorID": {
+            "type": "integer"
+        },
+        "responderID": {
+            "type": "integer"
+        },
+        "targetID": {
+            "type": "integer"
+        },
+        "cardSmbiosHandle": {
+            "type": "integer"
+        },
+        "moduleSmbiosHandle": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-pci-bus.json b/specification/json/sections/cper-pci-bus.json
new file mode 100644
index 0000000..2666610
--- /dev/null
+++ b/specification/json/sections/cper-pci-bus.json
@@ -0,0 +1,77 @@
+{
+    "$id": "cper-json-pci-bus-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "errorStatus", "errorType", "busID", "busAddress", "busData", "busCommandType", "busRequestorID", "busCompleterID", "targetID"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["errorStatusValid", "errorTypeValid", "busIDValid", "busAddressValid", "busDataValid", "commandValid", "requestorIDValid", "completerIDValid", "targetIDValid"],
+            "properties": {
+                "errorStatusValid": {
+                    "type": "boolean"
+                },
+                "errorTypeValid": {
+                    "type": "boolean"
+                },
+                "busIDValid": {
+                    "type": "boolean"
+                },
+                "busAddressValid": {
+                    "type": "boolean"
+                },
+                "busDataValid": {
+                    "type": "boolean"
+                },
+                "commandValid": {
+                    "type": "boolean"
+                },
+                "requestorIDValid": {
+                    "type": "boolean"
+                },
+                "completerIDValid": {
+                    "type": "boolean"
+                },
+                "targetIDValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "errorStatus": {
+            "type": "object",
+            "$ref": "../common/cper-json-error-status.json"
+        },
+        "errorType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "busID": {
+            "type": "object",
+            "required": ["busNumber", "segmentNumber"],
+            "properties": {
+                "busNumber": {
+                    "type": "integer"
+                },
+                "segmentNumber": {
+                    "type": "integer"
+                }
+            }
+        },
+        "busAddress": {
+            "type": "integer"
+        },
+        "busCommandType": {
+            "type": "string"
+        },
+        "busRequestorID": {
+            "type": "integer"
+        },
+        "busCompleterID": {
+            "type": "integer"
+        },
+        "targetID": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-pci-component.json b/specification/json/sections/cper-pci-component.json
new file mode 100644
index 0000000..4e46485
--- /dev/null
+++ b/specification/json/sections/cper-pci-component.json
@@ -0,0 +1,82 @@
+{
+    "$id": "cper-json-pci-component-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "errorStatus", "idInfo", "memoryNumber", "ioNumber", "registerDataPairs"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["errorStatusValid", "idInfoValid", "memoryNumberValid", "ioNumberValid", "registerDataPairsValid"],
+            "properties": {
+                "errorStatusValid": {
+                    "type": "boolean"
+                },
+                "idInfoValid": {
+                    "type": "boolean"
+                },
+                "memoryNumberValid": {
+                    "type": "boolean"
+                },
+                "ioNumberValid": {
+                    "type": "boolean"
+                },
+                "registerDataPairsValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "errorStatus": {
+            "type": "object",
+            "$ref": "../common/cper-json-error-status.json"
+        },
+        "idInfo": {
+            "type": "object",
+            "required": ["vendorID", "deviceID", "classCode", "functionNumber", "deviceNumber", "busNumber", "segmentNumber"],
+            "properties": {
+                "vendorID": {
+                    "type": "integer"
+                },
+                "deviceID": {
+                    "type": "integer"
+                },
+                "classCode": {
+                    "type": "integer"
+                },
+                "functionNumber": {
+                    "type": "integer"
+                },
+                "deviceNumber": {
+                    "type": "integer"
+                },
+                "busNumber": {
+                    "type": "integer"
+                },
+                "segmentNumber": {
+                    "type": "integer"
+                }
+            }
+        },
+        "memoryNumber": {
+            "type": "integer"
+        },
+        "ioNumber": {
+            "type": "integer"
+        },
+        "registerDataPairs": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "required": ["firstHalf", "secondHalf"],
+                "properties": {
+                    "firstHalf": {
+                        "type": "integer"
+                    },
+                    "secondHalf": {
+                        "type": "integer"
+                    }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-pcie.json b/specification/json/sections/cper-pcie.json
new file mode 100644
index 0000000..5521e2b
--- /dev/null
+++ b/specification/json/sections/cper-pcie.json
@@ -0,0 +1,169 @@
+{
+    "$id": "cper-json-pcie-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["validationBits", "portType", "version", "commandStatus", "deviceID", "deviceSerialNumber", "bridgeControlStatus", "capabilityStructure", "aerInfo"],
+    "additionalProperties": false,
+    "properties": {
+        "validationBits": {
+            "type": "object",
+            "required": ["portTypeValid", "versionValid", "commandStatusValid", "deviceIDValid", "deviceSerialNumberValid", "bridgeControlStatusValid", "capabilityStructureStatusValid", "aerInfoValid"],
+            "properties": {
+                "portTypeValid": {
+                    "type": "boolean"
+                },
+                "versionValid": {
+                    "type": "boolean"
+                },
+                "commandStatusValid": {
+                    "type": "boolean"
+                },
+                "deviceIDValid": {
+                    "type": "boolean"
+                },
+                "deviceSerialNumberValid": {
+                    "type": "boolean"
+                },
+                "bridgeControlStatusValid": {
+                    "type": "boolean"
+                },
+                "capabilityStructureStatusValid": {
+                    "type": "boolean"
+                },
+                "aerInfoValid": {
+                    "type": "boolean"
+                }
+            }
+        },
+        "portType": {
+            "type": "object",
+            "$ref": "../common/cper-json-nvp.json"
+        },
+        "version": {
+            "type": "object",
+            "required": ["major", "minor"],
+            "properties": {
+                "major": {
+                    "type": "integer"
+                },
+                "minor": {
+                    "type": "integer"
+                }
+            }
+        },
+        "commandStatus": {
+            "type": "object",
+            "required": ["commandRegister", "statusRegister"],
+            "properties": {
+                "commandRegister": {
+                    "type" : "integer"
+                },
+                "statusRegister": {
+                    "type": "integer"
+                }
+            }
+        },
+        "deviceID": {
+            "type": "object",
+            "required": ["vendorID", "deviceID", "classCode", "functionNumber", "deviceNumber", "segmentNumber", "primaryOrDeviceBusNumber", "secondaryBusNumber", "slotNumber"],
+            "properties": {
+                "vendorID": {
+                    "type": "integer"
+                },
+                "deviceID": {
+                    "type": "integer"
+                },
+                "classCode": {
+                    "type": "integer"
+                },
+                "functionNumber": {
+                    "type": "integer"
+                },
+                "deviceNumber": {
+                    "type": "integer"
+                },
+                "segmentNumber": {
+                    "type": "integer"
+                },
+                "primaryOrDeviceBusNumber": {
+                    "type": "integer"
+                },
+                "secondaryBusNumber": {
+                    "type": "integer"
+                },
+                "slotNumber": {
+                    "type": "integer"
+                }
+            }
+        },
+        "deviceSerialNumber": {
+            "type": "integer"
+        },
+        "bridgeControlStatus": {
+            "type": "object",
+            "required": ["secondaryStatusRegister", "controlRegister"],
+            "properties": {
+                "secondaryStatusRegister": {
+                    "type": "integer"
+                },
+                "controlRegister": {
+                    "type": "integer"
+                }
+            }
+        },
+        "capabilityStructure": {
+            "type": "object",
+            "required": ["data"],
+            "properties": {
+                "data": {
+                    "type": "string"
+                }
+            }
+        },
+        "aerInfo": {
+            "type": "object",
+            "required": ["capabilityID", "capabilityVersion", "uncorrectableErrorStatusRegister", "uncorrectableErrorMaskRegister", "uncorrectableErrorSeverityRegister", "correctableErrorStatusRegister", "correctableErrorMaskRegister", "aeccReg", "headerLogRegister", "rootErrorCommand", "rootErrorStatus", "errorSourceIDRegister", "correctableErrorSourceIDRegister"],
+            "properties": {
+                "capabilityID": {
+                    "type": "integer"
+                },
+                "capabilityVersion": {
+                    "type": "integer"
+                },
+                "uncorrectableErrorStatusRegister": {
+                    "type": "integer"
+                },
+                "uncorrectableErrorMaskRegister": {
+                    "type": "integer"
+                },
+                "uncorrectableErrorSeverityRegister": {
+                    "type": "integer"
+                },
+                "correctableErrorStatusRegister": {
+                    "type": "integer"
+                },
+                "correctableErrorMaskRegister": {
+                    "type": "integer"
+                },
+                "aeccReg": {
+                    "type": "integer"
+                },
+                "headerLogRegister": {
+                    "type": "string"
+                },
+                "rootErrorCommand": {
+                    "type": "integer"
+                },
+                "rootErrorStatus": {
+                    "type": "integer"
+                },
+                "errorSourceIDRegister": {
+                    "type": "integer"
+                },
+                "correctableErrorSourceIDRegister": {
+                    "type": "integer"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/sections/cper-vtd-dmar.json b/specification/json/sections/cper-vtd-dmar.json
new file mode 100644
index 0000000..aa6716d
--- /dev/null
+++ b/specification/json/sections/cper-vtd-dmar.json
@@ -0,0 +1,88 @@
+{
+    "$id": "cper-json-vtd-dmar-section",
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "type": "object",
+    "required": ["version", "revision", "oemID", "capabilityRegister", "extendedCapabilityRegister", "globalCommandRegister", "globalStatusRegister", "faultStatusRegister", "faultRecord", "rootEntry", "contextEntry", "pageTableEntry_Level6", "pageTableEntry_Level5", "pageTableEntry_Level4", "pageTableEntry_Level3", "pageTableEntry_Level2", "pageTableEntry_Level1"],
+    "additionalProperties": false,
+    "properties": {
+        "version": {
+            "type": "integer"
+        },
+        "revision": {
+            "type": "integer"
+        },
+        "oemID": {
+            "type": "integer"
+        },
+        "capabilityRegister": {
+            "type": "integer"
+        },
+        "extendedCapabilityRegister": {
+            "type": "integer"
+        },
+        "globalCommandRegister": {
+            "type": "integer"
+        },
+        "globalStatusRegister": {
+            "type": "integer"
+        },
+        "faultStatusRegister": {
+            "type": "object",
+            "required": ["faultInformation", "sourceIdentifier", "privelegeModeRequested", "executePermissionRequested", "pasidPresent", "faultReason", "pasidValue", "addressType", "type"],
+            "properties": {
+                "faultInformation": {
+                    "type": "integer"
+                },
+                "sourceIdentifier": {
+                    "type": "integer"
+                },
+                "privelegeModeRequested": {
+                    "type": "boolean"
+                },
+                "executePermissionRequested": {
+                    "type": "boolean"
+                },
+                "pasidPresent": {
+                    "type": "boolean"
+                },
+                "faultReason": {
+                    "type": "integer"
+                },
+                "pasidValue": {
+                    "type": "integer"
+                },
+                "addressType": {
+                    "type": "integer"
+                },
+                "type": {
+                    "type": "object",
+                    "$ref": "../common/cper-json-nvp.json"
+                }
+            }
+        },
+        "rootEntry": {
+            "type": "string"
+        },
+        "contextEntry": {
+            "type": "string"
+        },
+        "pageEntry_Level6": {
+            "type": "integer"
+        },
+        "pageEntry_Level5": {
+            "type": "integer"
+        },
+        "pageEntry_Level4": {
+            "type": "integer"
+        },
+        "pageEntry_Level3": {
+            "type": "integer"
+        },
+        "pageEntry_Level2": {
+            "type": "integer"
+        },
+        "pageEntry_Level1": {
+            "type": "integer"
+        }
+    }
+}
\ No newline at end of file