opnsense-src/sys/arm/include
Zbigniew Bodek 595f8a5905 Introduce support for HW watchpoints and single stepping for ARMv6/v7
Allows for using hardware watchpoints for 1, 2, 4, 8 byte long addresses.
The default configuration of watchpoint is RW but code allows to select
RO or WO and X.
Since debugging registers are per-CPU (CP14) the watchpoint is set on
the CPU that was lucky (or not) to enter DDB.

HW breakpoints are used to perform single step in KDB.
When HW breakpoint is enabled all watchpoints are temporary disabled
to avoid recursive abort on both watchpoint and breakpoint.
In case of branch, the breakpoint is set to both - next instruction
and possible branch address. This requires at least 2 breakpoints
supported in the CPU however this is a must for ARMv6/v7 CPUs.

Reviewed by:   imp
Submitted by:  Zbigniew Bodek <zbb@semihalf.com>
Obtained from: Semihalf
Sponsored by:  Juniper Networks Inc.
Differential Revision: https://reviews.freebsd.org/D4037
2016-01-25 18:02:28 +00:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
_types.h We only support the ARM EABI in head, remove the check on __ARM_EABI__. 2015-05-31 10:51:06 +00:00
acle-compat.h
armreg.h ARM: Add support for new KRAIT 300 CPU revision. 2015-11-28 12:11:44 +00:00
asm.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
asmacros.h opt_global.h is included automatically in the build. No need to 2014-11-18 17:06:56 +00:00
at91_gpio.h
atags.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
atomic-v4.h ARM: Implement atomic_swap_int(9). It's used in DRM2 code. 2015-11-28 12:12:28 +00:00
atomic-v6.h ARM: Implement atomic_swap_int(9). It's used in DRM2 code. 2015-11-28 12:12:28 +00:00
atomic.h ARM: Implement atomic_swap_int(9). It's used in DRM2 code. 2015-11-28 12:12:28 +00:00
blockio.h
board.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
bus.h Limit arm_base_bs_tag to ARMv4 and ARMv5, we only used it in one place in 2015-11-21 13:02:34 +00:00
bus_dma.h Eliminate the last dregs of the old global arm_root_dma_tag. 2015-11-02 22:49:39 +00:00
clock.h
counter.h
cpu-v6.h Introduce support for HW watchpoints and single stepping for ARMv6/v7 2016-01-25 18:02:28 +00:00
cpu.h Now that the PMU implementation is independent of HWPMC 2015-11-09 17:57:32 +00:00
cpuconf.h Remove support for CPU_XSCALE_80200. None of our configs support it, and 2015-03-30 09:29:45 +00:00
cpufunc.h ARM: Remove outdated katelib.h. 2015-12-15 12:52:45 +00:00
cpuinfo.h Set the correct values in the arm aux control register, based on chip type. 2015-10-19 19:18:02 +00:00
db_machdep.h Introduce support for HW watchpoints and single stepping for ARMv6/v7 2016-01-25 18:02:28 +00:00
debug_monitor.h Introduce support for HW watchpoints and single stepping for ARMv6/v7 2016-01-25 18:02:28 +00:00
devmap.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
disassem.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
elf.h Export the eflags field from the elf header. This allows better 2015-05-22 20:50:35 +00:00
endian.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
exec.h
fdt.h Import ARM_INTRNG, the "next generation" interrupt architecture for arm 2015-10-18 18:26:19 +00:00
fiq.h
float.h Rationalize BSD license on sys/*/include/float.h 2015-08-05 17:05:35 +00:00
floatingpoint.h
fp.h
frame.h Cleanup up ARM *frame structures... 2014-12-24 18:54:31 +00:00
gdb_machdep.h
ieee.h
ieeefp.h
in_cksum.h Delete stray clause 3 and renumber. 2015-03-13 02:49:55 +00:00
intr.h [intrng] Migrate the intrng code from sys/arm/arm to sys/kern/subr_intr.c. 2015-12-18 05:43:59 +00:00
kdb.h Introduce support for HW watchpoints and single stepping for ARMv6/v7 2016-01-25 18:02:28 +00:00
limits.h
machdep.h Add support for branch instruction on armv7 with ptrace single step 2015-11-02 16:56:34 +00:00
md_var.h Add support for usermode (vdso-like) gettimeofday(2) and 2015-12-07 12:20:26 +00:00
memdev.h
metadata.h Add support to the efi boot1 and loader for 32-bit ARM. This will be used 2015-04-06 15:50:20 +00:00
minidump.h Add mmu format info into ARM vmcore. 2016-01-15 18:53:06 +00:00
ofw_machdep.h Implement OF_decode_addr() for arm. Move most of powerpc's implementation 2015-12-21 18:07:32 +00:00
param.h ARM userspace accessors, e.g. {s,f}uword(9), copy{in,out}(9), 2015-10-15 17:40:39 +00:00
pcb.h Make PCB structure binary compatible for old and new PMAP on ARM 2015-11-17 13:09:51 +00:00
pcpu.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
physmem.h ARM: Remove trailing whitespace from sys/arm/include 2015-11-10 12:02:41 +00:00
pl310.h Make pl310_print_config static, it's not called out of pl310.c 2015-11-17 11:26:35 +00:00
platform.h
platformvar.h
pmap-v6.h Create new pmap dump interface for minidump and use it for existing 2016-01-25 12:43:07 +00:00
pmap.h Create new pmap dump interface for minidump and use it for existing 2016-01-25 12:43:07 +00:00
pmap_var.h New pmap code for armv6. Disabled by default, option ARM_NEW_PMAP enables it. 2015-03-26 21:13:53 +00:00
pmc_mdep.h Rather than defining our own magic checks here use INKERNEL() for 2015-03-27 08:47:16 +00:00
proc.h Add support for branch instruction on armv7 with ptrace single step 2015-11-02 16:56:34 +00:00
profile.h Stop using load-multiple with lr and pc. This has been deprecated in ARMv7 2015-01-31 19:55:12 +00:00
psl.h
pte-v6.h ARM: create new memory attribute for writethrough cacheable memory. 2015-11-30 17:09:25 +00:00
pte.h Create new pmap dump interface for minidump and use it for existing 2016-01-25 12:43:07 +00:00
ptrace.h
reg.h
reloc.h
resource.h ARM: Define PCI_RES_BUS resource for platforms having NEW_PCIB enabled. 2015-12-02 14:24:14 +00:00
runq.h
sc_machdep.h
setjmp.h
sf_buf.h Flush all kernel mappings from TLB(s) in time when they are cleared. 2015-11-24 13:57:41 +00:00
sigframe.h
signal.h
smp.h [intrng] Migrate the intrng code from sys/arm/arm to sys/kern/subr_intr.c. 2015-12-18 05:43:59 +00:00
stack.h Allow the ARM unwinder to work through modules. This will be used to add 2015-02-19 12:06:57 +00:00
stdarg.h
swi.h
sysarch.h Use __ARM_ARCH to decide when ARM_TP_ADDRESS needs to be set. This fixes 2016-01-16 10:12:50 +00:00
sysreg.h Introduce support for HW watchpoints and single stepping for ARMv6/v7 2016-01-25 18:02:28 +00:00
trap.h Move the check to see if we are tracing a function with the DTrace Function 2015-12-05 09:32:36 +00:00
ucontext.h
undefined.h
utrap.h
vdso.h Add support for usermode (vdso-like) gettimeofday(2) and 2015-12-07 12:20:26 +00:00
vfp.h Treat synchronous VFP exception just like aynchronous: as an FP exception, 2015-11-01 21:59:56 +00:00
vm.h ARM: create new memory attribute for writethrough cacheable memory. 2015-11-30 17:09:25 +00:00
vmparam.h Add support for usermode (vdso-like) gettimeofday(2) and 2015-12-07 12:20:26 +00:00