6 #include <soc/crashlog.h>
9 #include <soc/pci_devs.h>
31 u32 tmp_bar_addr = 0, desc_table_addr = 0;
72 desc_table_addr = tmp_bar_addr +
discovery_buf.bits.desc_tabl_offset;
133 printk(
BIOS_DEBUG,
"Read ID for Telemetry: 0x%x differs from expected: 0x%x\n",
142 if (cl_devsc_cap->cap_data.fields.next_cap_offset == 0
143 || cl_devsc_cap->cap_data.fields.next_cap_offset == 0xFFFF) {
145 cl_devsc_cap->cap_data.fields.pcie_cap_id);
148 new_offset = cl_devsc_cap->cap_data.fields.next_cap_offset;
165 u32 bar_addr = 0, disc_tab_addr = 0;
167 disc_tab_addr = bar_addr +
181 printk(
BIOS_ERR,
"Invalid CPU crashlog discovery table GUID, expected = 0x%X ,"
189 cur_offset = 16 + 8*i;
192 (disc_tab_addr + cur_offset + 4)) << 32));
#define TELEMETRY_EXTENDED_CAP_ID
#define CRASHLOG_DVSEC_ID
#define TEL_DVSEC_TBIR_BAR1
#define TEL_DVSEV_DISCOVERY_TABLE_OFFSET
#define TEL_DVSEC_PCIE_CAP_ID
#define TEL_DVSEC_TBIR_BAR0
#define CRASHLOG_MAILBOX_INTF_ADDRESS
static uint32_t read32(const void *addr)
void * memset(void *dstpp, int c, size_t len)
int pmc_cl_gen_descriptor_table(u32 desc_table_addr, pmc_crashlog_desc_table_t *descriptor_table)
#define PMC_IPC_CMD_CRASHLOG
#define PMC_IPC_CMD_ID_CRASHLOG_DISCOVERY
#define CPU_CRASHLOG_DISC_TAB_GUID_VALID
#define printk(level,...)
static u32 cpu_crash_version
bool cl_pmc_sram_has_mmio_access(void)
static bool m_pmc_crashLog_support
bool cl_pmc_data_present(void)
int cl_get_total_data_size(void)
int cl_get_pmc_record_size(void)
static bool m_pmc_crashLog_present
cpu_crashlog_discovery_table_t cl_get_cpu_discovery_table(void)
static u32 m_cpu_crashLog_size
static bool cpu_cl_gen_discovery_table(void)
static pmc_crashlog_desc_table_t descriptor_table
pmc_ipc_discovery_buf_t cl_get_pmc_discovery_buf(void)
int cl_get_cpu_record_size(void)
bool cl_cpu_data_present(void)
static u32 m_pmc_crashLog_size
static bool m_cpu_crashLog_present
static pmc_ipc_discovery_buf_t discovery_buf
static tel_crashlog_devsc_cap_t cpu_cl_devsc_cap
bool pmc_crashlog_support(void)
void update_new_pmc_crashlog_size(u32 *pmc_crash_size)
u32 cl_get_cpu_bar_addr(void)
void update_new_cpu_crashlog_size(u32 *cpu_crash_size)
pmc_crashlog_desc_table_t cl_get_pmc_descriptor_table(void)
static bool cpu_cl_get_capability(tel_crashlog_devsc_cap_t *cl_devsc_cap)
bool cpu_crashlog_support(void)
bool cpu_cl_discovery(void)
u32 cl_get_cpu_tmp_bar(void)
static cpu_crashlog_discovery_table_t cpu_cl_disc_tab
static bool m_cpu_crashLog_support
bool pmc_cl_discovery(void)
u32 __weak cl_get_cpu_mb_int_addr(void)
void reset_discovery_buffers(void)
static __always_inline void pci_write_config32(const struct device *dev, u16 reg, u32 val)
static __always_inline void pci_or_config16(const struct device *dev, u16 reg, u16 ormask)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
#define PCH_PWRM_BASE_ADDRESS
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
#define PCI_BASE_ADDRESS_MEM_ATTR_MASK
#define PCI_COMMAND_MEMORY
#define PCI_BASE_ADDRESS_0
#define PCI_BASE_ADDRESS_1
enum cb_err pmc_send_ipc_cmd(uint32_t cmd, const struct pmc_ipc_buffer *wbuf, struct pmc_ipc_buffer *rbuf)
#define PMC_IPC_CMD_SIZE_SHIFT
static uint32_t pmc_make_ipc_cmd(uint32_t cmd, uint32_t subcmd, uint32_t size)
const struct smm_save_state_ops *legacy_ops __weak
uint32_t buf[PMC_IPC_BUF_COUNT]