/* Copyright 2019 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef __CROS_EC_ISH_AON_SHARE_H #define __CROS_EC_ISH_AON_SHARE_H #include "common.h" #include "ia_structs.h" #include "power_mgt.h" /* magic ID for valid aontask image check */ #define AON_MAGIC_ID 0x544E4F41 /*"AONT"*/ /* aontask error code */ #define AON_SUCCESS 0 #define AON_ERROR_NOT_SUPPORT_POWER_MODE 1 #define AON_ERROR_DMA_FAILED 2 /* shared data structure between main FW and aontask */ struct ish_aon_share { /* magic ID */ uint32_t magic_id; /* error counter */ uint32_t error_count; /* last error */ int last_error; /* successfully exit from IPAPG or not */ uint32_t pg_exit; /* high 32bits of 64 bits dram address for dma */ uint32_t uma_msb; /* aontask's TSS segment entry */ struct tss_entry *aon_tss; /* aontask's LDT start address */ ldt_entry *aon_ldt; /* aontask's LDT's limit size */ uint32_t aon_ldt_size; /* current power state, see chip/ish/power_mgt.h */ enum ish_pm_state pm_state; /* for store/restore main FW's IDT */ struct idt_header main_fw_idt_hdr; /** * main FW's read only code and data region in main SRAM, * address need 64 bytes align due to DMA requirement */ uint32_t main_fw_ro_addr; uint32_t main_fw_ro_size; /** * main FW's read and write data region in main SRAM, * address need 64 bytes align due to DMA requirement */ uint32_t main_fw_rw_addr; uint32_t main_fw_rw_size; } __packed; #endif /* __CROS_EC_ISH_AON_SHARE_H */