From 757213b7a9e40c16aa10af4004db1a22d5dbd562 Mon Sep 17 00:00:00 2001 From: Hector Martin Date: Thu, 13 May 2021 19:53:25 +0900 Subject: [PATCH] apple_regs.json: Add some EL1 registers for AP Still not sure how to enable APSTS_EL12... Signed-off-by: Hector Martin --- proxyclient/hv.py | 3 +++ tools/apple_regs.json | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/proxyclient/hv.py b/proxyclient/hv.py index e36c2d4b..9a546105 100644 --- a/proxyclient/hv.py +++ b/proxyclient/hv.py @@ -46,6 +46,9 @@ class HV: SPRR_PERM_EL0: SPRR_PERM_EL02, SPRR_UNK1_EL1: SPRR_UNK1_EL12, SPRR_UNK2_EL1: SPRR_UNK2_EL12, + APCTL_EL1: APCTL_EL12, + KERNELKEYLO_EL12: KERNELKEYLO_EL12, + KERNELKEYHI_EL12: KERNELKEYHI_EL12, } def __init__(self, iface, proxy, utils): diff --git a/tools/apple_regs.json b/tools/apple_regs.json index 9ac08dc1..f44819f5 100644 --- a/tools/apple_regs.json +++ b/tools/apple_regs.json @@ -113,9 +113,21 @@ {"index": 0, "name": "SPRR_PERM_EL1", "fullname": "SPRR Permission Configuration Register (EL1)", "enc": [3, 6, 15, 1, 6 ], "width": 64}, {"index": 0, "name": "SPRR_PERM_EL2", "fullname": "SPRR Permission Configuration Register (EL2)", "enc": [3, 6, 15, 1, 7 ], "width": 64}, {"index": 0, "name": "E_MMU_ERR_STS_EL1", "fullname": "MMU Error Status (E-Core)", "enc": [3, 6, 15, 2, 0 ], "width": 64}, + {"index": 0, "name": "APGAKeyLo_EL12", "fullname": "Pointer Authentication Key A for Code Low (EL12)", "enc": [3, 6, 15, 2, 1 ], "width": 64}, + {"index": 0, "name": "APGAKeyHi_EL12", "fullname": "Pointer Authentication Key A for Code High (EL12)", "enc": [3, 6, 15, 2, 2 ], "width": 64}, + {"index": 0, "name": "KERNELKEYLO_EL12", "fullname": "Pointer Authentication Kernel Key Low (EL12)", "enc": [3, 6, 15, 2, 3 ], "width": 64}, + {"index": 0, "name": "KERNELKEYHI_EL12", "fullname": "Pointer Authentication Kernel Key High (EL12)", "enc": [3, 6, 15, 2, 4 ], "width": 64}, {"index": 0, "name": "AFPCR_EL0", "fullname": "Apple Floating-Point Control Register", "enc": [3, 6, 15, 2, 5 ], "width": 64}, {"index": 0, "name": "AIDR2_EL1", "fullname": "Apple ID Register 2", "enc": [3, 6, 15, 2, 7 ], "width": 64}, {"index": 0, "name": "SPRR_UNK2_EL1", "fullname": "SPRR Unknown 2 (EL1)", "enc": [3, 6, 15, 3, 0 ], "width": 64}, + {"index": 0, "name": "APIAKeyLo_EL12", "fullname": "Pointer Authentication Key A for Instruction Low (EL12)", "enc": [3, 6, 15, 7, 0 ], "width": 64}, + {"index": 0, "name": "APIAKeyHi_EL12", "fullname": "Pointer Authentication Key A for Instruction High (EL12)", "enc": [3, 6, 15, 7, 1 ], "width": 64}, + {"index": 0, "name": "APIBKeyLo_EL12", "fullname": "Pointer Authentication Key A for Instruction Low (EL12)", "enc": [3, 6, 15, 7, 2 ], "width": 64}, + {"index": 0, "name": "APIBKeyHi_EL12", "fullname": "Pointer Authentication Key A for Instruction High (EL12)", "enc": [3, 6, 15, 7, 3 ], "width": 64}, + {"index": 0, "name": "APDAKeyLo_EL12", "fullname": "Pointer Authentication Key A for Data Low (EL12)", "enc": [3, 6, 15, 7, 4 ], "width": 64}, + {"index": 0, "name": "APDAKeyHi_EL12", "fullname": "Pointer Authentication Key A for Data High (EL12)", "enc": [3, 6, 15, 7, 5 ], "width": 64}, + {"index": 0, "name": "APDBKeyLo_EL12", "fullname": "Pointer Authentication Key A for Data Low (EL12)", "enc": [3, 6, 15, 7, 6 ], "width": 64}, + {"index": 0, "name": "APDBKeyHi_EL12", "fullname": "Pointer Authentication Key A for Data High (EL12)", "enc": [3, 6, 15, 7, 7 ], "width": 64}, {"index": 0, "name": "GXF_STATUS", "fullname": "GXF Status Register", "enc": [3, 6, 15, 8, 0 ], "width": 64, "fieldsets": [{"fields": [ {"name": "GUARDED", "msb": 0, "lsb": 0} @@ -138,10 +150,14 @@ {"index": 0, "name": "ESR_GL2", "fullname": "Exception Syndrome Register (GL2)", "enc": [3, 6, 15, 11, 5 ], "width": 64}, {"index": 0, "name": "ELR_GL2", "fullname": "Exception Link Register (GL2)", "enc": [3, 6, 15, 11, 6 ], "width": 64}, {"index": 0, "name": "FAR_GL2", "fullname": "Fault Address Register (GL2)", "enc": [3, 6, 15, 11, 7 ], "width": 64}, + {"index": 0, "name": "APCTL_EL2", "fullname": "Pointer Authentication Control (EL2)", "enc": [3, 6, 15, 12, 2 ], "width": 64}, + {"index": 0, "name": "APSTS_EL2_MAYBE", "fullname": "Pointer Authentication Status (EL2, maybe)", "enc": [3, 6, 15, 12, 3 ], "width": 64}, {"index": 0, "name": "APSTS_EL1", "fullname": "Pointer Authentication Status", "enc": [3, 6, 15, 12, 4 ], "width": 64}, {"index": 0, "name": "SPRR_CONFIG_EL2", "fullname": "SPRR Configuration Register (EL2)", "enc": [3, 6, 15, 14, 2 ], "width": 64}, {"index": 0, "name": "SPRR_UNK1_EL2", "fullname": "SPRR Unknown (EL2)", "enc": [3, 6, 15, 14, 3 ], "width": 64}, {"index": 0, "name": "ACTLR_EL12", "fullname": "Auxiliary Control Register (EL12)", "enc": [3, 6, 15, 14, 6 ], "width": 64}, + {"index": 0, "name": "APCTL_EL12", "fullname": "Pointer Authentication Control (EL12)", "enc": [3, 6, 15, 15, 0 ], "width": 64}, + {"index": 0, "name": "APSTS_EL12_MAYBE", "fullname": "Pointer Authentication Status (EL12, maybe)", "enc": [3, 6, 15, 15, 1 ], "width": 64}, {"index": 0, "name": "GXF_ENTER_EL12", "fullname": "GXF genter Entry Vector Register (EL12)", "enc": [3, 6, 15, 15, 2 ], "width": 64}, {"index": 0, "name": "GXF_ABORT_EL12", "fullname": "GXF Abort Vector Register (EL12)", "enc": [3, 6, 15, 15, 3 ], "width": 64}, {"index": 0, "name": "SPRR_CONFIG_EL12", "fullname": "SPRR Configuration Register (EL12)", "enc": [3, 6, 15, 15, 4 ], "width": 64},