Hi Peter, Peter Geis <pgwipeout@xxxxxxxxx> wrote on Wed, 4 Dec 2019 12:14:40 -0500: > On Wed, Dec 4, 2019 at 10:44 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > Hi Peter, > > > > Peter Geis <pgwipeout@xxxxxxxxx> wrote on Wed, 4 Dec 2019 10:36:19 > > -0500: > > > > > On Wed, Dec 4, 2019 at 5:40 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > > > > > PX30 SoCs feature 4 Cortex-A35 CPUs with each of them a L1 data and > > > > instruction cache. Both are 32kiB wide (PX30 TRM) and made of 64-bit > > > > lines (ARM Cortex-A35 manual). I-cache is 2-way set associative (ARM > > > > Cortex-A35 manual), D-cache is 4-way set associative (ARM > > > > Cortex-A35manual). > > > > > > > > An L2 cache is placed after these 4 L1 caches (PX30 TRM), is 256kiB > > > > wide (PX30 TRM) and made of 64-bit lines (ARM Cortex-A35 manual) and > > > > is 8-way set associative (ARM Cortex-A35 manual). > > > > > > > > Describe all of them in the PX30 DTSI. > > > > > > > > Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> > > > > --- > > > > arch/arm64/boot/dts/rockchip/px30.dtsi | 35 ++++++++++++++++++++++++++ > > > > 1 file changed, 35 insertions(+) > > > > > > > > diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/rockchip/px30.dtsi > > > > index 1fd12bd09e83..0e10a224a84b 100644 > > > > --- a/arch/arm64/boot/dts/rockchip/px30.dtsi > > > > +++ b/arch/arm64/boot/dts/rockchip/px30.dtsi > > > > @@ -48,6 +48,13 @@ > > > > cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; > > > > dynamic-power-coefficient = <90>; > > > > operating-points-v2 = <&cpu0_opp_table>; > > > > + i-cache-size = <0x8000>; > > > > + i-cache-line-size = <64>; > > > > + i-cache-sets = <256>; > > > > + d-cache-size = <0x8000>; > > > > + d-cache-line-size = <64>; > > > > + d-cache-sets = <128>; > > > > + next-level-cache = <&l2>; > > > > > > If the i-cache is 2-way associative and the d-cache is 4-way, wouldn't > > > that mean these two values are backwards? > > > > Which value are you referring to? Do you mean cache-sets? The following > > calculation is my understanding of the situation but it is the first > > time I am doing it so I might be totally wrong. > > > > My understanding is that if there are 32768 cache bytes made of 64-byte > > lines, so there are 512 lines in both cases. > > > > Then, if the instruction cache is 2-way associative, it means there are > > 512 / 2 = 256 sets. For the data cache (4-way), it would be 512 / 4 = > > 128. Am I wrong? > > Apologies, you are correct, it was I who was mistaken. No problem, I was not 100% sure either. Thanks for the review anyway! Cheers, Miquèl