freebsd-dev/sys/arm/include
Michal Meloun 95a85c125d Add NetBSD compatible bus_space_peek_N() and bus_space_poke_N() functions.
One problem with the bus_space_read_N() and bus_space_write_N() family of
functions is that they provide no protection against exceptions which can
occur when no physical hardware or device responds to the read or write
cycles. In such a situation, the system typically would panic due to a
kernel-mode bus error. The bus_space_peek_N() and bus_space_poke_N() family
of functions provide a mechanism to handle these exceptions gracefully
without the risk of crashing the system.

Typical example is access to PCI(e) configuration space in bus enumeration
function on badly implemented PCI(e) root complexes (RK3399 or Neoverse
N1 N1SDP and/or access to PCI(e) register when device is in deep sleep state.

This commit adds a real implementation for arm64 only. The remaining
architectures have bus_space_peek()/bus_space_poke() emulated by using
bus_space_read()/bus_space_write() (without exception handling).

MFC after:	1 month
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D25371
2020-09-19 11:06:41 +00:00
..
_align.h
_bus.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
_inttypes.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
_limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_stdint.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
_types.h Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
acle-compat.h
armreg.h Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
asm.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
asmacros.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
atags.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
atomic-v4.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
atomic-v6.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
atomic.h Expand generic subword atomic primitives 2020-03-25 23:12:43 +00:00
blockio.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
bus_dma.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
bus.h Add NetBSD compatible bus_space_peek_N() and bus_space_poke_N() functions. 2020-09-19 11:06:41 +00:00
clock.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
counter.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
cpu-v4.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
cpu-v6.h
cpu.h align use of cp15_pmccntr_get with its availability 2019-10-07 07:37:42 +00:00
cpufunc.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
cpuinfo.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
db_machdep.h No need to force md code to define a macro that's the same as 2018-04-16 13:52:23 +00:00
debug_monitor.h
disassem.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
dump.h
efi.h
elf.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
endian.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
fiq.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
float.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
floatingpoint.h
frame.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
gdb_machdep.h amd64: Protect the kernel text, data, and BSS by setting the RW/NX bits 2018-03-06 14:28:37 +00:00
ieee.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ieeefp.h
in_cksum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
intr.h Remove checks for now unsupported CPU_* values in arm headers. 2018-08-15 13:48:59 +00:00
kdb.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
machdep.h Declare the global kernel symbols created by ldscript.arm in arm's machdep.h, 2019-12-06 03:48:35 +00:00
md_var.h Convert arm's physmem interface to MI code 2020-04-19 00:12:30 +00:00
memdev.h Add the MEM_EXTRACT_PADDR ioctl to /dev/mem. 2020-09-02 18:12:47 +00:00
metadata.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
minidump.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
ofw_machdep.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
param.h Simplify MACHINE_ARCH to be a single string. 2020-06-15 18:57:43 +00:00
pcb.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
pcpu_aux.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
pcpu.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
pl310.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
platform.h
platformvar.h Use named field's initializer when constructing <foo>_platform structure. 2019-03-19 14:32:54 +00:00
pmap_var.h
pmap-v4.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
pmap-v6.h Add support for pmap_enter(..., psind=1) to the armv6 pmap. In other words, 2018-08-08 16:55:01 +00:00
pmap.h Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
pmc_mdep.h Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
proc.h
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
profile.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
psl.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
pte-v4.h Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
pte-v6.h
ptrace.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
reg.h
reloc.h
resource.h
runq.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
sc_machdep.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
setjmp.h
sf_buf.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
sigframe.h
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
smp.h Only support INTRNG in the SMP code on arm. We already require INTRNG on 2018-07-28 07:54:21 +00:00
stack.h Rewrite arm kernel stack unwind code to work when unwinding through modules. 2019-12-15 21:16:35 +00:00
stdarg.h Introduce an architecture-agnostic <sys/_stdarg.h> to reduce 2017-12-25 20:54:00 +00:00
swi.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
sysarch.h De-pollute arm's sysarch.h. 2019-07-10 14:34:52 +00:00
sysreg.h Add the virtualisation special register definitions. 2017-12-14 13:19:43 +00:00
trap.h
ucontext.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
undefined.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
utrap.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
vdso.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
vfp.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
vm.h sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
vmparam.h Define PHYS_TO_DMAP() and DMAP_TO_PHYS() as panics on the architectures 2018-01-19 22:17:13 +00:00