Add memory error/memory error 2 sections.
diff --git a/sections/cper-section-arm.c b/sections/cper-section-arm.c
index da5d533..f16fe0a 100644
--- a/sections/cper-section-arm.c
+++ b/sections/cper-section-arm.c
@@ -322,11 +322,11 @@
 {
     json_object* register_array = json_object_new_object();
     json_object* mrs_encoding = json_object_new_object();
-    json_object_object_add(mrs_encoding, "op2", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "crm", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "crn", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "op1", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "o0", json_object_new_int(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "op2", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "crm", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "crn", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "op1", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "o0", json_object_new_uint64(misc_register->MrsOp2));
     json_object_object_add(register_array, "mrsEncoding", mrs_encoding);
     json_object_object_add(register_array, "value", json_object_new_uint64(misc_register->Value));
 
diff --git a/sections/cper-section-memory.c b/sections/cper-section-memory.c
index 5f78eed..296425c 100644
--- a/sections/cper-section-memory.c
+++ b/sections/cper-section-memory.c
@@ -26,8 +26,17 @@
 
     //Bank.
     json_object* bank = json_object_new_object();
-    json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
-    json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    if ((memory_error->ValidFields >> 5) & 0x1)
+    {
+        //Entire bank address mode.
+        json_object_object_add(bank, "value", json_object_new_uint64(memory_error->Bank));
+    }
+    else 
+    {
+        //Address/group address mode.
+        json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
+        json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    }
     json_object_object_add(section_ir, "bank", bank);
 
     //Memory error type.
@@ -80,8 +89,17 @@
 
     //Bank.
     json_object* bank = json_object_new_object();
-    json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
-    json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    if ((memory_error->ValidFields >> 5) & 0x1)
+    {
+        //Entire bank address mode.
+        json_object_object_add(bank, "value", json_object_new_uint64(memory_error->Bank));
+    }
+    else 
+    {
+        //Address/group address mode.
+        json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
+        json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    }
     json_object_object_add(section_ir, "bank", bank);
 
     //Memory error type.