| SiFive L2 Cache Controller |
| -------------------------- |
| The SiFive Level 2 Cache Controller is used to provide access to fast copies |
| of memory for masters in a Core Complex. The Level 2 Cache Controller also |
| acts as directory-based coherency manager. |
| All the properties in ePAPR/DeviceTree specification applies for this platform |
| |
| Required Properties: |
| -------------------- |
| - compatible: Should be "sifive,fu540-c000-ccache" and "cache" |
| |
| - cache-block-size: Specifies the block size in bytes of the cache. |
| Should be 64 |
| |
| - cache-level: Should be set to 2 for a level 2 cache |
| |
| - cache-sets: Specifies the number of associativity sets of the cache. |
| Should be 1024 |
| |
| - cache-size: Specifies the size in bytes of the cache. Should be 2097152 |
| |
| - cache-unified: Specifies the cache is a unified cache |
| |
| - interrupts: Must contain 3 entries (DirError, DataError and DataFail signals) |
| |
| - reg: Physical base address and size of L2 cache controller registers map |
| |
| Optional Properties: |
| -------------------- |
| - next-level-cache: phandle to the next level cache if present. |
| |
| - memory-region: reference to the reserved-memory for the L2 Loosely Integrated |
| Memory region. The reserved memory node should be defined as per the bindings |
| in reserved-memory.txt |
| |
| |
| Example: |
| |
| cache-controller@2010000 { |
| compatible = "sifive,fu540-c000-ccache", "cache"; |
| cache-block-size = <64>; |
| cache-level = <2>; |
| cache-sets = <1024>; |
| cache-size = <2097152>; |
| cache-unified; |
| interrupt-parent = <&plic0>; |
| interrupts = <1 2 3>; |
| reg = <0x0 0x2010000 0x0 0x1000>; |
| next-level-cache = <&L25 &L40 &L36>; |
| memory-region = <&l2_lim>; |
| }; |