This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Given an address, how to check its IDAU Security attribution information?

From "ARM v8-M Architecture Reference Manual", about IDAU I see:

The IDAU can provide the following Security attribution information for an address:
• Security attribution exempt. This specifies that the address is exempt from security attribution. This information is combined with the address ranges that are architecturally required to be exempt from attribution.
• Non-secure. This specifies if the address is Secure or Non-secure.
• Non-secure callable. This specifies if code at the address can be called from Non-secure state. This attribute is only valid if the address is marked as Secure.
• Region number. This is the region number that matches the address, and is only used by the TT instruction.
• Region number valid. This specifies that the region number is valid. This field has no effect on the attribution of the address, and is only used by the TT instruction.

Given an address, how can I check its IDAU security attribution? Like any register value or API can be checked to see these attribution info? Thanks  

Parents
  • With the help provided by kappajacko and Joseph, I did some tests. I'm trying to conclude, in case it's helpful to others.

    1. SAU_CTRL
                ENABLE = 0
                ALLNS = 1                        
        Then, memory setting follows IDAU.
    2. SAU_CTRL
                ENABLE = 1
        Then, all regions become Secure.
        Then, if SAU further tries to change an IDAU non-secure region back to non-secure, it can.  
                  If SAU further tries to change an IDAU secure region to non-secure, it can NOT.

    arm-none-eabi/6.3.1/include/arm_cmse.h provides API such as cmse_check_address_range, which can be called to check a memory region/address is secure or non-secure. 

Reply
  • With the help provided by kappajacko and Joseph, I did some tests. I'm trying to conclude, in case it's helpful to others.

    1. SAU_CTRL
                ENABLE = 0
                ALLNS = 1                        
        Then, memory setting follows IDAU.
    2. SAU_CTRL
                ENABLE = 1
        Then, all regions become Secure.
        Then, if SAU further tries to change an IDAU non-secure region back to non-secure, it can.  
                  If SAU further tries to change an IDAU secure region to non-secure, it can NOT.

    arm-none-eabi/6.3.1/include/arm_cmse.h provides API such as cmse_check_address_range, which can be called to check a memory region/address is secure or non-secure. 

Children
No data