/* SPDX-License-Identifier: GPL-2.0-or-later *//* * Copyright(c) 2013-2016 Intel Corporation. * * Adrian Burns (adrian.burns@intel.com) * Thomas Faust (thomas.faust@intel.com) * Ivan De Cesaris (ivan.de.cesaris@intel.com) * Julien Carreno (julien.carreno@intel.com) * Jeffrey Maxwell (jeffrey.r.maxwell@intel.com) * * Contact Information: * Intel Corporation *//* ... *//* * @file * This is the interface to the probemode operations for Lakemont 1 (LMT1). *//* ... */#ifndefOPENOCD_TARGET_LAKEMONT_H#defineOPENOCD_TARGET_LAKEMONT_H#include<jtag/jtag.h>#include<helper/types.h>/* The Intel Quark SoC X1000 Core is codenamed lakemont */#defineLMT_IRLEN8/* lakemont tap instruction opcodes */#defineIDCODE2#defineSUBMITPIR3#definePROBEMODE4#defineWRPIR6#defineRDWRPDR8#defineTAPSTATUS11#defineBYPASS255#defineNOT_NULL2/* DR sizes */#defineID_SIZE32#definePM_SIZE1#definePIR_SIZE64#definePDR_SIZE32#defineTS_SIZE32#defineBP_SIZE1#defineMAX_SCAN_SIZEPIR_SIZE/* needed during lakemont probemode */#defineNOT_PMREG0xfe#defineNOT_AVAIL_REG0xff#definePM_DSB((uint32_t)0x00000000)#definePM_DSL((uint32_t)0xFFFFFFFF)#definePM_DSAR((uint32_t)0x004F9300)#definePM_DR7((uint32_t)0x00000400)#defineDELAY_SUBMITPIR0/* for now 0 is working *//* lakemont tapstatus bits */#defineTS_PRDY_BIT((uint32_t)0x00000001)#defineTS_EN_PM_BIT((uint32_t)0x00000002)#defineTS_PM_BIT((uint32_t)0x00000004)#defineTS_PMCR_BIT((uint32_t)0x00000008)#defineTS_SBP_BIT((uint32_t)0x00000010)28 definesstructlakemont_core_reg{uint32_tnum;structtarget*target;structx86_32_common*x86_32_common;uint64_top;uint8_tpm_idx;...};structscan_blk{uint8_tout[MAX_SCAN_SIZE];/* scanned out to the tap */uint8_tin[MAX_SCAN_SIZE];/* in to our capture buf */structscan_fieldfield;...};#defineI(name)(((structlakemont_core_reg*)x86_32->cache->reg_list[name].arch_info)->pm_idx)intlakemont_init_target(structcommand_context*cmd_ctx,structtarget*t);intlakemont_init_arch_info(structtarget*t,structx86_32_common*x86_32);intlakemont_poll(structtarget*t);intlakemont_arch_state(structtarget*t);intlakemont_halt(structtarget*t);intlakemont_resume(structtarget*t,intcurrent,target_addr_taddress,inthandle_breakpoints,intdebug_execution);intlakemont_step(structtarget*t,intcurrent,target_addr_taddress,inthandle_breakpoints);intlakemont_reset_assert(structtarget*t);intlakemont_reset_deassert(structtarget*t);intlakemont_update_after_probemode_entry(structtarget*t);/* ... */#endif/* OPENOCD_TARGET_LAKEMONT_H */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
Click anywhere in the source to view detailed information here...