UM and ANs describe cases only with Secure boot enabled 'S' chips, but i deal with unsecure LPC5528.
I need only to permanently switch off SWD interface and disable all ISP command except full flash erase.
It is called "CRP2" in old LPC24xx/LPC17xx/LPC18xx/LPC40xx MCUs.
I don't need TZ, signed or enciphered flash image, updates, authentificated debug and so on.
Only to protect flash content from being read from outside.
I tried wrote to CMPA and CFPA such combinations but didn't got success:
CMPA.CC_SOCU_DFLT =
FLASH_CMPA_CC_SOCU_DFLT_NIDEN(0) |
FLASH_CMPA_CC_SOCU_DFLT_DBGEN(0) |
FLASH_CMPA_CC_SOCU_DFLT_SPNIDEN(0) |
FLASH_CMPA_CC_SOCU_DFLT_SPIDEN(0) |
FLASH_CMPA_CC_SOCU_DFLT_TAPEN(1) |
FLASH_CMPA_CC_SOCU_DFLT_CPU1_DBGEN(0) |
FLASH_CMPA_CC_SOCU_DFLT_ISP_CMD_EN(1) |
FLASH_CMPA_CC_SOCU_DFLT_FA_CMD_EN(1) |
FLASH_CMPA_CC_SOCU_DFLT_ME_CMD_EN(1) |
FLASH_CMPA_CC_SOCU_DFLT_CPU1_NIDEN(0);
CMPA.CC_SOCU_DFLT |= FLASH_CMPA_CC_SOCU_DFLT_INVERSE_VALUE( ~CMPA.CC_SOCU_DFLT );
CMPA.CC_SOCU_PIN =
FLASH_CMPA_CC_SOCU_PIN_NIDEN(1) |
FLASH_CMPA_CC_SOCU_PIN_DBGEN(1) |
FLASH_CMPA_CC_SOCU_PIN_SPNIDEN(1) |
FLASH_CMPA_CC_SOCU_PIN_SPIDEN(1) |
FLASH_CMPA_CC_SOCU_PIN_TAPEN(1) |
FLASH_CMPA_CC_SOCU_PIN_CPU1_DBGEN(1) |
FLASH_CMPA_CC_SOCU_PIN_ISP_CMD_EN(1) |
FLASH_CMPA_CC_SOCU_PIN_FA_CMD_EN(1) |
FLASH_CMPA_CC_SOCU_PIN_ME_CMD_EN(1) |
FLASH_CMPA_CC_SOCU_PIN_CPU1_NIDEN(1);
CMPA.CC_SOCU_PIN |= FLASH_CMPA_CC_SOCU_DFLT_INVERSE_VALUE( ~CMPA.CC_SOCU_PIN );
CMPA.SECURE_BOOT_CFG = FLASH_CMPA_SECURE_BOOT_CFG_TZM_IMAGE_TYPE(1);
CFPA_scratch.VERSION = 1;
CFPA_scratch.NS_FW_VERSION = 1;
CFPA_scratch.DCFG_CC_SOCU_DFLT =
FLASH_CFPA_DCFG_CC_SOCU_DFLT_NIDEN(0) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_DBGEN(0) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_SPNIDEN(0) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_SPIDEN(0) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_TAPEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_CPU1_DBGEN(0) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_ISP_CMD_EN(1) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_FA_CMD_EN(1) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_ME_CMD_EN(1) |
FLASH_CFPA_DCFG_CC_SOCU_DFLT_CPU1_NIDEN(0);
CFPA_scratch.DCFG_CC_SOCU_DFLT |= FLASH_CFPA_DCFG_CC_SOCU_DFLT_INVERSE_VALUE( ~ CFPA_scratch.DCFG_CC_SOCU_DFLT );
CFPA_scratch.DCFG_CC_SOCU_PIN =
FLASH_CFPA_DCFG_CC_SOCU_PIN_NIDEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_DBGEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_SPNIDEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_SPIDEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_TAPEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_CPU1_DBGEN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_ISP_CMD_EN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_FA_CMD_EN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_ME_CMD_EN(1) |
FLASH_CFPA_DCFG_CC_SOCU_PIN_CPU1_NIDEN(1);
CFPA_scratch.DCFG_CC_SOCU_PIN |= FLASH_CFPA_DCFG_CC_SOCU_DFLT_INVERSE_VALUE( ~ CFPA_scratch.DCFG_CC_SOCU_PIN );