S32K344 SMR Entry Install Service Fail with Invalid Param, Not Supported, and Not Allowed Error Code

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K344 SMR Entry Install Service Fail with Invalid Param, Not Supported, and Not Allowed Error Code

跳至解决方案
883 次查看
Feifan
Contributor II

I'm trying to set up advanced secure boot for S32K344. While setting up and running the HSE SMR entry install service, I keep getting a mix of following error codes: HSE_SRV_RSP_INVALID_PARAM, HSE_SRV_RSP_NOT_SUPPORTED, and HSE_SRV_RSP_NOT_ALLOWED. Could you guys help take a look at this? Thanks in advance!

The algo i'm using is ECDSA P-256 + SHA2-256.

I've double checked that:
Instruction cache is turned off
Data cache is turned off
MPU is turned off
SMR region is inside internal code flash, thus memory mapped
XRDC configuration is at default, so HSE should be able to access the code flash
Public key used is set to verify only
Has super user access and in CUST_DEL state
Erased SMR before install service

Below is a snippet of the code:
#define APP_BL_START_ADDR (0x00401000)
#define APP_BL_SIZE (0x1000)

#define APP_BL_SIGNATURE_R_START_ADDR (0x0041ff00)
#define APP_BL_SIGNATURE_R_SIZE (0x20)
#define APP_BL_SIGNATURE_S_START_ADDR (0x0041ff80)
#define APP_BL_SIGNATURE_S_SIZE (0x20)

// key handle for the ecc public key
hseKeyHandle_t verif_key_handle =
    (hseKeyHandle_t)GET_KEY_HANDLE(HSE_KEY_CATALOG_ID_NVM, 0, 0);

// function call to import the public key, HSE returned good status

// set up the signature scheme also the hash algo for signing
hseAuthScheme_t auth_scheme;
auth_scheme.sigScheme.signSch = HSE_SIGN_ECDSA;
auth_scheme.sigScheme.sch.ecdsa.hashAlgo = HSE_HASH_ALGO_SHA2_256;

// set up the decryption scheme, in this case we're not doing
// encryption/decryption
hseSmrDecrypt_t decryption_scheme;
decryption_scheme.decryptKeyHandle = HSE_SMR_DECRYPT_KEY_HANDLE_NOT_USED;

hseSmrConfig_t smr_config = HSE_SMR_CFG_FLAG_INSTALL_AUTH;

// gs_bl_smr_entry is located inside non-cached memory
gs_bl_smr_entry.pSmrsrc=(HOST_ADDR)APP_BL_START_ADDR;
gs_bl_smr_entry.smrSize = APP_BL_SIZE;
gs_bl_smr_entry.pSmrDest = 0;
gs_bl_smr_entry.configFlags = smr_config;
gs_bl_smr_entry.checkPeriod = 0;
gs_bl_smr_entry.authKeyHandle = verif_key_handle;
gs_bl_smr_entry.authScheme = auth_scheme;
gs_bl_smr_entry.pInstAuthTag[0] = (HOST_ADDR)(APP_BL_SIGNATURE_R_START_ADDR);
gs_bl_smr_entry.pInstAuthTag[1] = (HOST_ADDR)(APP_BL_SIGNATURE_S_START_ADDR);
gs_bl_smr_entry.smrDecrypt = decryption_scheme;
gs_bl_smr_entry.versionOffset = HSE_SMR_VERSION_NOT_USED;

// SMR install service, service descriptor is also inside non-cached memory
hse_srv_desc_ptr->srvId = HSE_SRV_ID_SMR_ENTRY_INSTALL;
smr_entry_install_ptr->accessMode = HSE_ACCESS_MODE_ONE_PASS;
smr_entry_install_ptr->entryIndex = 0;
smr_entry_install_ptr->pSmrEntry = (HOST_ADDR)&gs_bl_smr_entry;

smr_entry_install_ptr->pSmrData = (HOST_ADDR)APP_BL_START_ADDR;
smr_entry_install_ptr->smrDataLength = APP_BL_SIZE;
smr_entry_install_ptr->pAuthTag[0] = (HOST_ADDR)APP_BL_SIGNATURE_R_START_ADDR;
smr_entry_install_ptr->pAuthTag[1] = (HOST_ADDR)APP_BL_SIGNATURE_S_START_ADDR;
smr_entry_install_ptr->authTagLength[0] = 256;
smr_entry_install_ptr->authTagLength[1] = 256;

// send service descriptor to hse

0 项奖励
回复
1 解答
855 次查看
Feifan
Contributor II

Found the root cause being MPU is not properly disabled. Once the MPU is properly disabled, this works.

在原帖中查看解决方案

0 项奖励
回复
1 回复
856 次查看
Feifan
Contributor II

Found the root cause being MPU is not properly disabled. Once the MPU is properly disabled, this works.

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2146471%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K344%20SMR%20%E6%9D%A1%E7%9B%AE%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%87%BA%E7%8E%B0%E6%97%A0%E6%95%88%E5%8F%82%E6%95%B0%E3%80%81%E4%B8%8D%E6%94%AF%E6%8C%81%E5%92%8C%E4%B8%8D%E5%85%81%E8%AE%B8%E7%9A%84%E9%94%99%E8%AF%AF%E4%BB%A3%E7%A0%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2146471%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E4%B8%BA%20S32K344%20%E8%AE%BE%E7%BD%AE%E9%AB%98%E7%BA%A7%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%E3%80%82%E5%9C%A8%E8%AE%BE%E7%BD%AE%E5%92%8C%E8%BF%90%E8%A1%8C%20HSE%20SMR%20%E8%BE%93%E5%85%A5%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1%E6%97%B6%EF%BC%8C%E6%88%91%E4%B8%8D%E6%96%AD%E6%94%B6%E5%88%B0%E4%BB%A5%E4%B8%8B%E6%B7%B7%E5%90%88%E9%94%99%E8%AF%AF%E4%BB%A3%E7%A0%81%EF%BC%9AHSE_SRV_RSP_INVALID_PARAM%E3%80%81HSE_SRV_RSP_NOT_SUPPORTED%20%E5%92%8C%20HSE_SRV_RSP_NOT_ALLOWED%E3%80%82%E4%BD%A0%E4%BB%AC%E8%83%BD%E5%B8%AE%E5%BF%99%E7%9C%8B%E7%9C%8B%E5%90%97%EF%BC%9F%E5%9C%A8%E6%AD%A4%E5%85%88%E8%A1%A8%E7%A4%BA%E6%84%9F%E8%B0%A2%EF%BC%81%3C%2FP%3E%3CP%3E%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E7%AE%97%E6%B3%95%E6%98%AF%20ECDSA%20P-256%20%2B%20SHA2-256%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E4%BB%94%E7%BB%86%E6%A3%80%E6%9F%A5%E4%BA%86%EF%BC%9A%3CBR%20%2F%3E%E6%8C%87%E4%BB%A4%E7%BC%93%E5%AD%98%E5%B7%B2%E5%85%B3%E9%97%AD%3CBR%20%2F%3E%E6%95%B0%E6%8D%AE%E7%BC%93%E5%AD%98%E5%B7%B2%E5%85%B3%E9%97%AD%3CBR%20%2F%3EMPU%20%E5%B7%B2%E5%85%B3%E9%97%AD%3CBR%20%2F%3ESMR%20%E5%8C%BA%E5%9F%9F%E4%BD%8D%E4%BA%8E%E5%86%85%E9%83%A8%E4%BB%A3%E7%A0%81%E9%97%AA%E5%AD%98%E5%86%85%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%98%AF%E5%86%85%E5%AD%98%E6%98%A0%E5%B0%84%3CBR%20%2F%3EXRDC%20%E9%85%8D%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E8%AE%BE%E7%BD%AE%EF%BC%8C%E5%9B%A0%E6%AD%A4%20HSE%20%E5%BA%94%E8%AF%A5%E8%83%BD%E5%A4%9F%E8%AE%BF%E9%97%AE%E4%BB%A3%E7%A0%81%E9%97%AA%E5%AD%98%3CBR%20%2F%3E%E4%BD%BF%E7%94%A8%E7%9A%84%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE%E4%B8%BA%E4%BB%85%E7%94%A8%E4%BA%8E%E9%AA%8C%E8%AF%81%3CBR%20%2F%3E%E5%85%B7%E6%9C%89%E8%B6%85%E7%BA%A7%E7%94%A8%E6%88%B7%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%EF%BC%8C%E5%B9%B6%E5%A4%84%E4%BA%8E%20CUST_DEL%20%E7%8A%B6%E6%80%81%3CBR%20%2F%3E%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%93%A6%E9%99%A4%20SMR%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E6%98%AF%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%EF%BC%9A%3CBR%20%2F%3E%23define%20APP_BL_START_ADDR%20(0x00401000)%3CBR%20%2F%3E%23define%20APP_BL_SIZE%20(0x1000)%3C%2FP%3E%3CP%3E%23define%20APP_BL_SIGNATURE_R_START_ADDR%20(0x0041ff00)%3CBR%20%2F%3E%23define%20APP_BL_SIGNATURE_R_SIZE%20(0x20)%3CBR%20%2F%3E%23define%20APP_BL_SIGNATURE_S_START_ADDR%20(0x0041ff80)%3CBR%20%2F%3E%23define%20APP_BL_SIGNATURE_S_SIZE%20(0x20)%3C%2FP%3E%3CP%3E%2F%2F%20ecc%20%E5%85%AC%E9%92%A5%E7%9A%84%E5%AF%86%E9%92%A5%E5%8F%A5%E6%9F%84%3CBR%20%2F%3EhseKeyHandle_t%20verif_key_handle%20%3D%3CBR%20%2F%3E%20(hseKeyHandle_t)GET_KEY_HANDLE(HSE_KEY_CATALOG_ID_NVM%2C%200%2C%200)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E8%B0%83%E7%94%A8%E5%87%BD%E6%95%B0%E5%AF%BC%E5%85%A5%E5%85%AC%E9%92%A5%EF%BC%8CHSE%20%E8%BF%94%E5%9B%9E%E8%89%AF%E5%A5%BD%E7%8A%B6%E6%80%81%3C%2FP%3E%3CP%3E%2F%2F%20%E5%AE%89%E8%A3%85%E7%AD%BE%E5%90%8D%E6%96%B9%E6%A1%88%E8%BF%98%E8%A6%81%E8%AE%BE%E7%BD%AE%E7%94%A8%E4%BA%8E%E7%AD%BE%E5%90%8D%20hseauthscheme_%20%3CBR%20%2F%3E%20T%20auth_scheme%20%E7%9A%84%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95%EF%BC%9Bauth_scheme.sigscheme.signsch%20%3D%20HSE_SIGN_ECDSA%EF%BC%9Bauth_scheme.sigscheme.signSCH%EF%BC%9Bauth_scheme.sign_ECDSA%EF%BC%9Bauth_scheme.sign_ECDSHEME.signsch%EF%BC%9Bauth_scheme.sign_ECD%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%2F%2F%E5%AE%89%E8%A3%85%E8%A7%A3%E5%AF%86%E6%96%B9%E6%A1%88%EF%BC%8C%E5%9C%A8%E6%9C%AC%E4%BE%8B%E4%B8%AD%E6%88%91%E4%BB%AC%E6%B2%A1%E5%81%9A%2F%3CBR%20%2F%3E%2F%E5%8A%A0%E5%AF%86%2F%E8%A7%A3%E5%AF%86%20hsesmrDecrypt_T%20%E8%A7%A3%E5%AF%86%E6%96%B9%E6%A1%88%EF%BC%9Bdecryption_scheme.decryptKeyHandle%EF%BC%9Bdecryption_scheme.decrypt%20%3CBR%20%2F%3E%20KeyHandle%20%3CBR%20%2F%3E%3D%20hse_smr_decrypt_key_handle_not_used%EF%BC%9B%3C%2FP%3E%3CP%3EhseSmrConfig_t%20smr_config%20%3D%20HSE_SMR_CFG_FLAG_INSTALL_AUTH%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20gs_bl_smr_entry%20%E4%BD%8D%E4%BA%8E%E9%9D%9E%E7%BC%93%E5%AD%98%E5%86%85%E5%AD%98%E4%B8%AD%3CBR%20%2F%3Egs_bl_smr_entry.pSmrsrc%3D(HOST_ADDR)APP_BL_START_ADDR%EF%BC%9B%3CBR%20%2F%3Egs_bl_smr_entry.smrSize%20%3D%20APP_BL_SIZE%3B%3CBR%20%2F%3Egs_bl_smr_entry.pSmrDest%20%3D%200%3B%3CBR%20%2F%3Egs_bl_smr_entry.configFlags%20%3D%20smr_config%3B%3CBR%20%2F%3Egs_bl_smr_entry.checkPeriod%20%3D%200%3B%3CBR%20%2F%3Egs_bl_smr_entry.authKeyHandle%3D%20verif_key_handle%3B%3CBR%20%2F%3Egs_bl_smr_entry.authScheme%20%3D%20auth_scheme%3B%3CBR%20%2F%3Egs_bl_smr_entry.pInstAuthTag%5B0%5D%3D%20(HOST_ADDR)(APP_BL_SIGNATURE_R_START_ADDR)%3B%3CBR%20%2F%3Egs_bl_smr_entry.pInstAuthTag%5B1%5D%3D%20(HOST_ADDR)(APP_BL_SIGNATURE_S_START_ADDR)%3B%3CBR%20%2F%3Egs_bl_smr_entry.smrDecrypt%20%3D%20decryption_scheme%3B%3CBR%20%2F%3Egs_bl_smr_entry.versionOffset%3D%20hse_smr_version_not_used%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20SMR%20%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1%EF%BC%8C%E6%9C%8D%E5%8A%A1%E6%8F%8F%E8%BF%B0%E7%AC%A6%E4%B9%9F%E5%9C%A8%E9%9D%9E%E7%BC%93%E5%AD%98%E5%86%85%E5%AD%98%E4%B8%AD%3CBR%20%2F%3Ehse_srv_desc_ptr-%26gt%3BsrvId%20%3D%20HSE_SRV_ID_SMR_ENTRY_INSTALL%EF%BC%9B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BaccessMode%20%3D%20HSE_ACCESS_MODE_ONE_PASS%EF%BC%9B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BentryIndex%20%3D%200%EF%BC%9B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BpSmrEntry%20%3D%20(HOST_ADDR)%26amp%3Bgs_bl_smr_entry%EF%BC%9B%3C%2FP%3E%3CP%3Esmr_entry_install_ptr-%26gt%3BpSmrData%20%3D%20(HOST_ADDR)APP_BL_START_ADDR%3B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BsmrDataLength%20%3D%20APP_BL_SIZE%3B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BpAuthTag%5B0%5D%20%3D%20(HOST_ADDR)APP_BL_SIGNATURE_R_START_ADDR%EF%BC%9B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BpAuthTag%5B1%5D%20%3D%20(HOST_ADDR)APP_BL_SIGNATURE_S_START_ADDR%3B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BauthTagLength%5B0%5D%20%3D%20256%3B%3CBR%20%2F%3Esmr_entry_install_ptr-%26gt%3BauthTagLength%5B1%5D%20%3D%20256%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%20%E5%90%91%20HSE%20%E5%8F%91%E9%80%81%E6%9C%8D%E5%8A%A1%E6%8F%8F%E8%BF%B0%E7%AC%A6%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2147067%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K344%20SMR%20Entry%20Install%20Service%20Fail%20with%20Invalid%20Param%2C%20Not%20Supported%2C%20and%20Not%20Allowed%20Error%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2147067%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%8F%91%E7%8E%B0%E6%A0%B9%E6%9C%AC%E5%8E%9F%E5%9B%A0%E6%98%AF%20MPU%20%E6%9C%AA%E6%AD%A3%E7%A1%AE%E7%A6%81%E7%94%A8%E3%80%82%E4%B8%80%E6%97%A6%20MPU%20%E8%A2%AB%E6%AD%A3%E7%A1%AE%E7%A6%81%E7%94%A8%EF%BC%8C%E5%B0%B1%E5%8F%AF%E4%BB%A5%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E4%BA%86%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E