freebsd-dev/sys/x86/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
..
xen
_align.h
_inttypes.h
_limits.h
_stdint.h
_types.h i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
acpica_machdep.h x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
apicreg.h x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
apicvar.h x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
apm_bios.h x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
bus_dma.h x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +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
busdma_impl.h Allow loading the same DMA address multiple times without any prior 2019-05-16 17:41:16 +00:00
cputypes.h Add support for Hygon Dhyana Family 18h processor. 2020-01-21 13:22:35 +00:00
dump.h
elf.h x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
endian.h
fdt.h
float.h
fpu.h
frame.h
ifunc.h Remove resolver_qual from DEFINE_IFUNC/DEFINE_UIFUNC macros. 2019-05-16 22:20:54 +00:00
init.h
intr_machdep.h Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
iommu.h o Add machine/iommu.h and include MD iommu headers from it, 2020-08-05 19:11:31 +00:00
legacyvar.h
mca.h
metadata.h
mptable.h
ofw_machdep.h
pci_cfgreg.h pci_cfgreg.c: Use io port config access for early boot time. 2019-04-09 18:07:17 +00:00
procctl.h Add amd64 procctl(2) ops to manage forced LA48/LA57 VA after exec. 2020-08-23 20:32:13 +00:00
psl.h
ptrace.h
pvclock.h
reg.h
segments.h
setjmp.h
sigframe.h
signal.h
specialreg.h Add constant for the DE_CFG MSR on AMD CPUs. 2020-09-11 20:32:40 +00:00
stack.h Reimplement stack capture of running threads on i386 and amd64. 2020-01-31 15:43:33 +00:00
stdarg.h
sysarch.h Add usermode helpers for for Intel userspace protection keys feature. 2019-02-20 09:56:23 +00:00
trap.h
ucode.h
ucontext.h
vdso.h
vmware.h
x86_smp.h Allow swi_sched() to be called from NMI context. 2020-07-25 15:19:38 +00:00
x86_var.h Export a routine to provide the TSC_AUX MSR value and use this in vmm. 2020-08-18 11:36:38 +00:00