android_kernel_xiaomi_sm8350/arch/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
..
boot [ARM] Feroceon: catch other Feroceon CPU IDs in head.S 2008-06-22 22:44:59 +02:00
common [ARM] 5026/1: locomo: add .settype for gpio and several small fixes 2008-05-17 22:53:54 +01:00
configs [ARM] Loki: add defconfig 2008-06-22 22:45:02 +02:00
kernel [ARM] latencytop support 2008-06-22 22:44:36 +02:00
lib [ARM] cache align memset and memzero 2008-06-22 22:44:39 +02:00
mach-aaec2000 arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
mach-at91 [ARM] 5052/1: export clock functions for the at91x40 2008-05-23 13:50:07 +01:00
mach-clps711x [ARM] Add initial sparsemem support 2008-04-19 11:36:48 +01:00
mach-clps7500
mach-davinci arm: use non-racy method for /proc/davinci_clocks creation 2008-04-29 08:06:21 -07:00
mach-ebsa110
mach-ep93xx [ARM] 5023/1: Fix broken gpio interrupts on ep93xx 2008-05-04 11:06:05 +01:00
mach-footbridge
mach-h720x
mach-imx
mach-integrator [ARM] integrator: fix build warnings and errors 2008-05-23 19:35:52 +01:00
mach-iop13xx
mach-iop32x i2c: Convert most new-style drivers to use module aliasing 2008-04-29 23:11:40 +02:00
mach-iop33x iop: unconditionally initialize the ATU on platforms known to be 'hosts' 2008-03-26 12:33:41 -07:00
mach-ixp4xx Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
mach-ixp23xx
mach-ixp2000
mach-ks8695 [ARM] 4981/1: [KS8695] Simple LED driver 2008-04-17 15:58:25 +01:00
mach-l7200
mach-lh7a40x [ARM] fix lh7a40x/kev7a400 build 2008-04-20 16:40:47 +01:00
mach-loki [ARM] add Marvell Loki (88RC8480) SoC support 2008-06-22 22:45:02 +02:00
mach-msm
mach-mx3
mach-netx
mach-ns9xxx Merge branch 'irq-fix' of git://www.modarm9.com/gitsrc/pub/people/ukleinek/linux-2.6.git 2008-05-07 21:55:01 +01:00
mach-omap1 [ARM] 5038/1: ARM: OMAP: Remove tsc2102 references from board-palmte.c 2008-05-22 14:10:35 +01:00
mach-omap2 ARM: OMAP: Fixed comments on global PRM register usage 2008-05-09 10:25:04 -07:00
mach-orion5x [ARM] Orion: nuke orion5x_{read,write} 2008-06-22 22:44:57 +02:00
mach-pnx4008 arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
mach-pxa [ARM] 5077/1: spi: fix list scan success verification in PXA ssp driver 2008-06-11 23:38:46 +01:00
mach-realview Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-04-21 15:41:27 -07:00
mach-rpc
mach-s3c2400
mach-s3c2410 [ARM] 5041/1: VR1000: Fix DM9000 IRQ flags initialisation 2008-05-22 14:10:37 +01:00
mach-s3c2412 [ARM] 4985/1: S3C2412: Fix ARMDIVN name in CLKDIVN definition. 2008-04-17 17:04:38 +01:00
mach-s3c2440 [ARM] 4986/1: S3C24XX: Simtec machines need UCLK as parent to DCLK 2008-04-17 17:04:40 +01:00
mach-s3c2442
mach-s3c2443
mach-sa1100 [ARM] 5025/2: fix collie cpu initialisation 2008-05-22 14:03:20 +01:00
mach-shark
mach-versatile arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
mm [ARM] Feroceon: L2 cache support 2008-06-22 22:45:04 +02:00
nwfpe
oprofile [ARM] 5018/1: RealView: Fix the ARM11MPCore Oprofile compilation 2008-04-28 17:03:34 +01:00
plat-iop iop: unconditionally initialize the ATU on platforms known to be 'hosts' 2008-03-26 12:33:41 -07:00
plat-mxc [ARM] 4887/1: i.MXC family: Separate current platform code 2008-04-17 16:15:17 +01:00
plat-omap [ARM] omap: fix omap clk support build errors 2008-05-22 16:38:50 +01:00
plat-orion [ARM] Orion: add a separate BRIDGE_INT_TIMER1_CLR define 2008-06-22 22:45:01 +02:00
plat-s3c
plat-s3c24xx [ARM] 5039/1: S3C244X: Rename SDI device if running on S3C244X. 2008-05-22 14:17:22 +01:00
tools [ARM] Update mach-types 2008-04-19 11:28:05 +01:00
vfp
Kconfig [ARM] add Marvell Loki (88RC8480) SoC support 2008-06-22 22:45:02 +02:00
Kconfig-nommu
Kconfig.debug
Makefile [ARM] add Marvell Loki (88RC8480) SoC support 2008-06-22 22:45:02 +02:00