freebsd-dev/sys/mips/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 sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_bus.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
_inttypes.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_stdint.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_types.h Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
abi.h Consistently use 16-byte alignment for MIPS N32 and N64. 2018-01-31 17:36:39 +00:00
asm.h Consistently use 16-byte alignment for MIPS N32 and N64. 2018-01-31 17:36:39 +00:00
atomic.h [PowerPC] [MIPS] Implement 32-bit kernel emulation of atomic64 operations 2020-01-02 23:20:37 +00:00
bootinfo.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
bus_dma.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +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
cache_mipsNN.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache_r4k.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cca.h Make cache coherency attributes definitions available in machine/vm.h on MIPS. 2018-08-01 18:35:17 +00:00
cdefs.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
clock.h
counter.h Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
cpu.h Add a KPI for the delay while spinning on a spin lock. 2018-11-05 21:34:17 +00:00
cpufunc.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
cpuinfo.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
cpuregs.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
db_machdep.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
dump.h
efi.h
elf.h Regularize my copyright notice 2019-12-04 16:56:11 +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/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
float.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
floatingpoint.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
fls64.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fpu.h
frame.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +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
hwfunc.h Add SMP support for BERI CPU. 2018-04-12 17:43:19 +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_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
intr.h bhnd(4): implement MIPS and PCI(e) interrupt support 2017-11-21 23:15:20 +00:00
kdb.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
locore.h
md_var.h Print CPU informtion later in boot. 2020-05-20 21:16:54 +00:00
memdev.h Add the MEM_EXTRACT_PADDR ioctl to /dev/mem. 2020-09-02 18:12:47 +00:00
metadata.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
minidump.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
mips_opcode.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
octeon_cop2.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
ofw_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
param.h MIPS: Implement fue*word* and casueword* in assembly. 2018-03-12 22:10:06 +00:00
pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pcpu_aux.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
pcpu.h mips: fix kernel build after r357804 2020-02-14 20:25:04 +00:00
pmap.h Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
pmc_mdep.h
proc.h Various fixes to TLS for MIPS. 2020-06-12 21:21:18 +00:00
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
profile.h Remove two obsolete comments that reference splhigh/splx. 2019-11-21 18:49:54 +00:00
pte.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
ptrace.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
reg.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
regdef.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
regnum.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
reloc.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
resource.h
runq.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
sc_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
setjmp.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
sf_buf.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
sigframe.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
smp.h
stdarg.h Use standard pattern for stdargs.h 2018-02-12 14:48:05 +00:00
sysarch.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tlb.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
tls.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
trap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ucontext.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
vdso.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
vm.h Make cache coherency attributes definitions available in machine/vm.h on MIPS. 2018-08-01 18:35:17 +00:00
vmparam.h Remove SFBUF_OPTIONAL_DIRECT_MAP and such hacks, replacing them across the 2018-01-19 17:46:31 +00:00