TF-M Isolation Level is 1 with Profile Large

Dear all

Is CONFIG_TFM_ISOLATION_LEVEL = 2 in general supported by Nordic SDK v2.6.0 on a nRF9160?

If set CONFIG_TFM_ISOLATION_LEVEL = 2 in prj.conf, it's always overwritten to 1 by the default value in /nrf/modules/trusted-firmware-m/Kconfig Related kconfigs set in prj.conf:

  • CONFIG_TFM_IPC=1
  • CONFIG_TFM_ISOLATION_LEVEL=2
  • CONFIG_TFM_PROFILE_TYPE_LARGE=y

Thanks for your support

Manuel

Parents Reply
  • Dear  

    I could find out what causes the issue.

    Within our custom secure service we access the UICR register to read the status of APPROTECT, ERASEPROTECT and SECUREAPPROTECT. This leads to the MemManage fault isses (if I comment it out, it works as expected).

    Previously with Isolation Level 1 it worked with the code below within the secure service. How can we read the UICR from non-secure part without violating the memory access rules?

    Best,

    Manuel

        EN_protection protection = PROTECTION_NONE;
        uint32_t *APPROTECT = (uint32_t *)(0x00FF8000);
        uint32_t *ERASEPROTECT = (uint32_t *)(0x00FF8030);
        uint32_t *SECUREAPPROTECT = (uint32_t *)(0x00FF802C);
        if (*APPROTECT != 0xFFFFFFFF) {
            protection |= PROTECTION_ACCESS_PORT;
        }
        if (*ERASEPROTECT != 0xFFFFFFFF) {
            protection |= PROTECTION_ERASE_PROTECTION;
        }
        if (*SECUREAPPROTECT != 0xFFFFFFFF) {
            protection |= PROTECTION_SECURE_ACCESS_PORT;
        }

Children
Related