mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 06:39:05 +00:00

This cache controller is also used on the ESWIN EIC7700 SoC. However, it have 256KB private L2 Cache and shared L3 Cache of 4MB. So add dedicated compatible string for it. Signed-off-by: Pritesh Patel <pritesh.patel@einfochips.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Signed-off-by: Pinkesh Vaghela <pinkesh.vaghela@einfochips.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
213 lines
4.5 KiB
YAML
213 lines
4.5 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
# Copyright (C) 2020 SiFive, Inc.
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/cache/sifive,ccache0.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: SiFive Composable Cache Controller
|
|
|
|
maintainers:
|
|
- Paul Walmsley <paul.walmsley@sifive.com>
|
|
|
|
description:
|
|
The SiFive Composable Cache Controller is used to provide access to fast copies
|
|
of memory for masters in a Core Complex. The Composable Cache Controller also
|
|
acts as directory-based coherency manager.
|
|
All the properties in ePAPR/DeviceTree specification applies for this platform.
|
|
|
|
select:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- sifive,ccache0
|
|
- sifive,fu540-c000-ccache
|
|
- sifive,fu740-c000-ccache
|
|
|
|
required:
|
|
- compatible
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- sifive,ccache0
|
|
- sifive,fu540-c000-ccache
|
|
- sifive,fu740-c000-ccache
|
|
- const: cache
|
|
- items:
|
|
- enum:
|
|
- eswin,eic7700-l3-cache
|
|
- starfive,jh7100-ccache
|
|
- starfive,jh7110-ccache
|
|
- const: sifive,ccache0
|
|
- const: cache
|
|
- items:
|
|
- const: microchip,mpfs-ccache
|
|
- const: sifive,fu540-c000-ccache
|
|
- const: cache
|
|
|
|
cache-block-size:
|
|
const: 64
|
|
|
|
cache-level:
|
|
enum: [2, 3]
|
|
|
|
cache-sets:
|
|
enum: [1024, 2048, 4096]
|
|
|
|
cache-size:
|
|
enum: [2097152, 4194304]
|
|
|
|
cache-unified: true
|
|
|
|
interrupts:
|
|
minItems: 3
|
|
items:
|
|
- description: DirError interrupt
|
|
- description: DataError interrupt
|
|
- description: DataFail interrupt
|
|
- description: DirFail interrupt
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
next-level-cache: true
|
|
|
|
memory-region:
|
|
maxItems: 1
|
|
description: |
|
|
The 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.
|
|
|
|
allOf:
|
|
- $ref: /schemas/cache-controller.yaml#
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- eswin,eic7700-l3-cache
|
|
- sifive,fu740-c000-ccache
|
|
- starfive,jh7100-ccache
|
|
- starfive,jh7110-ccache
|
|
- microchip,mpfs-ccache
|
|
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
description: |
|
|
Must contain entries for DirError, DataError, DataFail, DirFail signals.
|
|
minItems: 4
|
|
|
|
else:
|
|
properties:
|
|
interrupts:
|
|
description: |
|
|
Must contain entries for DirError, DataError and DataFail signals.
|
|
maxItems: 3
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: eswin,eic7700-l3-cache
|
|
|
|
then:
|
|
properties:
|
|
cache-size:
|
|
const: 4194304
|
|
|
|
else:
|
|
properties:
|
|
cache-size:
|
|
const: 2097152
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- sifive,fu740-c000-ccache
|
|
- starfive,jh7100-ccache
|
|
- starfive,jh7110-ccache
|
|
|
|
then:
|
|
properties:
|
|
cache-sets:
|
|
const: 2048
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- microchip,mpfs-ccache
|
|
- sifive,fu540-c000-ccache
|
|
|
|
then:
|
|
properties:
|
|
cache-sets:
|
|
const: 1024
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- eswin,eic7700-l3-cache
|
|
|
|
then:
|
|
properties:
|
|
cache-sets:
|
|
const: 4096
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: sifive,ccache0
|
|
|
|
then:
|
|
properties:
|
|
cache-level:
|
|
enum: [2, 3]
|
|
|
|
else:
|
|
properties:
|
|
cache-level:
|
|
const: 2
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- cache-block-size
|
|
- cache-level
|
|
- cache-sets
|
|
- cache-size
|
|
- cache-unified
|
|
- interrupts
|
|
- reg
|
|
|
|
examples:
|
|
- |
|
|
cache-controller@2010000 {
|
|
compatible = "sifive,fu540-c000-ccache", "cache";
|
|
cache-block-size = <64>;
|
|
cache-level = <2>;
|
|
cache-sets = <1024>;
|
|
cache-size = <2097152>;
|
|
cache-unified;
|
|
reg = <0x2010000 0x1000>;
|
|
interrupt-parent = <&plic0>;
|
|
interrupts = <1>,
|
|
<2>,
|
|
<3>;
|
|
next-level-cache = <&L25>;
|
|
memory-region = <&l2_lim>;
|
|
};
|