arm: cmsis: Convert _Scb*Fault*Reset to use direct CMSIS register access
Coverted: _ScbMemFaultMmfarReset _ScbBusFaultBfarReset _ScbUsageFaultAllFaultsReset To use direct CMSIS register access. Also removed scb.h and references as there is no longer any code in it. Jira: ZEP-1568 Change-Id: I469f6af39d1bd41db712454b0b3e5ab331979033 Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
94db819626
commit
52cf45c62a
3 changed files with 11 additions and 110 deletions
|
@ -76,18 +76,20 @@ void _FaultDump(const NANO_ESF *esf, int fault)
|
|||
if (SCB->CFSR & CFSR_MMARVALID_Msk) {
|
||||
PR_EXC("MMFAR: 0x%" PRIx32 "\n", SCB->MMFAR);
|
||||
if (escalation) {
|
||||
_ScbMemFaultMmfarReset();
|
||||
/* clear MMAR[VALID] to reset */
|
||||
SCB->CFSR &= ~CFSR_MMARVALID_Msk;
|
||||
}
|
||||
}
|
||||
if (SCB->CFSR & CFSR_BFARVALID_Msk) {
|
||||
PR_EXC("BFAR: 0x%" PRIx32 "\n", SCB->BFAR);
|
||||
if (escalation) {
|
||||
_ScbBusFaultBfarReset();
|
||||
/* clear CFSR_BFAR[VALID] to reset */
|
||||
SCB->CFSR &= ~CFSR_BFARVALID_Msk;
|
||||
}
|
||||
}
|
||||
|
||||
/* clear USFR sticky bits */
|
||||
_ScbUsageFaultAllFaultsReset();
|
||||
SCB->CFSR |= SCB_CFSR_USGFAULTSR_Msk;
|
||||
#else
|
||||
#error Unknown ARM architecture
|
||||
#endif /* CONFIG_ARMV6_M */
|
||||
|
@ -136,7 +138,8 @@ static void _MpuFault(const NANO_ESF *esf, int fromHardFault)
|
|||
if (SCB->CFSR & CFSR_MMARVALID_Msk) {
|
||||
PR_EXC(" Address: 0x%" PRIx32 "\n", SCB->MMFAR);
|
||||
if (fromHardFault) {
|
||||
_ScbMemFaultMmfarReset();
|
||||
/* clear MMAR[VALID] to reset */
|
||||
SCB->CFSR &= ~CFSR_MMARVALID_Msk;
|
||||
}
|
||||
}
|
||||
} else if (SCB->CFSR & CFSR_IACCVIOL_Msk) {
|
||||
|
@ -167,7 +170,8 @@ static void _BusFault(const NANO_ESF *esf, int fromHardFault)
|
|||
if (SCB->CFSR & CFSR_BFARVALID_Msk) {
|
||||
PR_EXC(" Address: 0x%" PRIx32 "\n", SCB->BFAR);
|
||||
if (fromHardFault) {
|
||||
_ScbBusFaultBfarReset();
|
||||
/* clear CFSR_BFAR[VALID] to reset */
|
||||
SCB->CFSR &= ~CFSR_BFARVALID_Msk;
|
||||
}
|
||||
}
|
||||
/* it's possible to have both a precise and imprecise fault */
|
||||
|
@ -215,7 +219,8 @@ static void _UsageFault(const NANO_ESF *esf)
|
|||
PR_EXC(" Attempt to execute undefined instruction\n");
|
||||
}
|
||||
|
||||
_ScbUsageFaultAllFaultsReset();
|
||||
/* clear USFR sticky bits */
|
||||
SCB->CFSR |= SCB_CFSR_USGFAULTSR_Msk;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue