arm: cortex-m: shrink hidden option for null-pointer detection

Shrink the name of the hidden cortex-m option for the
null-pointer dereference detection feature.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
This commit is contained in:
Ioannis Glaropoulos 2021-05-26 16:26:36 +02:00 committed by Kumar Gala
commit b3b36f69a6
5 changed files with 22 additions and 22 deletions

View file

@ -352,7 +352,7 @@ config NULL_POINTER_EXCEPTION_DETECTION_DWT
depends on CPU_CORTEX_M_HAS_DWT
depends on !TRUSTED_EXECUTION_NONSECURE
select CORTEX_M_DWT
select CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION
select CORTEX_M_NULL_POINTER_EXCEPTION
help
Null pointer dereference detection implemented
using the DWT unit functionality.
@ -369,7 +369,7 @@ config NULL_POINTER_EXCEPTION_DETECTION_MPU
bool "Use MPU for null pointer exception detection"
depends on !TRUSTED_EXECUTION_NONSECURE
depends on ARM_MPU
select CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION
select CORTEX_M_NULL_POINTER_EXCEPTION
help
Null pointer dereference detection implemented
using MPU functionality.
@ -383,7 +383,7 @@ config NULL_POINTER_EXCEPTION_DETECTION_MPU
- In ARMv8-M, explicit null-pointer dereference
detection with MPU requires, additionally, that
the area: [0x0,
CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE)
CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE)
is not unmapped (covered by an MPU region already).
If it is unmapped null-pointer dereferencing may
still be idirectly detected (e.g. via a precise
@ -392,7 +392,7 @@ config NULL_POINTER_EXCEPTION_DETECTION_MPU
endchoice
config CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION
config CORTEX_M_NULL_POINTER_EXCEPTION
bool
help
Enable and use the null pointer exception option.
@ -400,15 +400,15 @@ config CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION
detecting null pointer dereferencing (raising a
CPU fault). Supporting the feature results in an
increased code footprint, determined by option
CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE.
CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE.
Note: this hidden option is selected by the choice
symbols corresponding to the DWT-based or to the
MPU-based solution.
if CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION
if CORTEX_M_NULL_POINTER_EXCEPTION
config CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE
config CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE
hex "Size of paged unmapped to implement null pointer detection"
default 0x400
help
@ -417,7 +417,7 @@ config CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE
offers enhanced detection performance to the cost of
wasting a large flash area that code may not use.
endif # CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION
endif # CORTEX_M_NULL_POINTER_EXCEPTION
rsource "tz/Kconfig"

View file

@ -53,8 +53,8 @@ bool z_arm_debug_monitor_event_error_check(void)
/* The area (0x0 - <size>) monitored by DWT needs to be a power of 2,
* so we add a build assert that catches it.
*/
BUILD_ASSERT(!(CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE &
(CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1)),
BUILD_ASSERT(!(CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE &
(CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1)),
"the size of the partition must be power of 2");
static int z_arm_debug_enable_null_pointer_detection(const struct device *arg)
@ -79,7 +79,7 @@ static int z_arm_debug_enable_null_pointer_detection(const struct device *arg)
/* Use comparators 0, 1, R/W access check */
DWT->COMP0 = 0;
DWT->COMP1 = CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1;
DWT->COMP1 = CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1;
DWT->FUNCTION0 =
((0x4 << DWT_FUNCTION_MATCH_Pos) & DWT_FUNCTION_MATCH_Msk)
@ -112,7 +112,7 @@ static int z_arm_debug_enable_null_pointer_detection(const struct device *arg)
/* Set mask according to the desired size */
DWT->MASK0 = 32 - __builtin_clzl(
CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1);
CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1);
#endif
return 0;

View file

@ -16,6 +16,6 @@
* first stage vector table.
*/
#if defined(CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION)
. = MAX(ABSOLUTE(.), CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE);
#endif /* CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION */
#if defined(CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION)
. = MAX(ABSOLUTE(.), CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE);
#endif /* CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION */

View file

@ -355,12 +355,12 @@ int z_arm_mpu_init(void)
*/
#if defined(CONFIG_NULL_POINTER_EXCEPTION_DETECTION_MPU)
#if (defined(CONFIG_ARMV8_M_BASELINE) || defined(CONFIG_ARMV8_M_MAINLINE)) && \
(CONFIG_FLASH_BASE_ADDRESS > CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE)
(CONFIG_FLASH_BASE_ADDRESS > CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE)
#pragma message "Null-Pointer exception detection cannot be configured on un-mapped flash areas"
#else
const struct z_arm_mpu_partition unmap_region = {
.start = 0x0,
.size = CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE,
.size = CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE,
#if defined(CONFIG_ARMV8_M_BASELINE) || defined(CONFIG_ARMV8_M_MAINLINE)
/* Overlapping region (with any permissions)
* will result in fault generation
@ -377,16 +377,16 @@ int z_arm_mpu_init(void)
* (size and alignment).
*/
_ARCH_MEM_PARTITION_ALIGN_CHECK(0x0,
CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE);
CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE);
#if defined(CONFIG_ARMV8_M_BASELINE) || defined(CONFIG_ARMV8_M_MAINLINE)
/* ARMv8-M requires that the area:
* 0x0 - CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE
* 0x0 - CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE
* is not unmapped (belongs to a valid MPU region already).
*/
if ((arm_cmse_mpu_region_get(0x0) == -EINVAL) ||
(arm_cmse_mpu_region_get(
CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1)
CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION_PAGE_SIZE - 1)
== -EINVAL)) {
__ASSERT(0,
"Null pointer detection page unmapped\n");

View file

@ -481,7 +481,7 @@ void test_arm_user_interrupt(void)
}
#endif /* CONFIG_USERSPACE */
#if defined(CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION)
#if defined(CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION)
#pragma GCC push_options
#pragma GCC optimize("O0")
/* Avoid compiler optimizing null pointer de-referencing. */
@ -511,7 +511,7 @@ void test_arm_null_pointer_exception(void)
TC_PRINT("Skipped\n");
}
#endif /* CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION */
#endif /* CONFIG_CORTEX_M_NULL_POINTER_EXCEPTION */
/**
* @}