1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
freebsd/sys/arm/include
Ian Lepore b07d0cbce3 Add cpu_l2cache_drain_writebuf(), use it to implement generic_bs_barrier().
On modern ARM SoCs the L2 cache controller sits between the CPU and the
AXI bus, and most on-chip memory-mapped devices are on the AXI bus.  We
map the device registers using the 'Device' memory attribute, which means
the memory is not cached, but writes to it are buffered.  Ensuring that a
write has made it all the way to a device may require that the L2
controller take some action.

There is currently only one implementation of the new function, for the
PL310 cache controller.  It invokes a function that the controller
manual calls "cache sync" but it actually has nothing to do with cache at
all, it triggers a drain of all pending store buffer writes and it blocks
until they complete.

The sheeva and xscale L2 controllers (which predate the concept of Device
memory) don't seem to have a corresponding function.  It appears that the
standard armv5 drain_writebuf function includes draining all the way
through the L2 controller.
2014-05-11 04:24:57 +00:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h Rename __wchar_t so it no longer conflicts with __wchar_t from clang 3.4 2014-04-01 14:46:11 +00:00
armreg.h Add Cortex-A15 cpu id revisions. 2014-04-01 04:56:40 +00:00
asm.h Reduce the difference to NetBSD. 2013-06-07 21:23:11 +00:00
asmacros.h Remove the unreferenced DATA() macro. That leaves only GET_CURTHREAD_PTR() 2014-03-11 22:41:34 +00:00
at91_gpio.h
atags.h
atomic.h Make the hardware memory and instruction barrier functions work on armv4 2014-05-11 00:43:06 +00:00
blockio.h
board.h
bootconfig.h
bus_dma.h
bus.h
clock.h
counter.h Fix issues with zeroing and fetching the counters, on x86 and ppc64. 2013-07-01 02:48:27 +00:00
cpu.h Pass the pagetable used from locore.S to initarm to allow it to map data 2014-02-09 15:54:31 +00:00
cpuconf.h Remove all traces of support for ARM chips prior to the arm9 series. We 2014-03-09 21:12:31 +00:00
cpufunc.h Add cpu_l2cache_drain_writebuf(), use it to implement generic_bs_barrier(). 2014-05-11 04:24:57 +00:00
db_machdep.h
devmap.h Add a prototype for the new arm_devmap_print_table(). This should have 2014-01-09 20:57:19 +00:00
disassem.h
elf.h
endian.h
exec.h
fdt.h Remove dev/fdt/fdt_pci.c, which was code specific to Marvell ARM SoCs, 2014-01-05 22:36:34 +00:00
fiq.h
float.h
floatingpoint.h
fp.h VFP fixes/cleanups for ARM11: 2014-03-29 14:35:36 +00:00
frame.h Remove the last dregs of trapframe_t. It turns out only arm was using 2013-10-27 17:09:23 +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
intr.h Fix arm build. 2014-01-06 17:16:27 +00:00
katelib.h
kdb.h Remove cpu_idcache_wbinv_all() from kdb_cpu_trap(), it's no longer needed. 2014-04-27 18:12:55 +00:00
limits.h
machdep.h Replace many pasted identical definitions of cpu_initclocks() with a common 2014-02-26 22:06:10 +00:00
md_var.h Remove all traces of support for ARM chips prior to the arm9 series. We 2014-03-09 21:12:31 +00:00
memdev.h
metadata.h
minidump.h
ofw_machdep.h Retire machine/fdt.h as a header used by MI code, as its function is now 2014-01-05 18:46:58 +00:00
param.h Simplify how we build MACHINE_ARCH. There are 3 options that may be set 2014-03-22 15:59:18 +00:00
pcb.h Remove all dregs of a per-thread undefined-exception-mode stack. This is 2014-03-09 03:49:06 +00:00
pcpu.h Rework the VFP code that handles demand-based save and restore of state. 2014-03-09 03:00:03 +00:00
physmem.h Give the fdt helper routines static linkage since no global definition 2014-02-17 20:04:57 +00:00
pl310.h Add a public routine to set the L2 cache ram latencies. This can be 2014-05-06 14:19:54 +00:00
pmap.h Move an else case that was missed in r263676 2014-03-24 08:24:32 +00:00
pmc_mdep.h
proc.h
profile.h
psl.h Fix arm build. 2014-01-06 17:16:27 +00:00
pte.h Introduce superpages support for ARMv6/v7. 2013-08-26 17:12:30 +00:00
ptrace.h
reg.h
reloc.h
resource.h
runq.h
sc_machdep.h
setjmp.h Merge in changes from NetBSD: 2013-06-08 07:16:22 +00:00
sf_buf.h Remove the ARM_USE_SMALL_ALLOC option and code related to it. 2014-02-08 22:21:38 +00:00
sigframe.h
signal.h
smp.h There is no difference between IPI_STOP and IPI_STOP_HARD on ARM, so 2014-04-27 20:01:59 +00:00
stack.h
stdarg.h
swi.h
sysarch.h Remove #include <machine/asmacros.h> from files that don't need it. 2014-03-11 22:47:04 +00:00
trap.h
ucontext.h
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
vfp.h Add more flags for the fpexc register from the ARM1176JZF-S Manual 2014-03-29 10:11:19 +00:00
vm.h
vmparam.h Tell VM we now have ARM platforms with physically discontiguous memory. 2014-04-06 21:40:39 +00:00