android_kernel_xiaomi_sm8350/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
arch-at91 [ARM] fix AT91 include loops 2008-06-01 11:19:54 +01:00
arch-cl7500
arch-clps711x
arch-davinci [ARM] 4634/1: DaVinci GPIO header build fix 2007-10-31 15:21:52 +00:00
arch-ebsa110
arch-ebsa285
arch-ep93xx [ARM] 4988/1: Add GPIO lib support to the EP93xx 2008-04-19 14:01:43 +01:00
arch-h720x
arch-imx
arch-integrator
arch-iop13xx iop-adma: remove the workaround for missed interrupts on iop3xx 2008-04-17 13:25:54 -07:00
arch-iop32x
arch-iop33x
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
arch-ks8695 [ARM] 4981/1: [KS8695] Simple LED driver 2008-04-17 15:58:25 +01:00
arch-l7200
arch-lh7a40x
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
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
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
arch-s3c2400
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
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
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
auxvec.h
bitops.h ext4: Add ext4_find_next_bit() 2008-01-28 23:58:27 -05:00
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h [ARM] Feroceon: L1 cache range operation support 2008-06-22 22:45:03 +02:00
checksum.h
cnt32_to_63.h
cpu-multi32.h Add a prefetch abort handler 2008-04-18 22:43:07 +01:00
cpu-single.h
cpu.h
cputime.h
current.h
delay.h
device.h
div64.h rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
dma-mapping.h
dma.h
domain.h
dyntick.h
ecard.h
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
fcntl.h
fiq.h
flat.h [ARM] nommu: fix breakage caused by f9720205d1 2007-10-31 15:21:42 +00:00
floppy.h
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
hardirq.h
hardware.h
hw_irq.h
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
ioctl.h
ioctls.h
ipcbuf.h
irq_regs.h
irq.h
irqflags.h
Kbuild
kdebug.h
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
local.h
locks.h
mc146818rtc.h
memory.h [ARM] Add initial sparsemem support 2008-04-19 11:36:48 +01:00
mman.h
mmu_context.h
mmu.h
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
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
percpu.h
pgalloc.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable-hwdef.h
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
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
ptrace.h
resource.h
rtc.h
scatterlist.h
sections.h
segment.h
semaphore.h Generic semaphore implementation 2008-04-17 10:42:34 -04:00
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sizes.h
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
sparsemem.h [ARM] Add initial sparsemem support 2008-04-19 11:36:48 +01:00
spinlock_types.h
spinlock.h [ARM] 5067/1: _raw_write_can_lock macro bugfix 2008-06-02 13:44:17 +01:00
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
termios.h
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
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
ucontext.h
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
xor.h