From 25ae37ec2220920004e63c28cf0f48ef181695e4 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Sun, 25 Feb 2024 18:37:31 +0800 Subject: [PATCH] recreate transform file and apply transform --- data/registers/aes_v3a.yaml | 76 +++++++++---------------------------- data/registers/aes_v3b.yaml | 76 +++++++++---------------------------- transforms/AES.yaml | 19 ++++++++++ 3 files changed, 55 insertions(+), 116 deletions(-) create mode 100644 transforms/AES.yaml diff --git a/data/registers/aes_v3a.yaml b/data/registers/aes_v3a.yaml index bbe75a7..9dd3cad 100644 --- a/data/registers/aes_v3a.yaml +++ b/data/registers/aes_v3a.yaml @@ -12,11 +12,9 @@ block/AES: - name: DINR description: Data input register byte_offset: 8 - fieldset: DINR - name: DOUTR description: Data output register byte_offset: 12 - fieldset: DOUTR - name: KEYR description: Key register array: @@ -30,21 +28,18 @@ block/AES: - 40 - 44 byte_offset: 16 - fieldset: KEYR - name: IVR description: Initialization vector register array: len: 4 stride: 4 byte_offset: 32 - fieldset: IVR - name: SUSPR description: Suspend register array: len: 8 stride: 4 byte_offset: 64 - fieldset: SUSPR - name: IER description: interrupt enable register byte_offset: 768 @@ -112,20 +107,6 @@ fieldset/CR: description: AES peripheral software reset bit_offset: 31 bit_size: 1 -fieldset/DINR: - description: Data input register - fields: - - name: DIN - description: Input data word - bit_offset: 0 - bit_size: 32 -fieldset/DOUTR: - description: Data output register - fields: - - name: DOUT - description: Output data word - bit_offset: 0 - bit_size: 32 fieldset/ICR: description: Interrupt clear register fields: @@ -171,20 +152,6 @@ fieldset/ISR: description: Key error interrupt flag bit_offset: 2 bit_size: 1 -fieldset/IVR: - description: Initialization vector register - fields: - - name: IVI - description: Initialization vector input - bit_offset: 0 - bit_size: 32 -fieldset/KEYR: - description: Key register - fields: - - name: KEY - description: Cryptographic key - bit_offset: 0 - bit_size: 32 fieldset/SR: description: Status register fields: @@ -208,13 +175,24 @@ fieldset/SR: description: Key valid flag bit_offset: 7 bit_size: 1 -fieldset/SUSPR: - description: Suspend register - fields: - - name: SUSP - description: AES suspend - bit_offset: 0 - bit_size: 32 +enum/CHMOD: + bit_size: 3 + variants: + - name: ECB + description: Electronic codebook + value: 0 + - name: CBC + description: Cipher-block chaining + value: 1 + - name: CTR + description: Counter mode + value: 2 + - name: GCM_GMAC + description: Galois counter mode and Galois message authentication code + value: 3 + - name: CCM + description: Counter with CBC-MAC + value: 4 enum/DATATYPE: bit_size: 2 variants: @@ -257,21 +235,3 @@ enum/MODE: - name: Mode3 description: Decryption value: 2 -enum/CHMOD: - bit_size: 3 - variants: - - name: ECB - description: Electronic codebook - value: 0 - - name: CBC - description: Cipher-block chaining - value: 1 - - name: CTR - description: Counter mode - value: 2 - - name: GCM_GMAC - description: Galois counter mode and Galois message authentication code - value: 3 - - name: CCM - description: Counter with CBC-MAC - value: 4 diff --git a/data/registers/aes_v3b.yaml b/data/registers/aes_v3b.yaml index 32a85c0..0ef8b12 100644 --- a/data/registers/aes_v3b.yaml +++ b/data/registers/aes_v3b.yaml @@ -12,11 +12,9 @@ block/AES: - name: DINR description: Data input register byte_offset: 8 - fieldset: DINR - name: DOUTR description: Data output register byte_offset: 12 - fieldset: DOUTR - name: KEYR description: Key register array: @@ -30,21 +28,18 @@ block/AES: - 40 - 44 byte_offset: 16 - fieldset: KEYR - name: IVR description: Initialization vector register array: len: 4 stride: 4 byte_offset: 32 - fieldset: IVR - name: SUSPR description: Suspend register array: len: 8 stride: 4 byte_offset: 64 - fieldset: SUSPR - name: IER description: interrupt enable register byte_offset: 768 @@ -112,20 +107,6 @@ fieldset/CR: description: AES peripheral software reset bit_offset: 31 bit_size: 1 -fieldset/DINR: - description: Data input register - fields: - - name: DIN - description: Input data word - bit_offset: 0 - bit_size: 32 -fieldset/DOUTR: - description: Data output register - fields: - - name: DOUT - description: Output data word - bit_offset: 0 - bit_size: 32 fieldset/ICR: description: Interrupt clear register fields: @@ -167,20 +148,6 @@ fieldset/ISR: description: Key error interrupt flag bit_offset: 2 bit_size: 1 -fieldset/IVR: - description: Initialization vector register - fields: - - name: IVI - description: Initialization vector input - bit_offset: 0 - bit_size: 32 -fieldset/KEYR: - description: Key register - fields: - - name: KEY - description: Cryptographic key - bit_offset: 0 - bit_size: 32 fieldset/SR: description: Status register fields: @@ -204,13 +171,24 @@ fieldset/SR: description: Key valid flag bit_offset: 7 bit_size: 1 -fieldset/SUSPR: - description: Suspend register - fields: - - name: SUSP - description: AES suspend - bit_offset: 0 - bit_size: 32 +enum/CHMOD: + bit_size: 3 + variants: + - name: ECB + description: Electronic codebook + value: 0 + - name: CBC + description: Cipher-block chaining + value: 1 + - name: CTR + description: Counter mode + value: 2 + - name: GCM_GMAC + description: Galois counter mode and Galois message authentication code + value: 3 + - name: CCM + description: Counter with CBC-MAC + value: 4 enum/DATATYPE: bit_size: 2 variants: @@ -253,21 +231,3 @@ enum/MODE: - name: Mode3 description: Decryption value: 2 -enum/CHMOD: - bit_size: 3 - variants: - - name: ECB - description: Electronic codebook - value: 0 - - name: CBC - description: Cipher-block chaining - value: 1 - - name: CTR - description: Counter mode - value: 2 - - name: GCM_GMAC - description: Galois counter mode and Galois message authentication code - value: 3 - - name: CCM - description: Counter with CBC-MAC - value: 4 diff --git a/transforms/AES.yaml b/transforms/AES.yaml new file mode 100644 index 0000000..b8a13c8 --- /dev/null +++ b/transforms/AES.yaml @@ -0,0 +1,19 @@ +transforms: + - !DeleteFieldsets + from: ^(DINR|DOUTR|IVR\d|KEYR\d|SUSP\dR)$ + + - !MakeRegisterArray + blocks: AES + from: ^(IVR)\d$ + to: $1 + + - !MakeRegisterArray + blocks: AES + allow_cursed: true + from: ^(KEYR)\d$ + to: $1 + + - !MakeRegisterArray + blocks: AES + from: ^(SUSP)\d(R)$ + to: $1$2