text: /*
   * Copyright (C) 2015-2020 Alibaba Group Holding Limited
   */
  #ifndef __REG_PATCH_ARMV7M_H__
  #define __REG_PATCH_ARMV7M_H__
  
  #ifdef __ARM_ARCH_7EM__
  
  #include "plat_types.h"
  #include "cmsis.h"
  
  struct PATCH_ARMV7M_T {
      __IO uint32_t FP_CTRL;
      __IO uint32_t FP_REMAP;
      __IO uint32_t FP_COMP[512];
  };
  
  #define NUM_CODE_6_4_SHIFT                      12
  #define NUM_CODE_6_4_MASK                       (0x7 << NUM_CODE_6_4_SHIFT)
  #define NUM_CODE_6_4(n)                         BITFIELD_VAL(NUM_CODE_6_4, n)
  #define NUM_LIT_SHIFT                           8
  #define NUM_LIT_MASK                            (0xF << NUM_LIT_SHIFT)
  #define NUM_LIT(n)                              BITFIELD_VAL(NUM_LIT, n)
  #define NUM_CODE_3_0_SHIFT                      4
  #define NUM_CODE_3_0_MASK                       (0xF << NUM_CODE_3_0_SHIFT)
  #define NUM_CODE_3_0(n)                         BITFIELD_VAL(NUM_CODE_3_0, n)
  #define FP_CTRL_KEY                             (1 << 1)
  #define FP_CTRL_ENABLE                          (1 << 0)
  
  #define REMAP_RMPSPT                            (1 << 29)
  #define REMAP_ADDR_28_5_SHIFT                   5
  #define REMAP_ADDR_28_5_MASK                    (0xFFFFFF << REMAP_ADDR_28_5_SHIFT)
  #define REMAP_ADDR_28_5(n)                      BITFIELD_VAL(REMAP_ADDR_28_5, n)
  #define REMAP_ADDR_SHIFT                        0
  #define REMAP_ADDR_MASK                         (0x1FFFFFFF << REMAP_ADDR_SHIFT)
  #define REMAP_ADDR(n)                           BITFIELD_VAL(REMAP_ADDR, n)
  
  #define COMP_REPLACE_SHIFT                      30
  #define COMP_REPLACE_MASK                       (0x3 << COMP_REPLACE_SHIFT)
  #define COMP_REPLACE(n)                         BITFIELD_VAL(COMP_REPLACE, n)
  #define COMP_ADDR_28_2_SHIFT                    2
  #define COMP_ADDR_28_2_MASK                     (0x7FFFFFF << COMP_ADDR_28_2_SHIFT)
  #define COMP_ADDR_28_2(n)                       BITFIELD_VAL(COMP_ADDR_28_2, n)
  #define COMP_ADDR_SHIFT                         0
  #define COMP_ADDR_MASK                          (0x1FFFFFFF << COMP_ADDR_SHIFT)
  #define COMP_ADDR(n)                            BITFIELD_VAL(COMP_ADDR, n)
  #define COMP_ENABLE                             (1 << 0)
  
  #endif
  
  #endif
  