UniPhier outer cache controller UniPhier SoCs are integrated with a full-custom outer cache controller system. All of them have a level 2 cache controller, and some have a level 3 cache controller as well. Required properties: - compatible: should be "socionext,uniphier-system-cache" - reg: offsets and lengths of the register sets for the device. It should contain 3 regions: control register, revision register, operation register, in this order. - cache-unified: specifies the cache is a unified cache. - cache-size: specifies the size in bytes of the cache - cache-sets: specifies the number of associativity sets of the cache - cache-line-size: specifies the line size in bytes - cache-level: specifies the level in the cache hierarchy. The value should be 2 for L2 cache, 3 for L3 cache, etc. Optional properties: - next-level-cache: phandle to the next level cache if present. The next level cache should be also compatible with "socionext,uniphier-system-cache". The L2 cache must exist to use the L3 cache; the cache hierarchy must be indicated correctly with "next-level-cache" properties. Example 1 (system with L2): l2: l2-cache@500c0000 { compatible = "socionext,uniphier-system-cache"; reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>; cache-unified; cache-size = <0x80000>; cache-sets = <256>; cache-line-size = <128>; cache-level = <2>; }; Example 2 (system with L2 and L3): l2: l2-cache@500c0000 { compatible = "socionext,uniphier-system-cache"; reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>; cache-unified; cache-size = <0x200000>; cache-sets = <512>; cache-line-size = <128>; cache-level = <2>; next-level-cache = <&l3>; }; l3: l3-cache@500c8000 { compatible = "socionext,uniphier-system-cache"; reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>; cache-unified; cache-size = <0x400000>; cache-sets = <512>; cache-line-size = <256>; cache-level = <3>; }; |