You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
941 B
34 lines
941 B
/* Copyright (c) 2022 Intel Corporation |
|
* SPDX-License-Identifier: Apache-2.0 |
|
*/ |
|
|
|
|
|
#ifndef ZEPHYR_SOC_INTEL_ADSP_DEBUG_HELPERS_H_ |
|
#define ZEPHYR_SOC_INTEL_ADSP_DEBUG_HELPERS_H_ |
|
|
|
#include <adsp_memory.h> |
|
#include <zephyr/linker/linker-defs.h> |
|
|
|
extern char _imr_start[]; |
|
extern char _imr_end[]; |
|
extern char _end[]; |
|
extern char _heap_sentry[]; |
|
extern char _cached_start[]; |
|
extern char _cached_end[]; |
|
|
|
static inline bool intel_adsp_ptr_executable(const void *p) |
|
{ |
|
return (p >= (void *)__text_region_start && p <= (void *)__text_region_end) || |
|
(p >= (void *)_imr_start && p <= (void *)_imr_end); |
|
} |
|
|
|
static inline bool intel_adsp_ptr_is_sane(uint32_t sp) |
|
{ |
|
return ((char *)sp >= _end && (char *)sp <= _heap_sentry) || |
|
((char *)sp >= _cached_start && (char *)sp <= _cached_end) || |
|
(sp >= (IMR_BOOT_LDR_MANIFEST_BASE - CONFIG_ISR_STACK_SIZE) |
|
&& sp <= IMR_BOOT_LDR_MANIFEST_BASE); |
|
} |
|
|
|
|
|
#endif /* ZEPHYR_SOC_INTEL_ADSP_DEBUG_HELPERS_H_ */
|
|
|