/* * Copyright (c) 2024 Intel Corporation * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_SOC_INTEL_ADSP_BOOT_H_ #define ZEPHYR_SOC_INTEL_ADSP_BOOT_H_ #define DSPCS_REG 0x178d00 struct dspcs { /* * DSPCSx * DSP Core Shim * * These registers are added by Intel outside of the Tensilica Core for general operation * control, such as reset, stall, power gating, clock gating etc. * Note: These registers are accessible through the host space or DSP space depending on * ownership, as governed by SAI and RS. */ struct { uint32_t cap; uint32_t ctl; } capctl[5]; uint32_t unused0[6]; /* * DSPBRx * DSP Boot / Recovery * * These registers are added by Intel outside of the Tensilica Core for boot / recovery * control, such as boot path, watch dog timer etc. */ struct { uint32_t brcap; uint32_t wdtcs; uint32_t wdtipptr; uint32_t unused1; uint32_t bctl; uint32_t baddr; uint32_t battr; uint32_t unused2; } bootctl[5]; }; #define DSPCS_CTL_SPA BIT(0) #define DSPCS_CTL_CPA BIT(8) #define DSPBR_BCTL_BYPROM BIT(0) #define DSPBR_BCTL_WAITIPCG BIT(16) #define DSPBR_BCTL_WAITIPPG BIT(17) #define DSPBR_BATTR_LPSCTL_RESTORE_BOOT BIT(12) #define DSPBR_BATTR_LPSCTL_HP_CLOCK_BOOT BIT(13) #define DSPBR_BATTR_LPSCTL_LP_CLOCK_BOOT BIT(14) #define DSPBR_BATTR_LPSCTL_L1_MIN_WAY BIT(15) #define DSPBR_BATTR_LPSCTL_BATTR_SLAVE_CORE BIT(16) #define DSPBR_WDT_RESUME BIT(8) #define DSPBR_WDT_RESTART_COMMAND 0x76 #define DSPCS (*(volatile struct dspcs *)DSPCS_REG) #endif /* ZEPHYR_SOC_INTEL_ADSP_BOOT_H_ */