All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver
@ 2019-04-23 21:55 Dinh Nguyen
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation Dinh Nguyen
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

Hi,

This is V4 of the series to add a UCLASS_CACHE dm driver to handling
the configuration of cache settings. Place this new driver under
/drivers/cache. In this initial revision, the driver is only configuring
what I think are essential cache settings. The more comprehensive cache
settings can be done in the OS.

Diffs from v4:
- Fix compile error found in sandbox_cache.c


Dinh Nguyen (6):
  Documentation: dts: Add pl310 cache controller dts documentation
  ARM: pl310: Add macro's for handling tag and data latency mask
  dm: cache: Create a uclass for cache
  dm: cache: add the pl310 cache controller driver
  ARM: socfpga: use the pl310 driver to configure the cache
  configs: socfpga: add imply pl310 cache controller

 .../devicetree/bindings/arm/l2c2x0.txt        | 114 ++++++++++++++++++
 arch/arm/Kconfig                              |   1 +
 arch/arm/include/asm/pl310.h                  |   3 +
 arch/arm/mach-socfpga/misc.c                  |  16 +--
 drivers/Kconfig                               |   2 +
 drivers/Makefile                              |   1 +
 drivers/cache/Kconfig                         |  25 ++++
 drivers/cache/Makefile                        |   4 +
 drivers/cache/cache-l2x0.c                    |  76 ++++++++++++
 drivers/cache/cache-uclass.c                  |  24 ++++
 drivers/cache/sandbox_cache.c                 |  34 ++++++
 include/cache.h                               |  38 ++++++
 include/dm/uclass-id.h                        |   1 +
 test/dm/cache.c                               |  20 +++
 14 files changed, 346 insertions(+), 13 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/l2c2x0.txt
 create mode 100644 drivers/cache/Kconfig
 create mode 100644 drivers/cache/Makefile
 create mode 100644 drivers/cache/cache-l2x0.c
 create mode 100644 drivers/cache/cache-uclass.c
 create mode 100644 drivers/cache/sandbox_cache.c
 create mode 100644 include/cache.h
 create mode 100644 test/dm/cache.c

-- 
2.20.0

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

* [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
@ 2019-04-23 21:55 ` Dinh Nguyen
  2019-05-06 11:13   ` Tom Rini
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 2/6] ARM: pl310: Add macro's for handling tag and data latency mask Dinh Nguyen
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

Linux commit 8ecd7f5970c5 ("ARM: 8483/1: Documentation: l2c: Rename
l2cc to l2c2x0")

Linux docs:
Documentation/devicetree/bindings/arm/l2c2x0.txt

Copied from Linux kernel v5.0.

"The documentation in the l2cc.txt is specific to the L2 cache
controllers L2C210/L2C220/L2C310 (also known as PL210/PL220/PL310
and variants) and not generic as the file name implies. It's not
valid for integrated L2 controllers as found in e.g.
Cortex-A15/A7/A57/A53."

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
 .../devicetree/bindings/arm/l2c2x0.txt        | 114 ++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/l2c2x0.txt

diff --git a/Documentation/devicetree/bindings/arm/l2c2x0.txt b/Documentation/devicetree/bindings/arm/l2c2x0.txt
new file mode 100644
index 0000000000..fbe6cb21f4
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/l2c2x0.txt
@@ -0,0 +1,114 @@
+* ARM L2 Cache Controller
+
+ARM cores often have a separate L2C210/L2C220/L2C310 (also known as PL210/PL220/
+PL310 and variants) based level 2 cache controller. All these various implementations
+of the L2 cache controller have compatible programming models (Note 1).
+Some of the properties that are just prefixed "cache-*" are taken from section
+3.7.3 of the Devicetree Specification which can be found at:
+https://www.devicetree.org/specifications/
+
+The ARM L2 cache representation in the device tree should be done as follows:
+
+Required properties:
+
+- compatible : should be one of:
+  "arm,pl310-cache"
+  "arm,l220-cache"
+  "arm,l210-cache"
+  "bcm,bcm11351-a2-pl310-cache": DEPRECATED by "brcm,bcm11351-a2-pl310-cache"
+  "brcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an
+     offset needs to be added to the address before passing down to the L2
+     cache controller
+  "marvell,aurora-system-cache": Marvell Controller designed to be
+     compatible with the ARM one, with system cache mode (meaning
+     maintenance operations on L1 are broadcasted to the L2 and L2
+     performs the same operation).
+  "marvell,aurora-outer-cache": Marvell Controller designed to be
+     compatible with the ARM one with outer cache mode.
+  "marvell,tauros3-cache": Marvell Tauros3 cache controller, compatible
+     with arm,pl310-cache controller.
+- cache-unified : Specifies the cache is a unified cache.
+- cache-level : Should be set to 2 for a level 2 cache.
+- reg : Physical base address and size of cache controller's memory mapped
+  registers.
+
+Optional properties:
+
+- arm,data-latency : Cycles of latency for Data RAM accesses. Specifies 3 cells of
+  read, write and setup latencies. Minimum valid values are 1. Controllers
+  without setup latency control should use a value of 0.
+- arm,tag-latency : Cycles of latency for Tag RAM accesses. Specifies 3 cells of
+  read, write and setup latencies. Controllers without setup latency control
+  should use 0. Controllers without separate read and write Tag RAM latency
+  values should only use the first cell.
+- arm,dirty-latency : Cycles of latency for Dirty RAMs. This is a single cell.
+- arm,filter-ranges : <start length> Starting address and length of window to
+  filter. Addresses in the filter window are directed to the M1 port. Other
+  addresses will go to the M0 port.
+- arm,io-coherent : indicates that the system is operating in an hardware
+  I/O coherent mode. Valid only when the arm,pl310-cache compatible
+  string is used.
+- interrupts : 1 combined interrupt.
+- cache-size : specifies the size in bytes of the cache
+- cache-sets : specifies the number of associativity sets of the cache
+- cache-block-size : specifies the size in bytes of a cache block
+- cache-line-size : specifies the size in bytes of a line in the cache,
+  if this is not specified, the line size is assumed to be equal to the
+  cache block size
+- cache-id-part: cache id part number to be used if it is not present
+  on hardware
+- wt-override: If present then L2 is forced to Write through mode
+- arm,double-linefill : Override double linefill enable setting. Enable if
+  non-zero, disable if zero.
+- arm,double-linefill-incr : Override double linefill on INCR read. Enable
+  if non-zero, disable if zero.
+- arm,double-linefill-wrap : Override double linefill on WRAP read. Enable
+  if non-zero, disable if zero.
+- arm,prefetch-drop : Override prefetch drop enable setting. Enable if non-zero,
+  disable if zero.
+- arm,prefetch-offset : Override prefetch offset value. Valid values are
+  0-7, 15, 23, and 31.
+- arm,shared-override : The default behavior of the L220 or PL310 cache
+  controllers with respect to the shareable attribute is to transform "normal
+  memory non-cacheable transactions" into "cacheable no allocate" (for reads)
+  or "write through no write allocate" (for writes).
+  On systems where this may cause DMA buffer corruption, this property must be
+  specified to indicate that such transforms are precluded.
+- arm,parity-enable : enable parity checking on the L2 cache (L220 or PL310).
+- arm,parity-disable : disable parity checking on the L2 cache (L220 or PL310).
+- arm,outer-sync-disable : disable the outer sync operation on the L2 cache.
+  Some core tiles, especially ARM PB11MPCore have a faulty L220 cache that
+  will randomly hang unless outer sync operations are disabled.
+- prefetch-data : Data prefetch. Value: <0> (forcibly disable), <1>
+  (forcibly enable), property absent (retain settings set by firmware)
+- prefetch-instr : Instruction prefetch. Value: <0> (forcibly disable),
+  <1> (forcibly enable), property absent (retain settings set by
+  firmware)
+- arm,dynamic-clock-gating : L2 dynamic clock gating. Value: <0> (forcibly
+  disable), <1> (forcibly enable), property absent (OS specific behavior,
+  preferably retain firmware settings)
+- arm,standby-mode: L2 standby mode enable. Value <0> (forcibly disable),
+  <1> (forcibly enable), property absent (OS specific behavior,
+  preferably retain firmware settings)
+- arm,early-bresp-disable : Disable the CA9 optimization Early BRESP (PL310)
+- arm,full-line-zero-disable : Disable the CA9 optimization Full line of zero
+  write (PL310)
+
+Example:
+
+L2: cache-controller {
+        compatible = "arm,pl310-cache";
+        reg = <0xfff12000 0x1000>;
+        arm,data-latency = <1 1 1>;
+        arm,tag-latency = <2 2 2>;
+        arm,filter-ranges = <0x80000000 0x8000000>;
+        cache-unified;
+        cache-level = <2>;
+	interrupts = <45>;
+};
+
+Note 1: The description in this document doesn't apply to integrated L2
+	cache controllers as found in e.g. Cortex-A15/A7/A57/A53. These
+	integrated L2 controllers are assumed to be all preconfigured by
+	early secure boot code. Thus no need to deal with their configuration
+	in the kernel at all.
-- 
2.20.0

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

* [U-Boot] [PATCHv5 2/6] ARM: pl310: Add macro's for handling tag and data latency mask
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation Dinh Nguyen
@ 2019-04-23 21:55 ` Dinh Nguyen
  2019-05-06 11:14   ` Tom Rini
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 3/6] dm: cache: Create a uclass for cache Dinh Nguyen
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

Add the PL310 macros for latency control setup, read and write bits.

Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
 arch/arm/include/asm/pl310.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/include/asm/pl310.h b/arch/arm/include/asm/pl310.h
index b83978b1cc..f69e9e45f8 100644
--- a/arch/arm/include/asm/pl310.h
+++ b/arch/arm/include/asm/pl310.h
@@ -18,6 +18,9 @@
 #define L310_SHARED_ATT_OVERRIDE_ENABLE		(1 << 22)
 #define L310_AUX_CTRL_DATA_PREFETCH_MASK	(1 << 28)
 #define L310_AUX_CTRL_INST_PREFETCH_MASK	(1 << 29)
+#define L310_LATENCY_CTRL_SETUP(n)		((n) << 0)
+#define L310_LATENCY_CTRL_RD(n)			((n) << 4)
+#define L310_LATENCY_CTRL_WR(n)			((n) << 8)
 
 #define L2X0_CACHE_ID_PART_MASK     (0xf << 6)
 #define L2X0_CACHE_ID_PART_L310     (3 << 6)
-- 
2.20.0

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

* [U-Boot] [PATCHv5 3/6] dm: cache: Create a uclass for cache
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation Dinh Nguyen
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 2/6] ARM: pl310: Add macro's for handling tag and data latency mask Dinh Nguyen
@ 2019-04-23 21:55 ` Dinh Nguyen
  2019-05-06 11:14   ` Tom Rini
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 4/6] dm: cache: add the pl310 cache controller driver Dinh Nguyen
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

The cache UCLASS will be used for configure settings that can be found
in a CPU's L2 cache controller.

Add a uclass and a test for cache.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
v5: fix compile error for sandbox_cache.c
v4: re-order includes and add Reviewed-by:
v3: Add cache_get_info() to check for non-zero value
    Add comments to cache_info struct
v2: separate out uclass patch from driver and add test
---
 drivers/Kconfig               |  2 ++
 drivers/Makefile              |  1 +
 drivers/cache/Kconfig         | 16 +++++++++++++++
 drivers/cache/Makefile        |  3 +++
 drivers/cache/cache-uclass.c  | 24 ++++++++++++++++++++++
 drivers/cache/sandbox_cache.c | 34 +++++++++++++++++++++++++++++++
 include/cache.h               | 38 +++++++++++++++++++++++++++++++++++
 include/dm/uclass-id.h        |  1 +
 test/dm/cache.c               | 20 ++++++++++++++++++
 9 files changed, 139 insertions(+)
 create mode 100644 drivers/cache/Kconfig
 create mode 100644 drivers/cache/Makefile
 create mode 100644 drivers/cache/cache-uclass.c
 create mode 100644 drivers/cache/sandbox_cache.c
 create mode 100644 include/cache.h
 create mode 100644 test/dm/cache.c

diff --git a/drivers/Kconfig b/drivers/Kconfig
index e6702eced4..96ff4f566a 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -14,6 +14,8 @@ source "drivers/block/Kconfig"
 
 source "drivers/bootcount/Kconfig"
 
+source "drivers/cache/Kconfig"
+
 source "drivers/clk/Kconfig"
 
 source "drivers/cpu/Kconfig"
diff --git a/drivers/Makefile b/drivers/Makefile
index a7bba3ed56..0a00096332 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -77,6 +77,7 @@ obj-$(CONFIG_BIOSEMU) += bios_emulator/
 obj-y += block/
 obj-y += board/
 obj-$(CONFIG_BOOTCOUNT_LIMIT) += bootcount/
+obj-y += cache/
 obj-$(CONFIG_CPU) += cpu/
 obj-y += crypto/
 obj-$(CONFIG_FASTBOOT) += fastboot/
diff --git a/drivers/cache/Kconfig b/drivers/cache/Kconfig
new file mode 100644
index 0000000000..8b7c9c7f9f
--- /dev/null
+++ b/drivers/cache/Kconfig
@@ -0,0 +1,16 @@
+#
+# Cache controllers
+#
+
+menu "Cache Controller drivers"
+
+config CACHE
+	bool "Enable Driver Model for Cache controllers"
+	depends on DM
+	help
+	  Enable driver model for cache controllers that are found on
+	  most CPU's. Cache is memory that the CPU can access directly and
+	  is usually located on the same chip. This uclass can be used for
+	  configuring settings that be found from a device tree file.
+
+endmenu
diff --git a/drivers/cache/Makefile b/drivers/cache/Makefile
new file mode 100644
index 0000000000..2ba68060c1
--- /dev/null
+++ b/drivers/cache/Makefile
@@ -0,0 +1,3 @@
+
+obj-$(CONFIG_CACHE) += cache-uclass.o
+obj-$(CONFIG_SANDBOX) += sandbox_cache.o
diff --git a/drivers/cache/cache-uclass.c b/drivers/cache/cache-uclass.c
new file mode 100644
index 0000000000..97ce0249a4
--- /dev/null
+++ b/drivers/cache/cache-uclass.c
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 Intel Corporation <www.intel.com>
+ */
+
+#include <common.h>
+#include <cache.h>
+#include <dm.h>
+
+int cache_get_info(struct udevice *dev, struct cache_info *info)
+{
+	struct cache_ops *ops = cache_get_ops(dev);
+
+	if (!ops->get_info)
+		return -ENOSYS;
+
+	return ops->get_info(dev, info);
+}
+
+UCLASS_DRIVER(cache) = {
+	.id		= UCLASS_CACHE,
+	.name		= "cache",
+	.post_bind	= dm_scan_fdt_dev,
+};
diff --git a/drivers/cache/sandbox_cache.c b/drivers/cache/sandbox_cache.c
new file mode 100644
index 0000000000..14cc6b0c0a
--- /dev/null
+++ b/drivers/cache/sandbox_cache.c
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 Intel Corporation <www.intel.com>
+ */
+
+#include <common.h>
+#include <cache.h>
+#include <dm.h>
+#include <errno.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int sandbox_get_info(struct udevice *dev, struct cache_info *info)
+{
+	info->base = 0x11223344;
+
+	return 0;
+}
+
+static const struct cache_ops sandbox_cache_ops = {
+	.get_info	= sandbox_get_info,
+};
+
+static const struct udevice_id sandbox_cache_ids[] = {
+	{ .compatible = "sandbox,cache" },
+	{ }
+};
+
+U_BOOT_DRIVER(cache_sandbox) = {
+	.name		= "cache_sandbox",
+	.id		= UCLASS_CACHE,
+	.of_match	= sandbox_cache_ids,
+	.ops		= &sandbox_cache_ops,
+};
diff --git a/include/cache.h b/include/cache.h
new file mode 100644
index 0000000000..c6334ca27f
--- /dev/null
+++ b/include/cache.h
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 Intel Corporation <www.intel.com>
+ */
+
+#ifndef __CACHE_H
+#define __CACHE_H
+
+/*
+ * Structure for the cache controller
+ */
+struct cache_info {
+	phys_addr_t base; /* Base physical address of cache device. */
+};
+
+struct cache_ops {
+	/**
+	 * get_info() - Get basic cache info
+	 *
+	 * @dev:	Device to check (UCLASS_CACHE)
+	 * @info:	Place to put info
+	 * @return 0 if OK, -ve on error
+	 */
+	int (*get_info)(struct udevice *dev, struct cache_info *info);
+};
+
+#define cache_get_ops(dev)	((struct cache_ops *)(dev)->driver->ops)
+
+/**
+ * cache_get_info() - Get information about a cache controller
+ *
+ * @dev:	Device to check (UCLASS_CACHE)
+ * @info:	Returns cache info
+ * @return 0 if OK, -ve on error
+ */
+int cache_get_info(struct udevice *dev, struct cache_info *info);
+
+#endif
diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index 86e59781b0..09e0ad5391 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -34,6 +34,7 @@ enum uclass_id {
 	UCLASS_BLK,		/* Block device */
 	UCLASS_BOARD,		/* Device information from hardware */
 	UCLASS_BOOTCOUNT,       /* Bootcount backing store */
+	UCLASS_CACHE,		/* Cache controller */
 	UCLASS_CLK,		/* Clock source, e.g. used by peripherals */
 	UCLASS_CPU,		/* CPU, typically part of an SoC */
 	UCLASS_CROS_EC,		/* Chrome OS EC */
diff --git a/test/dm/cache.c b/test/dm/cache.c
new file mode 100644
index 0000000000..d4144aab76
--- /dev/null
+++ b/test/dm/cache.c
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 Intel Corporation <www.intel.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dm/test.h>
+
+static int dm_test_reset(struct unit_test_state *uts)
+{
+	struct udevice *dev_cache;
+	struct cache_info;
+
+	ut_assertok(uclass_get_device(UCLASS_CACHE, 0, &dev_cache));
+	ut_assertok(cache_get_info(dev, &info));
+
+	return 0;
+}
+DM_TEST(dm_test_reset, DM_TESTF_SCAN_FDT);
-- 
2.20.0

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

* [U-Boot] [PATCHv5 4/6] dm: cache: add the pl310 cache controller driver
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
                   ` (2 preceding siblings ...)
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 3/6] dm: cache: Create a uclass for cache Dinh Nguyen
@ 2019-04-23 21:55 ` Dinh Nguyen
  2019-05-06 11:14   ` Tom Rini
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 5/6] ARM: socfpga: use the pl310 driver to configure the cache Dinh Nguyen
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

Add a PL310 cache controller driver that is usually found on
ARMv7(32-bit) devices. The driver configures the cache settings that can
be found in the device tree files.

This initial revision only configures basic settings(data & instruction
prefetch, shared-override, data & tag latency). I believe these are the
settings that affect performance the most. Comprehensive settings can be
done by the OS.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
v4: no change
v3: Add Reviewed-by and fix nits
v2: split out patch and address comments from Simon Glass
---
 drivers/cache/Kconfig      |  9 +++++
 drivers/cache/Makefile     |  1 +
 drivers/cache/cache-l2x0.c | 76 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 86 insertions(+)
 create mode 100644 drivers/cache/cache-l2x0.c

diff --git a/drivers/cache/Kconfig b/drivers/cache/Kconfig
index 8b7c9c7f9f..24def7ac0f 100644
--- a/drivers/cache/Kconfig
+++ b/drivers/cache/Kconfig
@@ -13,4 +13,13 @@ config CACHE
 	  is usually located on the same chip. This uclass can be used for
 	  configuring settings that be found from a device tree file.
 
+config L2X0_CACHE
+	tristate "PL310 cache driver"
+	select CACHE
+	depends on ARM
+	help
+	  This driver is for the PL310 cache controller commonly found on
+	  ARMv7(32-bit) devices. The driver configures the cache settings
+	  found in the device tree.
+
 endmenu
diff --git a/drivers/cache/Makefile b/drivers/cache/Makefile
index 2ba68060c1..9deb961d91 100644
--- a/drivers/cache/Makefile
+++ b/drivers/cache/Makefile
@@ -1,3 +1,4 @@
 
 obj-$(CONFIG_CACHE) += cache-uclass.o
 obj-$(CONFIG_SANDBOX) += sandbox_cache.o
+obj-$(CONFIG_L2X0_CACHE) += cache-l2x0.o
diff --git a/drivers/cache/cache-l2x0.c b/drivers/cache/cache-l2x0.c
new file mode 100644
index 0000000000..67c752d076
--- /dev/null
+++ b/drivers/cache/cache-l2x0.c
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 Intel Corporation <www.intel.com>
+ */
+#include <common.h>
+#include <command.h>
+#include <dm.h>
+
+#include <asm/io.h>
+#include <asm/pl310.h>
+
+static void l2c310_of_parse_and_init(struct udevice *dev)
+{
+	u32 tag[3] = { 0, 0, 0 };
+	u32 saved_reg, prefetch;
+	struct pl310_regs *regs = (struct pl310_regs *)dev_read_addr(dev);
+
+	/* Disable the L2 Cache */
+	clrbits_le32(&regs->pl310_ctrl, L2X0_CTRL_EN);
+
+	saved_reg = readl(&regs->pl310_aux_ctrl);
+	if (!dev_read_u32(dev, "prefetch-data", &prefetch)) {
+		if (prefetch)
+			saved_reg |= L310_AUX_CTRL_DATA_PREFETCH_MASK;
+		else
+			saved_reg &= ~L310_AUX_CTRL_DATA_PREFETCH_MASK;
+	}
+
+	if (!dev_read_u32(dev, "prefetch-instr", &prefetch)) {
+		if (prefetch)
+			saved_reg |= L310_AUX_CTRL_INST_PREFETCH_MASK;
+		else
+			saved_reg &= ~L310_AUX_CTRL_INST_PREFETCH_MASK;
+	}
+
+	saved_reg |= dev_read_bool(dev, "arm,shared-override");
+	writel(saved_reg, &regs->pl310_aux_ctrl);
+
+	saved_reg = readl(&regs->pl310_tag_latency_ctrl);
+	if (!dev_read_u32_array(dev, "arm,tag-latency", tag, 3))
+		saved_reg |= L310_LATENCY_CTRL_RD(tag[0] - 1) |
+			     L310_LATENCY_CTRL_WR(tag[1] - 1) |
+			     L310_LATENCY_CTRL_SETUP(tag[2] - 1);
+	writel(saved_reg, &regs->pl310_tag_latency_ctrl);
+
+	saved_reg = readl(&regs->pl310_data_latency_ctrl);
+	if (!dev_read_u32_array(dev, "arm,data-latency", tag, 3))
+		saved_reg |= L310_LATENCY_CTRL_RD(tag[0] - 1) |
+			     L310_LATENCY_CTRL_WR(tag[1] - 1) |
+			     L310_LATENCY_CTRL_SETUP(tag[2] - 1);
+	writel(saved_reg, &regs->pl310_data_latency_ctrl);
+
+	/* Enable the L2 cache */
+	setbits_le32(&regs->pl310_ctrl, L2X0_CTRL_EN);
+}
+
+static int l2x0_probe(struct udevice *dev)
+{
+	l2c310_of_parse_and_init(dev);
+
+	return 0;
+}
+
+
+static const struct udevice_id l2x0_ids[] = {
+	{ .compatible = "arm,pl310-cache" },
+	{}
+};
+
+U_BOOT_DRIVER(pl310_cache) = {
+	.name   = "pl310_cache",
+	.id     = UCLASS_CACHE,
+	.of_match = l2x0_ids,
+	.probe	= l2x0_probe,
+	.flags  = DM_FLAG_PRE_RELOC,
+};
-- 
2.20.0

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

* [U-Boot] [PATCHv5 5/6] ARM: socfpga: use the pl310 driver to configure the cache
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
                   ` (3 preceding siblings ...)
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 4/6] dm: cache: add the pl310 cache controller driver Dinh Nguyen
@ 2019-04-23 21:55 ` Dinh Nguyen
  2019-05-06 11:14   ` Tom Rini
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 6/6] configs: socfpga: add imply pl310 cache controller Dinh Nguyen
  2019-04-23 22:02 ` [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Tom Rini
  6 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

Find the UCLASS_CACHE driver to configure the cache controller's
settings.

Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
 arch/arm/mach-socfpga/misc.c | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c
index ec8339e045..34d8c4c51b 100644
--- a/arch/arm/mach-socfpga/misc.c
+++ b/arch/arm/mach-socfpga/misc.c
@@ -59,20 +59,10 @@ void enable_caches(void)
 #ifdef CONFIG_SYS_L2_PL310
 void v7_outer_cache_enable(void)
 {
-	/* Disable the L2 cache */
-	clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
-
-	writel(0x0, &pl310->pl310_tag_latency_ctrl);
-	writel(0x10, &pl310->pl310_data_latency_ctrl);
-
-	/* enable BRESP, instruction and data prefetch, full line of zeroes */
-	setbits_le32(&pl310->pl310_aux_ctrl,
-		     L310_AUX_CTRL_DATA_PREFETCH_MASK |
-		     L310_AUX_CTRL_INST_PREFETCH_MASK |
-		     L310_SHARED_ATT_OVERRIDE_ENABLE);
+	struct udevice *dev;
 
-	/* Enable the L2 cache */
-	setbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
+	if (uclass_get_device(UCLASS_CACHE, 0, &dev))
+		pr_err("cache controller driver NOT found!\n");
 }
 
 void v7_outer_cache_disable(void)
-- 
2.20.0

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

* [U-Boot] [PATCHv5 6/6] configs: socfpga: add imply pl310 cache controller
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
                   ` (4 preceding siblings ...)
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 5/6] ARM: socfpga: use the pl310 driver to configure the cache Dinh Nguyen
@ 2019-04-23 21:55 ` Dinh Nguyen
  2019-05-06 11:14   ` Tom Rini
  2019-04-23 22:02 ` [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Tom Rini
  6 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-23 21:55 UTC (permalink / raw)
  To: u-boot

Select the PL310 UCLASS_CACHE driver for SoCFPGA.

Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
 arch/arm/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f58f8fb235..f5132d8174 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -845,6 +845,7 @@ config ARCH_SOCFPGA
 	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
 	imply SPL_SPI_FLASH_SUPPORT
 	imply SPL_SPI_SUPPORT
+	imply L2X0_CACHE
 
 config ARCH_SUNXI
 	bool "Support sunxi (Allwinner) SoCs"
-- 
2.20.0

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

* [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver
  2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
                   ` (5 preceding siblings ...)
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 6/6] configs: socfpga: add imply pl310 cache controller Dinh Nguyen
@ 2019-04-23 22:02 ` Tom Rini
  2019-04-24 12:32   ` Dinh Nguyen
  6 siblings, 1 reply; 18+ messages in thread
From: Tom Rini @ 2019-04-23 22:02 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:00PM -0500, Dinh Nguyen wrote:
> Hi,
> 
> This is V4 of the series to add a UCLASS_CACHE dm driver to handling
> the configuration of cache settings. Place this new driver under
> /drivers/cache. In this initial revision, the driver is only configuring
> what I think are essential cache settings. The more comprehensive cache
> settings can be done in the OS.
> 
> Diffs from v4:
> - Fix compile error found in sandbox_cache.c

Thanks.  I'd greatly appreciate it if you can throw this whole series at
travis (or just do a world build locally) and report back that
everything is OK now.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190423/b35ff22b/attachment.sig>

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

* [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver
  2019-04-23 22:02 ` [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Tom Rini
@ 2019-04-24 12:32   ` Dinh Nguyen
  2019-04-24 12:58     ` Tom Rini
  0 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-24 12:32 UTC (permalink / raw)
  To: u-boot



On 4/23/19 5:02 PM, Tom Rini wrote:
> On Tue, Apr 23, 2019 at 04:55:00PM -0500, Dinh Nguyen wrote:
>> Hi,
>>
>> This is V4 of the series to add a UCLASS_CACHE dm driver to handling
>> the configuration of cache settings. Place this new driver under
>> /drivers/cache. In this initial revision, the driver is only configuring
>> what I think are essential cache settings. The more comprehensive cache
>> settings can be done in the OS.
>>
>> Diffs from v4:
>> - Fix compile error found in sandbox_cache.c
> 
> Thanks.  I'd greatly appreciate it if you can throw this whole series at
> travis (or just do a world build locally) and report back that
> everything is OK now.
> 

Will do. By a "world build", you mean using buildman for all
architectures right?

Dinh

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190424/eb523ce3/attachment.sig>

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

* [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver
  2019-04-24 12:32   ` Dinh Nguyen
@ 2019-04-24 12:58     ` Tom Rini
  2019-04-24 23:50       ` Dinh Nguyen
  0 siblings, 1 reply; 18+ messages in thread
From: Tom Rini @ 2019-04-24 12:58 UTC (permalink / raw)
  To: u-boot

On Wed, Apr 24, 2019 at 07:32:14AM -0500, Dinh Nguyen wrote:
> 
> 
> On 4/23/19 5:02 PM, Tom Rini wrote:
> > On Tue, Apr 23, 2019 at 04:55:00PM -0500, Dinh Nguyen wrote:
> >> Hi,
> >>
> >> This is V4 of the series to add a UCLASS_CACHE dm driver to handling
> >> the configuration of cache settings. Place this new driver under
> >> /drivers/cache. In this initial revision, the driver is only configuring
> >> what I think are essential cache settings. The more comprehensive cache
> >> settings can be done in the OS.
> >>
> >> Diffs from v4:
> >> - Fix compile error found in sandbox_cache.c
> > 
> > Thanks.  I'd greatly appreciate it if you can throw this whole series at
> > travis (or just do a world build locally) and report back that
> > everything is OK now.
> > 
> 
> Will do. By a "world build", you mean using buildman for all
> architectures right?

Yes.  buildman can fetch a valid toolchain for everything I think (and
there's a documented location in .travis.yml for the maybe 1-2 that it
doesn't) and then build everything.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190424/95b64c0c/attachment.sig>

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

* [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver
  2019-04-24 12:58     ` Tom Rini
@ 2019-04-24 23:50       ` Dinh Nguyen
  2019-04-24 23:51         ` Tom Rini
  0 siblings, 1 reply; 18+ messages in thread
From: Dinh Nguyen @ 2019-04-24 23:50 UTC (permalink / raw)
  To: u-boot



On 4/24/19 7:58 AM, Tom Rini wrote:
> On Wed, Apr 24, 2019 at 07:32:14AM -0500, Dinh Nguyen wrote:
>>
>>
>> On 4/23/19 5:02 PM, Tom Rini wrote:
>>> On Tue, Apr 23, 2019 at 04:55:00PM -0500, Dinh Nguyen wrote:
>>>> Hi,
>>>>
>>>> This is V4 of the series to add a UCLASS_CACHE dm driver to handling
>>>> the configuration of cache settings. Place this new driver under
>>>> /drivers/cache. In this initial revision, the driver is only configuring
>>>> what I think are essential cache settings. The more comprehensive cache
>>>> settings can be done in the OS.
>>>>
>>>> Diffs from v4:
>>>> - Fix compile error found in sandbox_cache.c
>>>
>>> Thanks.  I'd greatly appreciate it if you can throw this whole series at
>>> travis (or just do a world build locally) and report back that
>>> everything is OK now.
>>>
>>
>> Will do. By a "world build", you mean using buildman for all
>> architectures right?
> 
> Yes.  buildman can fetch a valid toolchain for everything I think (and
> there's a documented location in .travis.yml for the maybe 1-2 that it
> doesn't) and then build everything.
> 

buildman just completed and it did not report any errors for this series
of patches.

Dinh

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190424/d0a441aa/attachment.sig>

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

* [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver
  2019-04-24 23:50       ` Dinh Nguyen
@ 2019-04-24 23:51         ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-04-24 23:51 UTC (permalink / raw)
  To: u-boot

On Wed, Apr 24, 2019 at 06:50:30PM -0500, Dinh Nguyen wrote:
> 
> 
> On 4/24/19 7:58 AM, Tom Rini wrote:
> > On Wed, Apr 24, 2019 at 07:32:14AM -0500, Dinh Nguyen wrote:
> >>
> >>
> >> On 4/23/19 5:02 PM, Tom Rini wrote:
> >>> On Tue, Apr 23, 2019 at 04:55:00PM -0500, Dinh Nguyen wrote:
> >>>> Hi,
> >>>>
> >>>> This is V4 of the series to add a UCLASS_CACHE dm driver to handling
> >>>> the configuration of cache settings. Place this new driver under
> >>>> /drivers/cache. In this initial revision, the driver is only configuring
> >>>> what I think are essential cache settings. The more comprehensive cache
> >>>> settings can be done in the OS.
> >>>>
> >>>> Diffs from v4:
> >>>> - Fix compile error found in sandbox_cache.c
> >>>
> >>> Thanks.  I'd greatly appreciate it if you can throw this whole series at
> >>> travis (or just do a world build locally) and report back that
> >>> everything is OK now.
> >>>
> >>
> >> Will do. By a "world build", you mean using buildman for all
> >> architectures right?
> > 
> > Yes.  buildman can fetch a valid toolchain for everything I think (and
> > there's a documented location in .travis.yml for the maybe 1-2 that it
> > doesn't) and then build everything.
> > 
> 
> buildman just completed and it did not report any errors for this series
> of patches.

Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190424/52f020b7/attachment.sig>

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

* [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation Dinh Nguyen
@ 2019-05-06 11:13   ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-05-06 11:13 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:01PM -0500, Dinh Nguyen wrote:

> Linux commit 8ecd7f5970c5 ("ARM: 8483/1: Documentation: l2c: Rename
> l2cc to l2c2x0")
> 
> Linux docs:
> Documentation/devicetree/bindings/arm/l2c2x0.txt
> 
> Copied from Linux kernel v5.0.
> 
> "The documentation in the l2cc.txt is specific to the L2 cache
> controllers L2C210/L2C220/L2C310 (also known as PL210/PL220/PL310
> and variants) and not generic as the file name implies. It's not
> valid for integrated L2 controllers as found in e.g.
> Cortex-A15/A7/A57/A53."
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/eba2dd5a/attachment.sig>

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

* [U-Boot] [PATCHv5 2/6] ARM: pl310: Add macro's for handling tag and data latency mask
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 2/6] ARM: pl310: Add macro's for handling tag and data latency mask Dinh Nguyen
@ 2019-05-06 11:14   ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-05-06 11:14 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:02PM -0500, Dinh Nguyen wrote:

> Add the PL310 macros for latency control setup, read and write bits.
> 
> Reviewed-by: Marek Vasut <marex@denx.de>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/e7fccb63/attachment.sig>

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

* [U-Boot] [PATCHv5 3/6] dm: cache: Create a uclass for cache
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 3/6] dm: cache: Create a uclass for cache Dinh Nguyen
@ 2019-05-06 11:14   ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-05-06 11:14 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:03PM -0500, Dinh Nguyen wrote:

> The cache UCLASS will be used for configure settings that can be found
> in a CPU's L2 cache controller.
> 
> Add a uclass and a test for cache.
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/265db913/attachment.sig>

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

* [U-Boot] [PATCHv5 4/6] dm: cache: add the pl310 cache controller driver
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 4/6] dm: cache: add the pl310 cache controller driver Dinh Nguyen
@ 2019-05-06 11:14   ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-05-06 11:14 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:04PM -0500, Dinh Nguyen wrote:

> Add a PL310 cache controller driver that is usually found on
> ARMv7(32-bit) devices. The driver configures the cache settings that can
> be found in the device tree files.
> 
> This initial revision only configures basic settings(data & instruction
> prefetch, shared-override, data & tag latency). I believe these are the
> settings that affect performance the most. Comprehensive settings can be
> done by the OS.
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/ffb6e8db/attachment.sig>

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

* [U-Boot] [PATCHv5 5/6] ARM: socfpga: use the pl310 driver to configure the cache
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 5/6] ARM: socfpga: use the pl310 driver to configure the cache Dinh Nguyen
@ 2019-05-06 11:14   ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-05-06 11:14 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:05PM -0500, Dinh Nguyen wrote:

> Find the UCLASS_CACHE driver to configure the cache controller's
> settings.
> 
> Reviewed-by: Marek Vasut <marex@denx.de>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/5e508662/attachment.sig>

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

* [U-Boot] [PATCHv5 6/6] configs: socfpga: add imply pl310 cache controller
  2019-04-23 21:55 ` [U-Boot] [PATCHv5 6/6] configs: socfpga: add imply pl310 cache controller Dinh Nguyen
@ 2019-05-06 11:14   ` Tom Rini
  0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2019-05-06 11:14 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 23, 2019 at 04:55:06PM -0500, Dinh Nguyen wrote:

> Select the PL310 UCLASS_CACHE driver for SoCFPGA.
> 
> Reviewed-by: Marek Vasut <marex@denx.de>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/682fc8d9/attachment.sig>

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

end of thread, other threads:[~2019-05-06 11:14 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-23 21:55 [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Dinh Nguyen
2019-04-23 21:55 ` [U-Boot] [PATCHv5 1/6] Documentation: dts: Add pl310 cache controller dts documentation Dinh Nguyen
2019-05-06 11:13   ` Tom Rini
2019-04-23 21:55 ` [U-Boot] [PATCHv5 2/6] ARM: pl310: Add macro's for handling tag and data latency mask Dinh Nguyen
2019-05-06 11:14   ` Tom Rini
2019-04-23 21:55 ` [U-Boot] [PATCHv5 3/6] dm: cache: Create a uclass for cache Dinh Nguyen
2019-05-06 11:14   ` Tom Rini
2019-04-23 21:55 ` [U-Boot] [PATCHv5 4/6] dm: cache: add the pl310 cache controller driver Dinh Nguyen
2019-05-06 11:14   ` Tom Rini
2019-04-23 21:55 ` [U-Boot] [PATCHv5 5/6] ARM: socfpga: use the pl310 driver to configure the cache Dinh Nguyen
2019-05-06 11:14   ` Tom Rini
2019-04-23 21:55 ` [U-Boot] [PATCHv5 6/6] configs: socfpga: add imply pl310 cache controller Dinh Nguyen
2019-05-06 11:14   ` Tom Rini
2019-04-23 22:02 ` [U-Boot] [PATCHv5 0/6] dm: cache: add dm cache driver Tom Rini
2019-04-24 12:32   ` Dinh Nguyen
2019-04-24 12:58     ` Tom Rini
2019-04-24 23:50       ` Dinh Nguyen
2019-04-24 23:51         ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.