freebsd-nq/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 Fix types of some values in machine/_limits.h. 2011-01-08 11:13:34 +00:00
_stdint.h Make the wchar_t type machine dependent. 2012-06-24 04:15:58 +00:00
_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 Add userland access to at91 gpio functionality via ioctl calls. Also, 2013-03-29 19:52:57 +00:00
atags.h Defines for parsing linux ATAGs lists. 2012-06-14 14:38:55 +00:00
atomic.h Make the hardware memory and instruction barrier functions work on armv4 2014-05-11 00:43:06 +00:00
blockio.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
board.h Create a generic way to support multiple boards within an 2012-07-07 05:02:39 +00:00
bootconfig.h
bus_dma.h
bus.h o Switch to use physical addresses in rman for FDT. 2013-03-18 15:18:55 +00:00
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 Reserve AT_TIMEKEEP auxv entry for providing usermode the pointer to 2012-06-22 06:38:31 +00:00
endian.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
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 Add C11 macros describing subnormal numbers to float.h. 2012-01-23 06:36:41 +00:00
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 People porting FreeBSD to new architectures ought not have to 2011-10-21 06:41:46 +00:00
in_cksum.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
intr.h Fix arm build. 2014-01-06 17:16:27 +00:00
katelib.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
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 Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). 2011-01-17 22:58:28 +00:00
metadata.h Don't re-use MODINFOMD_BOOTINFO as MODINFOMD_DTBP. It breaks 2011-01-11 22:07:39 +00:00
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 Add ARM callchain support for hwpmc. 2012-06-13 06:38:25 +00:00
proc.h * Correct KINFO_PROC_SIZE for ARM EABI. 2013-01-17 09:52:35 +00:00
profile.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
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 trim trailing whitespace 2012-06-13 05:02:51 +00:00
runq.h
sc_machdep.h Piggyback MIPS changes and add ARM syscons support for devices with 2012-08-25 23:59:31 +00:00
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 Don't use an empty struct. 2013-03-11 10:56:46 +00:00
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 trim trailing whitespace 2012-06-13 05:02:51 +00:00
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 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vfp.h Add more flags for the fpexc register from the ARM1176JZF-S Manual 2014-03-29 10:11:19 +00:00
vm.h Properly implement pmap_[get|set]_memattr 2012-12-19 00:24:31 +00:00
vmparam.h Tell VM we now have ARM platforms with physically discontiguous memory. 2014-04-06 21:40:39 +00:00