linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [RFC] Add support for Aurora L2 Cache Controller
@ 2012-08-08 15:05 Gregory CLEMENT
  2012-08-08 15:05 ` [RFC 1/6] arm: cache-l2x0: make outer_cache_fns a field of l2x0_of_data Gregory CLEMENT
                   ` (7 more replies)
  0 siblings, 8 replies; 22+ messages in thread
From: Gregory CLEMENT @ 2012-08-08 15:05 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

The purpose of this patch set is to add support for Aurora L2 Cache
Controller used by Armada 370 and Armada XP SoCs. As it was initially
designed by Marvell engineer to be compatible with the ARM L2 Cache
Controller, we chose to reuse the existing code and to just extend it
to support the differences and improvements brought by the Aurora
controller.The diffstat looks like:

 Documentation/devicetree/bindings/arm/l2cc.txt  |    9 +
 arch/arm/boot/dts/armada-370.dtsi               |    6 +
 arch/arm/boot/dts/armada-xp.dtsi                |    7 +
 arch/arm/include/asm/hardware/cache-aurora-l2.h |   51 ++++
 arch/arm/include/asm/hardware/cache-l2x0.h      |    1 +
 arch/arm/mach-mvebu/Kconfig                     |    1 +
 arch/arm/mach-mvebu/irq-armada-370-xp.c         |    4 +
 arch/arm/mm/cache-l2x0.c                        |  297 +++++++++++++++++++++--
 8 files changed, 362 insertions(+), 14 deletions(-)

The main differences and improvements are:

- no cache id part number available through hardware (need to get it
  by the DT).
- always write through mode available.
- two flavors of the controller 'outer cache' and 'system cache' (the
  last one meaning maintenance operations on L1 are broadcasted to the
  L2 and L2 performs the same operation).
- in outer cache mode, the cache maintenance operations are improved
  and can be done on a range inside a page and are not limited to a
  cache line.
- during resume the controller need to restore the ctrl register.

The first patch adds some modifications in the driver
infrastructure. As most of the outer cache functions can use the
Aurora improvements, we had to introduce new functions. So we thought
it was better to use a outer_cache_fns field inside l2x0_of_data and
just memcopy it into outer_cache depending of the type of the l2x0
cache.

If the change we have made in the l2x0 driver are judged too invasive
we are perfectly fine to submit a dedicated driver for the Aurora
Cache Controller.

For interested people you can find the results of the cache benchmarks
which was ran for validate the driver:
htps://github.com/MISL-EBU-System-SW/mainline-public/wiki/Cache-bench-results-for-Aurora-L2-cache-controller-on-Armada-XP-and-Armada-370

All the data related to this benchmark are hosted at:
http://free-electrons.com/%7Egregory/pub/Armada-370-xp/cachebench-results/

The git branch aurora-L2-cache-ctrl is visible at
https://github.com/MISL-EBU-System-SW/mainline-public.git

Regards,

Gregory

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2012-08-21  7:29 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-08 15:05 [RFC] Add support for Aurora L2 Cache Controller Gregory CLEMENT
2012-08-08 15:05 ` [RFC 1/6] arm: cache-l2x0: make outer_cache_fns a field of l2x0_of_data Gregory CLEMENT
2012-08-08 15:05 ` [RFC 2/6] arm: cache-l2x0: add an optional register to save/restore Gregory CLEMENT
2012-08-08 15:05 ` [RFC 5/6] arm: mvebu: add Aurora L2 Cache Controller to the DT Gregory CLEMENT
2012-08-08 15:06 ` [RFC 4/6] arm: mvebu: add L2 cache support Gregory CLEMENT
2012-08-08 15:06 ` [RFC 6/6] arm: l2x0: add aurora related properties to OF binding Gregory CLEMENT
2012-08-08 15:06 ` [RFC 3/6] arm: cache-l2x0: add support for Aurora L2 cache ctrl Gregory CLEMENT
2012-08-08 15:19   ` Will Deacon
2012-08-08 16:30     ` Gregory CLEMENT
2012-08-08 16:52       ` Gregory CLEMENT
2012-08-10 14:49         ` Will Deacon
2012-08-10 15:13           ` Gregory CLEMENT
2012-08-10 15:20             ` Will Deacon
2012-08-10 15:31               ` Gregory CLEMENT
2012-08-09 16:48     ` LPAE for outer caches functiopns (was Re: [RFC 3/6] arm: cache-l2x0: add support for Aurora L2 cache ctrl) Gregory CLEMENT
2012-08-09 16:49       ` [RFC 2 3/6] arm: cache-l2x0: add support for Aurora L2 cache ctrl Gregory CLEMENT
2012-08-10 14:47       ` LPAE for outer caches functiopns (was Re: [RFC 3/6] arm: cache-l2x0: add support for Aurora L2 cache ctrl) Will Deacon
2012-08-10 15:02         ` Gregory CLEMENT
2012-08-13 10:44           ` Will Deacon
2012-08-08 15:16 ` [RFC] Add support for Aurora L2 Cache Controller Catalin Marinas
2012-08-21  7:29   ` Gregory CLEMENT
2012-08-08 16:22 ` Gregory CLEMENT

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).