Fault Injection to cache location using an interface provide in emcem

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

Fault Injection to cache location using an interface provide in emcem

179 次查看
Rudved_3366
Contributor I

Hello team,

I have addition question to below query (what values to select as arguments for eMcem_setupinjectionChannel - NXP Community

I need to inject a 2-bit fault in Cache location but I'm not sure what it means as mentioned in the reference manual and we use NXP s32K394 microcontroller:

Rudved_3366_0-1791374596002.png

I need to call below function 2 times to inject the faults in cache and get the 2-bit error in cache like below: 

Rudved_3366_1-1791374706513.png

If I'm doing wrongly, could you please share the example code how to do this injection, and currently we are using SAF package in our project, so if there are already fault injection code exists for the these, please share which file I need to refer to inject all kind of faults using (EIM) for memory test interface which is provided in SAF module.

 

0 项奖励
回复
2 回复数

107 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Hello @Rudved_3366,

I haven’t found an example of this cache injection, but here it is in a nutshell:

Before injecting the CM7_0 I-cache tag double-bit error, verify that the relevant I-cache error-bank entries (IEBRn) are available and unlocked.

danielmartynek_0-1791448008505.png

I tested it on S32K344, which I have on the bench, I injected: 

	if (eMcem_SetupInjectionChannel(EMCEM_EIM_CH_3, 1, 2 ) != (Std_ReturnType)E_OK)
	{
		while (1U);
	}
	if (eMcem_InjectFault(EMCEM_EIM_CH_3) != (Std_ReturnType)E_OK)
	{
		while (1U);
	}

 

Then, in the handler, disable the EIM.

void BusFault_Handler(void)
{
if(IP_EIM->EIMCR & EIM_EIMCR_GEIEN_MASK)
{
IP_EIM->EIMCR = EIM_EIMCR_GEIEN(0);
}
}

 

NOTE that the recovery code (such as the vector table referenced by VTOR, the exception handler, and whatever the handler calls) must not be in a cacheable region, because we do not want the error to be injected again during recovery.

Then, read the IEBR registers again and clear them by writing 0 to them.

danielmartynek_2-1791449944755.png

Call an API to invalidate the cache.

 

Regards,

Daniel

 

 

 

0 项奖励
回复

129 次查看
Rudved_3366
Contributor I

Hello @danielmartynek , 

can you please check above query also which is related to fault injection to cache address.

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2419094%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%BD%BF%E7%94%A8%20emcem%20%E4%B8%AD%E6%8F%90%E4%BE%9B%E7%9A%84%E6%8E%A5%E5%8F%A3%E5%90%91%E7%BC%93%E5%AD%98%E4%BD%8D%E7%BD%AE%E6%B3%A8%E5%85%A5%E6%95%85%E9%9A%9C%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2419094%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%88%91%E8%BF%98%E6%9C%89%E4%B8%80%E4%B8%AA%E5%85%B3%E4%BA%8E%E4%BB%A5%E4%B8%8B%E6%9F%A5%E8%AF%A2%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%88%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K%2Fwhat-values-to-select-as-arguments-for-eMcem%2Fm-p%2F2418919%22%20target%3D%22_blank%22%3EeMcem_setupinjectionChannel%20%E7%9A%84%E5%8F%82%E6%95%B0%E5%BA%94%E8%AF%A5%E9%80%89%E6%8B%A9%E5%93%AA%E4%BA%9B%E5%80%BC%20-%20NXP%20%E7%A4%BE%E5%8C%BA%EF%BC%89%E3%80%82%3C%2FA%3E%3CLI-EMOJI%20id%3D%22lia_disappointed-face%22%20title%3D%22%3Adisappointed_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FP%3E%3CP%3E%E6%88%91%E9%9C%80%E8%A6%81%E5%9C%A8%E7%BC%93%E5%AD%98%E4%BD%8D%E7%BD%AE%E6%B3%A8%E5%85%A5%E4%B8%80%E4%B8%AA%202%20%E4%BD%8D%E6%95%85%E9%9A%9C%EF%BC%8C%E4%BD%86%E6%88%91%E4%B8%8D%E5%A4%AA%E7%A1%AE%E5%AE%9A%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E4%B8%AD%E6%8F%90%E5%88%B0%E7%9A%84%E5%85%B7%E4%BD%93%E5%90%AB%E4%B9%89%EF%BC%8C%E6%88%91%E4%BB%AC%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20NXP%20s32K394%20%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%EF%BC%9A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Rudved_3366_0-1791374596002.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Rudved_3366_0-1791374596002.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F397427i2C544983E483817E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Rudved_3366_0-1791374596002.png%22%20alt%3D%22Rudved_3366_0-1791374596002.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E6%88%91%E9%9C%80%E8%A6%81%E8%B0%83%E7%94%A8%E4%BB%A5%E4%B8%8B%E5%87%BD%E6%95%B0%E4%B8%A4%E6%AC%A1%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%B0%86%E9%94%99%E8%AF%AF%E6%B3%A8%E5%85%A5%E7%BC%93%E5%AD%98%EF%BC%8C%E5%B9%B6%E8%8E%B7%E5%8F%96%E7%BC%93%E5%AD%98%E4%B8%AD%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%E7%9A%84%202%20%E4%BD%8D%E9%94%99%E8%AF%AF%EF%BC%9A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Rudved_3366_1-1791374706513.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Rudved_3366_1-1791374706513.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F397428i026D4E802521F59E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Rudved_3366_1-1791374706513.png%22%20alt%3D%22Rudved_3366_1-1791374706513.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%E6%88%91%E7%9A%84%E5%81%9A%E6%B3%95%E6%9C%89%E8%AF%AF%EF%BC%8C%E8%83%BD%E5%90%A6%E8%AF%B7%E6%82%A8%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%8B%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E8%BF%99%E7%A7%8D%E6%B3%A8%E5%85%A5%E7%9A%84%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%EF%BC%9F%E7%9B%AE%E5%89%8D%E6%88%91%E4%BB%AC%E7%9A%84%E9%A1%B9%E7%9B%AE%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20SAF%20%E4%BB%A3%E7%A0%81%E5%8C%85%EF%BC%8C%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%B7%B2%E7%BB%8F%E6%9C%89%E9%92%88%E5%AF%B9%E8%BF%99%E4%BA%9B%E7%9A%84%E6%95%85%E9%9A%9C%E6%B3%A8%E5%85%A5%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%AF%B7%E5%91%8A%E8%AF%89%E6%88%91%E9%9C%80%E8%A6%81%E5%8F%82%E8%80%83%E5%93%AA%E4%B8%AA%E6%96%87%E4%BB%B6%E6%89%8D%E8%83%BD%E4%BD%BF%E7%94%A8%20SAF%20%E6%A8%A1%E5%9D%97%E4%B8%AD%E6%8F%90%E4%BE%9B%E7%9A%84%E5%86%85%E5%AD%98%E6%B5%8B%E8%AF%95%E6%8E%A5%E5%8F%A3%20(EIM)%20%E6%B3%A8%E5%85%A5%E5%90%84%E7%A7%8D%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%85%E9%9A%9C%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2419352%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Fault%20Injection%20to%20cache%20location%20using%20an%20interface%20provide%20in%20emcem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2419352%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F267166%22%20target%3D%22_blank%22%3E%40Rudved_3366%3C%2FA%3E%20%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E6%88%91%E8%BF%98%E6%B2%A1%E6%9C%89%E6%89%BE%E5%88%B0%E8%BF%99%E7%A7%8D%E7%BC%93%E5%AD%98%E6%B3%A8%E5%85%A5%E7%9A%84%E4%BE%8B%E5%AD%90%EF%BC%8C%E4%BD%86%E7%AE%80%E8%80%8C%E8%A8%80%E4%B9%8B%E5%B0%B1%E6%98%AF%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E6%B3%A8%E5%85%A5%20CM7_0%20%E6%8C%87%E4%BB%A4%E7%BC%93%E5%AD%98%20%E6%A0%87%E7%AD%BE%E5%8F%8C%E4%BD%8D%E9%94%99%E8%AF%AF%E4%B9%8B%E5%89%8D%EF%BC%8C%E8%AF%B7%E9%AA%8C%E8%AF%81%E7%9B%B8%E5%85%B3%E7%9A%84%20%E6%8C%87%E4%BB%A4%E7%BC%93%E5%AD%98%20%E9%94%99%E8%AF%AF%E5%BA%93%E6%9D%A1%E7%9B%AE%20(IEBRn)%20%E6%98%AF%E5%90%A6%E5%8F%AF%E7%94%A8%E4%B8%94%E5%B7%B2%E8%A7%A3%E9%94%81%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22danielmartynek_0-1791448008505.png%22%20style%3D%22width%3A%20846px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22danielmartynek_0-1791448008505.png%22%20style%3D%22width%3A%20846px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F397519i86E10B7FF9F4D90A%2Fimage-dimensions%2F846x159%3Fv%3Dv2%22%20width%3D%22846%22%20height%3D%22159%22%20role%3D%22button%22%20title%3D%22danielmartynek_0-1791448008505.png%22%20alt%3D%22danielmartynek_0-1791448008505.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E6%88%91%E5%9C%A8%E4%B8%80%E5%8F%B0S32K344%E4%B8%8A%E8%BF%9B%E8%A1%8C%E4%BA%86%E6%B5%8B%E8%AF%95%EF%BC%8C%E8%BF%99%E5%8F%B0%E6%9C%BA%E5%99%A8%E5%B0%B1%E5%9C%A8%E6%88%91%E5%B7%A5%E4%BD%9C%E5%8F%B0%E4%B8%8A%E3%80%82%E6%88%91%E6%B3%A8%E5%85%A5%E4%BA%86%EF%BC%9A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%09if%20(eMcem_SetupInjectionChannel(EMCEM_EIM_CH_3%2C%201%2C%202%20)%20!%3D%20(Std_ReturnType)E_OK)%0A%09%7B%0A%09%09while%20(1U)%3B%0A%09%7D%0A%09if%20(eMcem_InjectFault(EMCEM_EIM_CH_3)%20!%3D%20(Std_ReturnType)E_OK)%0A%09%7B%0A%09%09while%20(1U)%3B%0A%09%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E7%84%B6%E5%90%8E%EF%BC%8C%E5%9C%A8%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%A6%81%E7%94%A8%20EIM%E3%80%82%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Evoid%20BusFault_Handler(void)%0A%7B%0Aif(IP_EIM-%26gt%3BEIMCR%20%26amp%3B%20EIM_EIMCR_GEIEN_MASK)%0A%7B%0AIP_EIM-%26gt%3BEIMCR%20%3D%20EIM_EIMCR_GEIEN(0)%3B%0A%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8C%E6%81%A2%E5%A4%8D%E4%BB%A3%E7%A0%81%EF%BC%88%E4%BE%8B%E5%A6%82%20VTOR%20%E5%BC%95%E7%94%A8%E7%9A%84%E5%90%91%E9%87%8F%E8%A1%A8%E3%80%81%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E8%B0%83%E7%94%A8%E7%9A%84%E4%BB%BB%E4%BD%95%E5%86%85%E5%AE%B9%EF%BC%89%E4%B8%8D%E8%83%BD%E4%BD%8D%E4%BA%8E%E5%8F%AF%E7%BC%93%E5%AD%98%E5%8C%BA%E5%9F%9F%E4%B8%AD%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%88%91%E4%BB%AC%E4%B8%8D%E5%B8%8C%E6%9C%9B%E5%9C%A8%E6%81%A2%E5%A4%8D%E6%9C%9F%E9%97%B4%E5%86%8D%E6%AC%A1%E6%B3%A8%E5%85%A5%E9%94%99%E8%AF%AF%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%84%B6%E5%90%8E%EF%BC%8C%E5%86%8D%E6%AC%A1%E8%AF%BB%E5%8F%96%20IEBR%20%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%8C%E5%B9%B6%E9%80%9A%E8%BF%87%E5%90%91%E5%85%B6%E5%86%99%E5%85%A5%200%20%E6%9D%A5%E6%B8%85%E9%99%A4%E5%AE%83%E4%BB%AC%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22danielmartynek_2-1791449944755.png%22%20style%3D%22width%3A%20879px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22danielmartynek_2-1791449944755.png%22%20style%3D%22width%3A%20879px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F397523i76571DD2CED41459%2Fimage-dimensions%2F879x145%3Fv%3Dv2%22%20width%3D%22879%22%20height%3D%22145%22%20role%3D%22button%22%20title%3D%22danielmartynek_2-1791449944755.png%22%20alt%3D%22danielmartynek_2-1791449944755.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E8%B0%83%E7%94%A8%20API%20%E4%BD%BF%E7%BC%93%E5%AD%98%E5%A4%B1%E6%95%88%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E4%B8%B9%E5%B0%BC%E5%B0%94%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2419164%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Fault%20Injection%20to%20cache%20location%20using%20an%20interface%20provide%20in%20emcem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2419164%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F160001%22%20target%3D%22_blank%22%3E%40danielmartynek%3C%2FA%3E%20%EF%BC%8C%3C%2FP%3E%3CP%3E%E8%AF%B7%E6%82%A8%E4%B9%9F%E6%9F%A5%E7%9C%8B%E4%B8%80%E4%B8%8B%E4%B8%8A%E9%9D%A2%E5%85%B3%E4%BA%8E%E7%BC%93%E5%AD%98%E5%9C%B0%E5%9D%80%E6%95%85%E9%9A%9C%E6%B3%A8%E5%85%A5%E7%9A%84%E6%9F%A5%E8%AF%A2%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E