# SPDX-License-Identifier: GPL-2.0-or-later
# OpenOCD configuration file for Xtensa ESP32 target

#  Core definition and ABI
xtensa xtdef	LX
xtensa xtopt	arnum				64
xtensa xtopt	windowed			1

#  Exception/Interrupt Options
xtensa xtopt	exceptions			1
xtensa xtopt	hipriints			1
xtensa xtopt	intlevels			6
xtensa xtopt	excmlevel			3

#  Cache Options
xtensa xtmem	icache				4 0 1
xtensa xtmem	dcache				4 0 1 0

#  Memory Options
xtensa xtmem	irom				0x400D0000	0x330000
xtensa xtmem	irom				0x40000000	0x64F00
xtensa xtmem	iram				0x40070000	0x30000
xtensa xtmem	iram				0x400C0000	0x2000
xtensa xtmem	drom				0x3F400000	0x800000
xtensa xtmem	drom				0x3FF90000	0x10000
xtensa xtmem	dram				0x3FFAE000	0x52000
xtensa xtmem	dram				0x3FF80000	0x2000
xtensa xtmem	dram				0x3F800000	0x400000
xtensa xtmem	dram				0x50000000	0x2000
xtensa xtmem	dram				0x3FF00000	0x71000
xtensa xtmem	dram				0x60000000	0x20000000

#  Memory Protection/Translation Options

#  Debug Options
xtensa xtopt	debuglevel			6
xtensa xtopt	ibreaknum			2
xtensa xtopt	dbreaknum			2
xtensa xtopt	tracemem			0x4000
xtensa xtopt	tracememrev			1
xtensa xtopt	perfcount			2

#  Core Registers
#  xtregfmt:	Optionally specify "contiguous" vs. "sparse" GDB register map.
#				Default setting is "sparse" and is used with xt-gdb.
#				If contiguous, optional parameter specifies number of registers
#				in "Read General Registers" (g-packet) requests.
#				NOTE: For contiguous format, registers listed in GDB order.
#  xtregs:		Total number of Xtensa registers in the system
xtensa xtregs	173
xtensa xtregfmt	contiguous			105
xtensa xtreg	pc					0x0020
xtensa xtreg	ar0					0x0100
xtensa xtreg	ar1					0x0101
xtensa xtreg	ar2					0x0102
xtensa xtreg	ar3					0x0103
xtensa xtreg	ar4					0x0104
xtensa xtreg	ar5					0x0105
xtensa xtreg	ar6					0x0106
xtensa xtreg	ar7					0x0107
xtensa xtreg	ar8					0x0108
xtensa xtreg	ar9					0x0109
xtensa xtreg	ar10				0x010a
xtensa xtreg	ar11				0x010b
xtensa xtreg	ar12				0x010c
xtensa xtreg	ar13				0x010d
xtensa xtreg	ar14				0x010e
xtensa xtreg	ar15				0x010f
xtensa xtreg	ar16				0x0110
xtensa xtreg	ar17				0x0111
xtensa xtreg	ar18				0x0112
xtensa xtreg	ar19				0x0113
xtensa xtreg	ar20				0x0114
xtensa xtreg	ar21				0x0115
xtensa xtreg	ar22				0x0116
xtensa xtreg	ar23				0x0117
xtensa xtreg	ar24				0x0118
xtensa xtreg	ar25				0x0119
xtensa xtreg	ar26				0x011a
xtensa xtreg	ar27				0x011b
xtensa xtreg	ar28				0x011c
xtensa xtreg	ar29				0x011d
xtensa xtreg	ar30				0x011e
xtensa xtreg	ar31				0x011f
xtensa xtreg	ar32				0x0120
xtensa xtreg	ar33				0x0121
xtensa xtreg	ar34				0x0122
xtensa xtreg	ar35				0x0123
xtensa xtreg	ar36				0x0124
xtensa xtreg	ar37				0x0125
xtensa xtreg	ar38				0x0126
xtensa xtreg	ar39				0x0127
xtensa xtreg	ar40				0x0128
xtensa xtreg	ar41				0x0129
xtensa xtreg	ar42				0x012a
xtensa xtreg	ar43				0x012b
xtensa xtreg	ar44				0x012c
xtensa xtreg	ar45				0x012d
xtensa xtreg	ar46				0x012e
xtensa xtreg	ar47				0x012f
xtensa xtreg	ar48				0x0130
xtensa xtreg	ar49				0x0131
xtensa xtreg	ar50				0x0132
xtensa xtreg	ar51				0x0133
xtensa xtreg	ar52				0x0134
xtensa xtreg	ar53				0x0135
xtensa xtreg	ar54				0x0136
xtensa xtreg	ar55				0x0137
xtensa xtreg	ar56				0x0138
xtensa xtreg	ar57				0x0139
xtensa xtreg	ar58				0x013a
xtensa xtreg	ar59				0x013b
xtensa xtreg	ar60				0x013c
xtensa xtreg	ar61				0x013d
xtensa xtreg	ar62				0x013e
xtensa xtreg	ar63				0x013f
xtensa xtreg	lbeg				0x0200
xtensa xtreg	lend				0x0201
xtensa xtreg	lcount				0x0202
xtensa xtreg	sar					0x0203
xtensa xtreg	windowbase			0x0248
xtensa xtreg	windowstart			0x0249
xtensa xtreg	configid0			0x02b0
xtensa xtreg	configid1			0x02d0
xtensa xtreg	ps					0x02e6
xtensa xtreg	threadptr			0x03e7
xtensa xtreg	br					0x0204
xtensa xtreg	scompare1			0x020c
xtensa xtreg	acclo				0x0210
xtensa xtreg	acchi				0x0211
xtensa xtreg	m0					0x0220
xtensa xtreg	m1					0x0221
xtensa xtreg	m2					0x0222
xtensa xtreg	m3					0x0223
xtensa xtreg	expstate			0x03e6
xtensa xtreg	f64r_lo				0x03ea
xtensa xtreg	f64r_hi				0x03eb
xtensa xtreg	f64s				0x03ec
xtensa xtreg	f0					0x0030
xtensa xtreg	f1					0x0031
xtensa xtreg	f2					0x0032
xtensa xtreg	f3					0x0033
xtensa xtreg	f4					0x0034
xtensa xtreg	f5					0x0035
xtensa xtreg	f6					0x0036
xtensa xtreg	f7					0x0037
xtensa xtreg	f8					0x0038
xtensa xtreg	f9					0x0039
xtensa xtreg	f10					0x003a
xtensa xtreg	f11					0x003b
xtensa xtreg	f12					0x003c
xtensa xtreg	f13					0x003d
xtensa xtreg	f14					0x003e
xtensa xtreg	f15					0x003f
xtensa xtreg	fcr					0x03e8
xtensa xtreg	fsr					0x03e9
xtensa xtreg	mmid				0x0259
xtensa xtreg	ibreakenable		0x0260
xtensa xtreg	memctl				0x0261
xtensa xtreg	atomctl				0x0263
xtensa xtreg	ddr					0x0268
xtensa xtreg	ibreaka0			0x0280
xtensa xtreg	ibreaka1			0x0281
xtensa xtreg	dbreaka0			0x0290
xtensa xtreg	dbreaka1			0x0291
xtensa xtreg	dbreakc0			0x02a0
xtensa xtreg	dbreakc1			0x02a1
xtensa xtreg	epc1				0x02b1
xtensa xtreg	epc2				0x02b2
xtensa xtreg	epc3				0x02b3
xtensa xtreg	epc4				0x02b4
xtensa xtreg	epc5				0x02b5
xtensa xtreg	epc6				0x02b6
xtensa xtreg	epc7				0x02b7
xtensa xtreg	depc				0x02c0
xtensa xtreg	eps2				0x02c2
xtensa xtreg	eps3				0x02c3
xtensa xtreg	eps4				0x02c4
xtensa xtreg	eps5				0x02c5
xtensa xtreg	eps6				0x02c6
xtensa xtreg	eps7				0x02c7
xtensa xtreg	excsave1			0x02d1
xtensa xtreg	excsave2			0x02d2
xtensa xtreg	excsave3			0x02d3
xtensa xtreg	excsave4			0x02d4
xtensa xtreg	excsave5			0x02d5
xtensa xtreg	excsave6			0x02d6
xtensa xtreg	excsave7			0x02d7
xtensa xtreg	cpenable			0x02e0
xtensa xtreg	interrupt			0x02e2
xtensa xtreg	intset				0x02e2
xtensa xtreg	intclear			0x02e3
xtensa xtreg	intenable			0x02e4
xtensa xtreg	vecbase				0x02e7
xtensa xtreg	exccause			0x02e8
xtensa xtreg	debugcause			0x02e9
xtensa xtreg	ccount				0x02ea
xtensa xtreg	prid				0x02eb
xtensa xtreg	icount				0x02ec
xtensa xtreg	icountlevel			0x02ed
xtensa xtreg	excvaddr			0x02ee
xtensa xtreg	ccompare0			0x02f0
xtensa xtreg	ccompare1			0x02f1
xtensa xtreg	ccompare2			0x02f2
xtensa xtreg	misc0				0x02f4
xtensa xtreg	misc1				0x02f5
xtensa xtreg	misc2				0x02f6
xtensa xtreg	misc3				0x02f7
xtensa xtreg	a0					0x0000
xtensa xtreg	a1					0x0001
xtensa xtreg	a2					0x0002
xtensa xtreg	a3					0x0003
xtensa xtreg	a4					0x0004
xtensa xtreg	a5					0x0005
xtensa xtreg	a6					0x0006
xtensa xtreg	a7					0x0007
xtensa xtreg	a8					0x0008
xtensa xtreg	a9					0x0009
xtensa xtreg	a10					0x000a
xtensa xtreg	a11					0x000b
xtensa xtreg	a12					0x000c
xtensa xtreg	a13					0x000d
xtensa xtreg	a14					0x000e
xtensa xtreg	a15					0x000f