17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 27ef62cebSEmmanuel Vadot# Copyright (C) 2020 SiFive, Inc. 37ef62cebSEmmanuel Vadot%YAML 1.2 47ef62cebSEmmanuel Vadot--- 57ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/riscv/sifive,ccache0.yaml# 67ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 77ef62cebSEmmanuel Vadot 87ef62cebSEmmanuel Vadottitle: SiFive Composable Cache Controller 97ef62cebSEmmanuel Vadot 107ef62cebSEmmanuel Vadotmaintainers: 117ef62cebSEmmanuel Vadot - Paul Walmsley <paul.walmsley@sifive.com> 127ef62cebSEmmanuel Vadot 137ef62cebSEmmanuel Vadotdescription: 147ef62cebSEmmanuel Vadot The SiFive Composable Cache Controller is used to provide access to fast copies 157ef62cebSEmmanuel Vadot of memory for masters in a Core Complex. The Composable Cache Controller also 167ef62cebSEmmanuel Vadot acts as directory-based coherency manager. 177ef62cebSEmmanuel Vadot All the properties in ePAPR/DeviceTree specification applies for this platform. 187ef62cebSEmmanuel Vadot 197ef62cebSEmmanuel Vadotselect: 207ef62cebSEmmanuel Vadot properties: 217ef62cebSEmmanuel Vadot compatible: 227ef62cebSEmmanuel Vadot contains: 237ef62cebSEmmanuel Vadot enum: 247ef62cebSEmmanuel Vadot - sifive,ccache0 257ef62cebSEmmanuel Vadot - sifive,fu540-c000-ccache 267ef62cebSEmmanuel Vadot - sifive,fu740-c000-ccache 277ef62cebSEmmanuel Vadot 287ef62cebSEmmanuel Vadot required: 297ef62cebSEmmanuel Vadot - compatible 307ef62cebSEmmanuel Vadot 317ef62cebSEmmanuel Vadotproperties: 327ef62cebSEmmanuel Vadot compatible: 337ef62cebSEmmanuel Vadot oneOf: 347ef62cebSEmmanuel Vadot - items: 357ef62cebSEmmanuel Vadot - enum: 367ef62cebSEmmanuel Vadot - sifive,ccache0 377ef62cebSEmmanuel Vadot - sifive,fu540-c000-ccache 387ef62cebSEmmanuel Vadot - sifive,fu740-c000-ccache 397ef62cebSEmmanuel Vadot - const: cache 407ef62cebSEmmanuel Vadot - items: 41*cb7aa33aSEmmanuel Vadot - const: starfive,jh7110-ccache 42*cb7aa33aSEmmanuel Vadot - const: sifive,ccache0 43*cb7aa33aSEmmanuel Vadot - const: cache 44*cb7aa33aSEmmanuel Vadot - items: 457ef62cebSEmmanuel Vadot - const: microchip,mpfs-ccache 467ef62cebSEmmanuel Vadot - const: sifive,fu540-c000-ccache 477ef62cebSEmmanuel Vadot - const: cache 487ef62cebSEmmanuel Vadot 497ef62cebSEmmanuel Vadot cache-block-size: 507ef62cebSEmmanuel Vadot const: 64 517ef62cebSEmmanuel Vadot 527ef62cebSEmmanuel Vadot cache-level: 537ef62cebSEmmanuel Vadot enum: [2, 3] 547ef62cebSEmmanuel Vadot 557ef62cebSEmmanuel Vadot cache-sets: 567ef62cebSEmmanuel Vadot enum: [1024, 2048] 577ef62cebSEmmanuel Vadot 587ef62cebSEmmanuel Vadot cache-size: 597ef62cebSEmmanuel Vadot const: 2097152 607ef62cebSEmmanuel Vadot 617ef62cebSEmmanuel Vadot cache-unified: true 627ef62cebSEmmanuel Vadot 637ef62cebSEmmanuel Vadot interrupts: 647ef62cebSEmmanuel Vadot minItems: 3 657ef62cebSEmmanuel Vadot items: 667ef62cebSEmmanuel Vadot - description: DirError interrupt 677ef62cebSEmmanuel Vadot - description: DataError interrupt 687ef62cebSEmmanuel Vadot - description: DataFail interrupt 697ef62cebSEmmanuel Vadot - description: DirFail interrupt 707ef62cebSEmmanuel Vadot 717ef62cebSEmmanuel Vadot reg: 727ef62cebSEmmanuel Vadot maxItems: 1 737ef62cebSEmmanuel Vadot 747ef62cebSEmmanuel Vadot next-level-cache: true 757ef62cebSEmmanuel Vadot 767ef62cebSEmmanuel Vadot memory-region: 777ef62cebSEmmanuel Vadot maxItems: 1 787ef62cebSEmmanuel Vadot description: | 797ef62cebSEmmanuel Vadot The reference to the reserved-memory for the L2 Loosely Integrated Memory region. 807ef62cebSEmmanuel Vadot The reserved memory node should be defined as per the bindings in reserved-memory.txt. 817ef62cebSEmmanuel Vadot 827ef62cebSEmmanuel VadotallOf: 837ef62cebSEmmanuel Vadot - $ref: /schemas/cache-controller.yaml# 847ef62cebSEmmanuel Vadot 857ef62cebSEmmanuel Vadot - if: 867ef62cebSEmmanuel Vadot properties: 877ef62cebSEmmanuel Vadot compatible: 887ef62cebSEmmanuel Vadot contains: 897ef62cebSEmmanuel Vadot enum: 907ef62cebSEmmanuel Vadot - sifive,fu740-c000-ccache 91*cb7aa33aSEmmanuel Vadot - starfive,jh7110-ccache 927ef62cebSEmmanuel Vadot - microchip,mpfs-ccache 937ef62cebSEmmanuel Vadot 947ef62cebSEmmanuel Vadot then: 957ef62cebSEmmanuel Vadot properties: 967ef62cebSEmmanuel Vadot interrupts: 977ef62cebSEmmanuel Vadot description: | 987ef62cebSEmmanuel Vadot Must contain entries for DirError, DataError, DataFail, DirFail signals. 997ef62cebSEmmanuel Vadot minItems: 4 1007ef62cebSEmmanuel Vadot 1017ef62cebSEmmanuel Vadot else: 1027ef62cebSEmmanuel Vadot properties: 1037ef62cebSEmmanuel Vadot interrupts: 1047ef62cebSEmmanuel Vadot description: | 1057ef62cebSEmmanuel Vadot Must contain entries for DirError, DataError and DataFail signals. 1067ef62cebSEmmanuel Vadot maxItems: 3 1077ef62cebSEmmanuel Vadot 1087ef62cebSEmmanuel Vadot - if: 1097ef62cebSEmmanuel Vadot properties: 1107ef62cebSEmmanuel Vadot compatible: 1117ef62cebSEmmanuel Vadot contains: 112*cb7aa33aSEmmanuel Vadot enum: 113*cb7aa33aSEmmanuel Vadot - sifive,fu740-c000-ccache 114*cb7aa33aSEmmanuel Vadot - starfive,jh7110-ccache 1157ef62cebSEmmanuel Vadot 1167ef62cebSEmmanuel Vadot then: 1177ef62cebSEmmanuel Vadot properties: 1187ef62cebSEmmanuel Vadot cache-sets: 1197ef62cebSEmmanuel Vadot const: 2048 1207ef62cebSEmmanuel Vadot 1217ef62cebSEmmanuel Vadot else: 1227ef62cebSEmmanuel Vadot properties: 1237ef62cebSEmmanuel Vadot cache-sets: 1247ef62cebSEmmanuel Vadot const: 1024 1257ef62cebSEmmanuel Vadot 1267ef62cebSEmmanuel Vadot - if: 1277ef62cebSEmmanuel Vadot properties: 1287ef62cebSEmmanuel Vadot compatible: 1297ef62cebSEmmanuel Vadot contains: 1307ef62cebSEmmanuel Vadot const: sifive,ccache0 1317ef62cebSEmmanuel Vadot 1327ef62cebSEmmanuel Vadot then: 1337ef62cebSEmmanuel Vadot properties: 1347ef62cebSEmmanuel Vadot cache-level: 1357ef62cebSEmmanuel Vadot enum: [2, 3] 1367ef62cebSEmmanuel Vadot 1377ef62cebSEmmanuel Vadot else: 1387ef62cebSEmmanuel Vadot properties: 1397ef62cebSEmmanuel Vadot cache-level: 1407ef62cebSEmmanuel Vadot const: 2 1417ef62cebSEmmanuel Vadot 1427ef62cebSEmmanuel VadotadditionalProperties: false 1437ef62cebSEmmanuel Vadot 1447ef62cebSEmmanuel Vadotrequired: 1457ef62cebSEmmanuel Vadot - compatible 1467ef62cebSEmmanuel Vadot - cache-block-size 1477ef62cebSEmmanuel Vadot - cache-level 1487ef62cebSEmmanuel Vadot - cache-sets 1497ef62cebSEmmanuel Vadot - cache-size 1507ef62cebSEmmanuel Vadot - cache-unified 1517ef62cebSEmmanuel Vadot - interrupts 1527ef62cebSEmmanuel Vadot - reg 1537ef62cebSEmmanuel Vadot 1547ef62cebSEmmanuel Vadotexamples: 1557ef62cebSEmmanuel Vadot - | 1567ef62cebSEmmanuel Vadot cache-controller@2010000 { 1577ef62cebSEmmanuel Vadot compatible = "sifive,fu540-c000-ccache", "cache"; 1587ef62cebSEmmanuel Vadot cache-block-size = <64>; 1597ef62cebSEmmanuel Vadot cache-level = <2>; 1607ef62cebSEmmanuel Vadot cache-sets = <1024>; 1617ef62cebSEmmanuel Vadot cache-size = <2097152>; 1627ef62cebSEmmanuel Vadot cache-unified; 1637ef62cebSEmmanuel Vadot reg = <0x2010000 0x1000>; 1647ef62cebSEmmanuel Vadot interrupt-parent = <&plic0>; 1657ef62cebSEmmanuel Vadot interrupts = <1>, 1667ef62cebSEmmanuel Vadot <2>, 1677ef62cebSEmmanuel Vadot <3>; 1687ef62cebSEmmanuel Vadot next-level-cache = <&L25>; 1697ef62cebSEmmanuel Vadot memory-region = <&l2_lim>; 1707ef62cebSEmmanuel Vadot }; 171