linux/include/asm-arm
Lennert Buytenhek 99c6dc117d [ARM] Feroceon: L2 cache support
This patch adds support for the unified Feroceon L2 cache controller
as found in e.g. the Marvell Kirkwood and Marvell Discovery Duo
families of ARM SoCs.

Note that:

- Page table walks are outer uncacheable on Kirkwood and Discovery
  Duo, since the ARMv5 spec provides no way to indicate outer
  cacheability of page table walks (specifying it in TTBR[4:3] is
  an ARMv6+ feature).

  This requires adding L2 cache clean instructions to
  proc-feroceon.S (dcache_clean_area(), set_pte()) as well as to
  tlbflush.h ({flush,clean}_pmd_entry()).  The latter case is handled
  by defining a new TLB type (TLB_FEROCEON) which is almost identical
  to the v4wbi one but provides a TLB_L2CLEAN_FR flag.

- The Feroceon L2 cache controller supports L2 range (i.e. 'clean L2
  range by MVA' and 'invalidate L2 range by MVA') operations, and this
  patch uses those range operations for all Linux outer cache
  operations, as they are faster than the regular per-line operations.

  L2 range operations are not interruptible on this hardware, which
  avoids potential livelock issues, but can be bad for interrupt
  latency, so there is a compile-time tunable (MAX_RANGE_SIZE) which
  allows you to select the maximum range size to operate on at once.
  (Valid range is between one cache line and one 4KiB page, and must
  be a multiple of the line size.)

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
2008-06-22 22:45:04 +02:00
..
arch-aaec2000 Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
arch-at91 [ARM] fix AT91 include loops 2008-06-01 11:19:54 +01:00
arch-cl7500 [ARM] Use new get_irqnr_preamble 2007-05-12 15:25:50 +01:00
arch-clps711x [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-davinci [ARM] 4634/1: DaVinci GPIO header build fix 2007-10-31 15:21:52 +00:00
arch-ebsa110 [ARM] Use new get_irqnr_preamble 2007-05-12 15:25:50 +01:00
arch-ebsa285 [ARM] Use new get_irqnr_preamble 2007-05-12 15:25:50 +01:00
arch-ep93xx [ARM] 4988/1: Add GPIO lib support to the EP93xx 2008-04-19 14:01:43 +01:00
arch-h720x [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-imx imxfb: fast read flag and nonstandard field configurable 2007-10-16 09:43:21 -07:00
arch-integrator [ARM] Remove Integrator/CP SMP platform support 2007-05-16 15:35:26 +01:00
arch-iop13xx iop-adma: remove the workaround for missed interrupts on iop3xx 2008-04-17 13:25:54 -07:00
arch-iop32x [ARM] 4476/1: EM7210/SS4000E support 2007-07-20 09:35:35 +01:00
arch-iop33x iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver 2007-07-13 08:06:19 -07:00
arch-ixp4xx Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-02-04 15:29:53 -08:00
arch-ixp23xx [ARM] 4680/1: parentheses around NR_IRQS definition 2007-11-29 20:56:57 +00:00
arch-ixp2000 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-ks8695 [ARM] 4981/1: [KS8695] Simple LED driver 2008-04-17 15:58:25 +01:00
arch-l7200 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-lh7a40x [ARM] 4248/1: lh7a40x: fix missing definitions for get_irqnr_preamble 2007-03-08 13:33:57 +00:00
arch-loki [ARM] add Marvell Loki (88RC8480) SoC support 2008-06-22 22:45:02 +02:00
arch-msm [ARM] msm: dma support for MSM7X00A 2008-01-26 14:39:14 +00:00
arch-mxc [ARM] 4887/1: i.MXC family: Separate current platform code 2008-04-17 16:15:17 +01:00
arch-netx [ARM] 4329/1: fix position of NETX_SYSTEM_REG 2007-05-03 20:22:49 +01:00
arch-ns9xxx ns9xxx: let putc autodetect where to write 2008-03-31 08:17:01 +02:00
arch-omap [ARM] fix OMAP include loops 2008-05-23 15:38:07 +01:00
arch-orion5x [ARM] Orion: add a separate BRIDGE_INT_TIMER1_CLR define 2008-06-22 22:45:01 +02:00
arch-pnx4008 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-pxa [ARM] 5091/1: Add missing bitfield include to regs-lcd.h 2008-06-12 20:49:38 +01:00
arch-realview RealView: Add uncompressing support for PB1176 2008-04-18 22:43:16 +01:00
arch-rpc [ARM] 4564/1: Add tagged list support for Acorn RiscPC's uncompress code 2007-10-12 23:43:11 +01:00
arch-s3c2400 [ARM] 4522/1: S3C: split include/asm-arm/arch/memory.h 2007-07-22 17:06:04 +01:00
arch-s3c2410 Merge branch 'merge-fixes' into devel 2008-04-19 17:17:34 +01:00
arch-sa1100 [ARM] 5025/2: fix collie cpu initialisation 2008-05-22 14:03:20 +01:00
arch-shark [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-versatile fix typo 'the same the\>' 2008-02-03 14:59:11 +02:00
hardware [ARM] 5026/1: locomo: add .settype for gpio and several small fixes 2008-05-17 22:53:54 +01:00
mach iop: unconditionally initialize the ATU on platforms known to be 'hosts' 2008-03-26 12:33:41 -07:00
plat-orion [ARM] Feroceon: L2 cache support 2008-06-22 22:45:04 +02:00
plat-s3c [MTD] [NAND] S3C2410 Allow ECC disable to be specified by the board 2008-04-22 21:41:32 +01:00
plat-s3c24xx [ARM] 4786/1: S3C2412: Add SPI FIFO controll constants 2008-01-28 13:20:51 +00:00
.gitignore [ARM] 4216/1: add .gitignore entries for ARM specific files 2007-02-17 11:26:41 +00:00
a.out-core.h aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT 2008-02-08 09:22:30 -08:00
a.out.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
assembler.h [ARM] cache align destination pointer when copying memory for some processors 2008-06-22 22:44:38 +02:00
atomic.h atomic.h: atomic_add_unless as inline. Remove system.h atomic.h circular dependency 2007-05-08 11:15:20 -07:00
auxvec.h
bitops.h ext4: Add ext4_find_next_bit() 2008-01-28 23:58:27 -05:00
bug.h [ARM] 3983/2: remove unused argument to __bug() 2006-12-07 22:38:09 +00:00
bugs.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
byteorder.h
cache.h
cacheflush.h [ARM] Feroceon: L1 cache range operation support 2008-06-22 22:45:03 +02:00
checksum.h [ARM] Improve csum_fold, cleanup csum_tcpudp_magic() 2007-02-06 16:46:46 +00:00
cnt32_to_63.h [ARM] 3978/1: macro to provide a 63-bit value from a 32-bit hardware counter 2006-12-07 16:06:45 +00:00
cpu-multi32.h Add a prefetch abort handler 2008-04-18 22:43:07 +01:00
cpu-single.h [ARM] Unuse another Linux PTE bit 2006-12-13 14:34:43 +00:00
cpu.h
cputime.h
current.h
delay.h
device.h [ARM] Add a reference from struct device to the dma bounce info 2007-02-12 10:28:24 +00:00
div64.h rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
dma-mapping.h arm: sg fallout 2007-10-23 12:37:59 +02:00
dma.h
domain.h [ARM] 4127/1: Flush the prefetch buffer after changing the DACR 2007-02-08 14:49:18 +00:00
dyntick.h [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
ecard.h [ARM] ecard: add ecardm_iomap() / ecardm_iounmap() 2007-05-11 17:19:02 +01:00
elf.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
emergency-restart.h
errno.h
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h
fiq.h
flat.h [ARM] nommu: fix breakage caused by f9720205d1 2007-10-31 15:21:42 +00:00
floppy.h cleanup floppy.h 2007-10-17 08:42:55 -07:00
fpstate.h [ARM] 4583/1: ARMv7: Add VFPv3 support 2008-01-26 14:41:28 +00:00
futex.h
glue.h Add a prefetch abort handler 2008-04-18 22:43:07 +01:00
gpio.h [PATCH] GPIO core 2007-02-12 09:48:34 -08:00
hardirq.h
hardware.h
hw_irq.h [PATCH] misc arm pt_regs fixes 2006-10-08 12:32:36 -07:00
hwcap.h ARMv7: Add support for the ThumbEE state saving/restoring 2008-04-18 22:43:06 +01:00
ide.h ide: remove ide_default_io_ctl() macro 2008-04-18 00:46:34 +02:00
io.h endianness annotations in arm io.h 2007-10-14 12:41:52 -07:00
ioctl.h
ioctls.h [ARM] enable arbitary speed tty ioctls and split input/output speed 2007-05-28 23:07:34 +01:00
ipcbuf.h
irq.h [ARM] 4073/1: Prevent s3c24xx drivers from including asm/arch/hardware.h and asm/arch/irqs.h 2006-12-30 17:05:07 +00:00
irq_regs.h Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
irqflags.h [ARM] Add ARM irqtrace support 2006-09-20 14:58:35 +01:00
Kbuild [ARM] 4473/2: Take the HWCAP definitions out of the elf.h file 2007-07-12 16:20:15 +01:00
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kexec.h [ARM] 4838/1: Fix kexec for SA1100 machines 2008-02-29 22:47:09 +00:00
kmap_types.h
kprobes.h Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00
kvm.h kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
leds.h
limits.h
linkage.h [ARM] VFP: fix section mismatch error 2007-06-10 12:22:20 +01:00
local.h
locks.h
mc146818rtc.h
memory.h [ARM] Add initial sparsemem support 2008-04-19 11:36:48 +01:00
mman.h
mmu.h [ARM] ARMv6: add CPU_HAS_ASID configuration 2007-05-17 10:19:23 +01:00
mmu_context.h [ARM] ARMv6: add CPU_HAS_ASID configuration 2007-05-17 10:19:23 +01:00
mmzone.h
module.h
msgbuf.h
mtd-xip.h
mutex.h misc: removal of final callers using fastcall 2008-02-08 09:22:31 -08:00
namei.h
nwflash.h
page-nommu.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
page.h [ARM] 5051/1: define pgtable_t for the !CONFIG_MMU case too 2008-05-23 13:50:05 +01:00
param.h
parport.h
pci.h [ARM] 4577/1: ITE 8152 PCI bridge support 2007-10-15 18:53:59 +01:00
percpu.h
pgalloc.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable-hwdef.h [ARM] Set bit 4 on section mappings correctly depending on CPU 2006-06-29 18:24:21 +01:00
pgtable-nommu.h [ARM] 5060/1: remove unnecessary include of asm/io.h 2008-06-01 11:22:25 +01:00
pgtable.h mm: introduce pte_special pte bit 2008-04-28 08:58:23 -07:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
proc-fns.h [ARM] include/asm-arm - use angle brackets for includes 2008-03-06 12:18:18 +00:00
processor.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
procinfo.h [ARM] Move HWCAP_* definitions to asm/elf.h 2006-11-30 12:24:46 +00:00
ptrace.h [ARM] 4474/1: Do not check the PSR_F_BIT in valid_user_regs 2007-07-12 16:20:52 +01:00
resource.h
rtc.h
scatterlist.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
sections.h
segment.h
semaphore.h Generic semaphore implementation 2008-04-17 10:42:34 -04:00
sembuf.h
serial.h
setup.h [ARM] use __used attribute 2007-05-30 13:15:06 +01:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h [PATCH] ARM: fixup irqflags breakage after ARM genirq merge 2006-07-02 17:29:22 -07:00
sizes.h [ARM] 4372/1: Define byte sizes in asm-arm/sizes.h 2007-05-11 21:07:58 +01:00
smp.h [ARM] 4814/1: RealView: Add broadcasting clockevents support for ARM11MPCore 2008-02-04 17:52:19 +00:00
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h [ARM] Add initial sparsemem support 2008-04-19 11:36:48 +01:00
spinlock.h [ARM] 5067/1: _raw_write_can_lock macro bugfix 2008-06-02 13:44:17 +01:00
spinlock_types.h
stat.h
statfs.h
string.h
suspend.h
system.h [ARM] 5053/1: define before use of processor_id 2008-05-23 13:50:08 +01:00
termbits.h [ARM] enable arbitary speed tty ioctls and split input/output speed 2007-05-28 23:07:34 +01:00
termios.h [ARM] enable arbitary speed tty ioctls and split input/output speed 2007-05-28 23:07:34 +01:00
therm.h
thread_info.h ARMv7: Add support for the ThumbEE state saving/restoring 2008-04-18 22:43:06 +01:00
thread_notify.h [ARM] Add thread_notify infrastructure 2006-06-22 10:24:18 +01:00
timex.h
tlb.h add mm argument to pte/pmd/pud/pgd_free 2008-02-05 09:44:18 -08:00
tlbflush.h [ARM] Feroceon: L2 cache support 2008-06-22 22:45:04 +02:00
topology.h
traps.h ARM kprobes: prevent some functions involved with kprobes from being probed 2008-01-26 15:25:17 +00:00
types.h arm: types: use <asm-generic/int-*.h> for the arm architecture 2008-05-02 16:18:20 -07:00
uaccess.h Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
ucontext.h [ARM] 3664/1: crunch: add signal frame save/restore 2006-06-28 17:54:59 +01:00
unaligned.h kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
unistd.h [ARM] 4852/1: Add timerfd_create, timerfd_settime and timerfd_gettime syscall entries 2008-04-19 11:28:06 +01:00
user.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
vfp.h [ARM] 4583/1: ARMv7: Add VFPv3 support 2008-01-26 14:41:28 +00:00
vfpmacros.h [ARM] 4583/1: ARMv7: Add VFPv3 support 2008-01-26 14:41:28 +00:00
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
xor.h