zephyr/soc/riscv/openisa_rv32m1/soc_offsets.h
Gerard Marull-Paretas 95c573f02e soc: riscv: openisa_rv32m1: add missing includes
<soc.h> is needed to pull some APIs defined in soc.h.
<fsl_device_registers.h> is needed to access EVENT0/1 addresses.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-01-19 15:13:53 +00:00

53 lines
1.4 KiB
C

/*
* Copyright (c) 2018 Foundries.io Ltd
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* Extra definitions required for CONFIG_RISCV_SOC_OFFSETS.
*/
#ifndef SOC_RISCV32_OPENISA_RV32M1_SOC_OFFSETS_H_
#define SOC_RISCV32_OPENISA_RV32M1_SOC_OFFSETS_H_
#include <fsl_device_registers.h>
#ifdef CONFIG_SOC_OPENISA_RV32M1_RI5CY
#ifdef CONFIG_RISCV_SOC_CONTEXT_SAVE
/*
* Ensure offset macros are available in <offsets.h>.
*
* Also create a macro which contains the value of &EVENT0->INTPTPENDCLEAR,
* for use in assembly.
*/
#define GEN_SOC_OFFSET_SYMS() \
GEN_OFFSET_SYM(soc_esf_t, lpstart0); \
GEN_OFFSET_SYM(soc_esf_t, lpend0); \
GEN_OFFSET_SYM(soc_esf_t, lpcount0); \
GEN_OFFSET_SYM(soc_esf_t, lpstart1); \
GEN_OFFSET_SYM(soc_esf_t, lpend1); \
GEN_OFFSET_SYM(soc_esf_t, lpcount1); \
GEN_ABSOLUTE_SYM(__EVENT_INTPTPENDCLEAR, \
(uint32_t)&EVENT0->INTPTPENDCLEAR)
#else
#define GEN_SOC_OFFSET_SYMS() \
GEN_ABSOLUTE_SYM(__EVENT_INTPTPENDCLEAR, \
(uint32_t)&EVENT0->INTPTPENDCLEAR)
#endif /* CONFIG_RISCV_SOC_CONTEXT_SAVE */
#endif /* CONFIG_SOC_OPENISA_RV32M1_RI5CY */
#ifdef CONFIG_SOC_OPENISA_RV32M1_ZERO_RISCY
#define GEN_SOC_OFFSET_SYMS() \
GEN_ABSOLUTE_SYM(__EVENT_INTPTPENDCLEAR, \
(uint32_t)&EVENT1->INTPTPENDCLEAR)
#endif /* CONFIG_SOC_OPENISA_RV32M1_ZERO_RISCY */
#endif /* SOC_RISCV32_OPENISA_RV32M1_SOC_OFFSETS_H_ */