freebsd-nq/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 From https://sourceware.org/ml/newlib/2014/msg00113.html 2014-08-14 04:20:13 +00:00
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_dma.h Eliminate the last dregs of the old global arm_root_dma_tag. 2015-11-02 22:49:39 +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
clock.h
counter.h Use atomic_load/store_64() in the arm implementation of counter(9), and 2014-08-01 23:06:38 +00:00
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 VFP fixes/cleanups for ARM11: 2014-03-29 14:35:36 +00:00
frame.h Cleanup up ARM *frame structures... 2014-12-24 18:54:31 +00:00
gdb_machdep.h
ieee.h On ARM EABI double precision floating point values are stored in the 2013-09-07 14:04:10 +00:00
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 When the initarm_* routines were renamed to platform_* and moved to their 2014-08-17 02:56:58 +00:00
platformvar.h Add FDT_PLATFORM_DEF2 for when there are multiple platforms needing to use 2014-05-17 18:02:46 +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
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
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 Fix arm build. 2014-01-06 17:16:27 +00:00
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 Remove NetBSD implementation details not relevant to FreeBSD. 2014-05-23 00:21:02 +00:00
undefined.h Remove #include <machine/frame.h> from all the arm code that doesn't 2013-10-27 01:34:10 +00:00
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