Add ARM CPER out, fix struct misalignment.
diff --git a/specification/document/cper-json-specification.tex b/specification/document/cper-json-specification.tex
index bafc1b6..3b261a5 100644
--- a/specification/document/cper-json-specification.tex
+++ b/specification/document/cper-json-specification.tex
@@ -754,7 +754,7 @@
 \hline
 flags & object & An ARM Processor Error Info Flags structure as defined in Subsection \ref{subsection:armprocessorerrorinfoflagsstructure}.\\ 
 \hline
-errorInformation & object & An error information structure, as defined in one of Subsections \ref{subsection:armprocessorerrorinfoerrorinformationcachetlbstructure} or \ref{subsection:armprocessorerrorinfoerrorinformationbusstructure}. Which structure this is depends on the \texttt{errorType.value} field.\\
+errorInformation & object & An error information structure, as defined in one of Subsections \ref{subsection:armprocessorerrorinfoerrorinformationcachetlbstructure} or \ref{subsection:armprocessorerrorinfoerrorinformationbusstructure}, or . Which structure this is depends on the \texttt{errorType.value} field.\\
 \hline
 virtualFaultAddress & uint64 & Indicates a virtual fault address associated with the error, such as when an error occurs in virtually indexed cache.\\
 \hline
@@ -794,7 +794,7 @@
 % ARM Processor Error Info Error Information (Cache/TLB) structure
 \subsection{ARM Processor Error Info Cache/TLB Information Structure}
 \label{subsection:armprocessorerrorinfoerrorinformationcachetlbstructure}
-This structure describes cache/TLB error information for a single ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}).
+This structure describes cache/TLB error information for a single ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}). This structure is used when the \texttt{type} field of that structure has the value 0 or 1.
 \jsontable{table:armprocessorerrorinfoerrorinformationcachetlbstructure}
 validationBits & object & An ARM Processor Info Cache/TLB Validation structure as defined in Subsection \ref{subsection:armprocessorerrorinfocachetlbvalidationstructure}.\\
 \hline
@@ -838,7 +838,7 @@
 % ARM Processor Error Info Error Information (Bus) structure
 \subsection{ARM Processor Error Info Bus Information Structure}
 \label{subsection:armprocessorerrorinfoerrorinformationbusstructure}
-This structure describes bus error information for a single ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}).
+This structure describes bus error information for a single ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}). This structure is used when the \texttt{type} field of that structure has the value 2.
 \jsontable{table:armprocessorerrorinfoerrorinformationbusstructure}
 validationBits & object & An ARM Processor Info Bus Validation structure as defined in Subsection \ref{subsection:armprocessorerrorinfobusvalidationstructure}.\\
 \hline
@@ -902,11 +902,21 @@
 accessModeValid & boolean & Whether the "accessMode" field in the ARM Processor Info Bus Information structure (\ref{subsection:armprocessorerrorinfoerrorinformationbusstructure}) is valid.\\
 \jsontableend{ARM Processor Error Info Bus validation structure field table.}
 
+% ARM Processor Error Info Error Information (Microarchitecture/Undefined) structure
+\subsection{ARM Processor Error Info Microarchitecture/Undefined Information Structure}
+\label{subsection:armprocessorerrorinfoerrorinformationmicroarchundefinedstructure}
+This structure describes microarchitecture/other undefined error information for a single ARM Processor Error Info structure (\ref{subsection:armprocessorerrorinfostructure}). This structure is used when the \texttt{type} field of that structure has a value other than 0-2 (inclusive).
+\jsontable{table:armprocessorerrorinfoerrorinformationmicroarchundefinedstructure}
+data & uint64 & The unformatted data represented in the error information structure.\\
+\jsontableend{ARM Processor Error Info Microarchitecture/Undefined Information structure field table.}
+
 % ARM Processor Context Info structure
 \subsection{ARM Processor Context Info Structure}
 \label{subsection:armprocessorcontextinfostructure}
 This structure describes a single ARM Processor Context Info structure, as part of a whole ARM Processor Error structure (\ref{section:armprocessorerrorsection}).
 \jsontable{table:armprocessorcontextinfostructure}
+version & int & The version of the structure. In the referenced UEFI specification, this is 0.\\
+\hline
 registerContextType.value & uint64 & The raw value of the type of processor context state being reported.\\
 registerContextType.name & string & The human readable name, if available, of the type of processor context state being reported.\\
 \hline
diff --git a/specification/json/sections/cper-arm-processor.json b/specification/json/sections/cper-arm-processor.json
index ccad75b..b6c5255 100644
--- a/specification/json/sections/cper-arm-processor.json
+++ b/specification/json/sections/cper-arm-processor.json
@@ -274,6 +274,16 @@
                                         "type": "integer"
                                     }
                                 }
+                            },
+                            {
+                                "type": "object",
+                                "requried": ["data"],
+                                "additionalProperties": false,
+                                "properties": {
+                                    "data": {
+                                        "type": "integer"
+                                    }
+                                }
                             }
                         ]
                     },
@@ -290,9 +300,13 @@
             "type": "array",
             "items": {
                 "type": "object",
-                "required": ["registerContextType", "registerArraySize", "registerArray"],
+                "required": ["version", "registerContextType", "registerArraySize", "registerArray"],
                 "additionalProperties": false,
                 "properties": {
+                    "version": {
+                        "type": "integer",
+                        "minimum": 0
+                    },
                     "registerContextType": {
                         "type": "object",
                         "$ref": "./common/cper-json-nvp.json"