Skip to content

Commit 0418592

Browse files
pankaj-qcomandersson
authored andcommitted
soc: qcom: llcc-qcom: Add support for Glymur
Add system cache table(SCT) and configs for Glymur SoC Updated the list of usecase id's to enable additional clients for Glymur Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com> Link: https://lore.kernel.org/r/20251211-glymur_llcc_enablement-v3-2-43457b354b0d@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
1 parent bd0b802 commit 0418592

2 files changed

Lines changed: 211 additions & 0 deletions

File tree

drivers/soc/qcom/llcc-qcom.c

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,197 @@ enum llcc_reg_offset {
182182
LLCC_TRP_WRS_CACHEABLE_EN,
183183
};
184184

185+
static const struct llcc_slice_config glymur_data[] = {
186+
{
187+
.usecase_id = LLCC_CPUSS,
188+
.slice_id = 1,
189+
.max_cap = 7680,
190+
.priority = 1,
191+
.bonus_ways = 0xFFF,
192+
.res_ways = 0x0,
193+
.vict_prio = true,
194+
.activate_on_init = true,
195+
}, {
196+
.usecase_id = LLCC_VIDSC0,
197+
.slice_id = 2,
198+
.max_cap = 512,
199+
.priority = 3,
200+
.fixed_size = true,
201+
.bonus_ways = 0xFFF,
202+
.res_ways = 0x0,
203+
.vict_prio = true,
204+
}, {
205+
.usecase_id = LLCC_AUDIO,
206+
.slice_id = 6,
207+
.max_cap = 1024,
208+
.priority = 1,
209+
.fixed_size = true,
210+
.bonus_ways = 0xFFF,
211+
.res_ways = 0x0,
212+
.vict_prio = true,
213+
}, {
214+
.usecase_id = LLCC_VIDSC1,
215+
.slice_id = 4,
216+
.max_cap = 512,
217+
.priority = 3,
218+
.fixed_size = true,
219+
.bonus_ways = 0xFFF,
220+
.res_ways = 0x0,
221+
.vict_prio = true,
222+
}, {
223+
.usecase_id = LLCC_CMPT,
224+
.slice_id = 10,
225+
.max_cap = 7680,
226+
.priority = 1,
227+
.fixed_size = true,
228+
.bonus_ways = 0xFFF,
229+
.res_ways = 0x0,
230+
.vict_prio = true,
231+
}, {
232+
.usecase_id = LLCC_GPUHTW,
233+
.slice_id = 11,
234+
.max_cap = 512,
235+
.priority = 1,
236+
.fixed_size = true,
237+
.bonus_ways = 0xFFF,
238+
.res_ways = 0x0,
239+
.vict_prio = true,
240+
}, {
241+
.usecase_id = LLCC_GPU,
242+
.slice_id = 9,
243+
.max_cap = 7680,
244+
.priority = 1,
245+
.bonus_ways = 0xFFF,
246+
.res_ways = 0x0,
247+
.write_scid_en = true,
248+
.write_scid_cacheable_en = true,
249+
.stale_en = true,
250+
.vict_prio = true,
251+
}, {
252+
.usecase_id = LLCC_MMUHWT,
253+
.slice_id = 18,
254+
.max_cap = 768,
255+
.priority = 1,
256+
.fixed_size = true,
257+
.bonus_ways = 0xFFF,
258+
.res_ways = 0x0,
259+
.vict_prio = true,
260+
.activate_on_init = true,
261+
}, {
262+
.usecase_id = LLCC_AUDHW,
263+
.slice_id = 22,
264+
.max_cap = 1024,
265+
.priority = 1,
266+
.fixed_size = true,
267+
.bonus_ways = 0xFFF,
268+
.res_ways = 0x0,
269+
.vict_prio = true,
270+
}, {
271+
.usecase_id = LLCC_CVP,
272+
.slice_id = 8,
273+
.max_cap = 64,
274+
.priority = 3,
275+
.fixed_size = true,
276+
.bonus_ways = 0xFFF,
277+
.res_ways = 0x0,
278+
.vict_prio = true,
279+
}, {
280+
.usecase_id = LLCC_WRCACHE,
281+
.slice_id = 31,
282+
.max_cap = 1536,
283+
.priority = 1,
284+
.fixed_size = true,
285+
.bonus_ways = 0xFFF,
286+
.res_ways = 0x0,
287+
.vict_prio = true,
288+
.activate_on_init = true,
289+
}, {
290+
.usecase_id = LLCC_CMPTHCP,
291+
.slice_id = 17,
292+
.max_cap = 256,
293+
.priority = 3,
294+
.fixed_size = true,
295+
.bonus_ways = 0xFFF,
296+
.res_ways = 0x0,
297+
.vict_prio = true,
298+
}, {
299+
.usecase_id = LLCC_LCPDARE,
300+
.slice_id = 30,
301+
.max_cap = 768,
302+
.priority = 3,
303+
.fixed_size = true,
304+
.bonus_ways = 0xFFF,
305+
.res_ways = 0x0,
306+
.alloc_oneway_en = true,
307+
.vict_prio = true,
308+
.activate_on_init = true,
309+
}, {
310+
.usecase_id = LLCC_AENPU,
311+
.slice_id = 3,
312+
.max_cap = 3072,
313+
.priority = 1,
314+
.fixed_size = true,
315+
.bonus_ways = 0xFFF,
316+
.res_ways = 0x0,
317+
.cache_mode = 2,
318+
.vict_prio = true,
319+
}, {
320+
.usecase_id = LLCC_ISLAND1,
321+
.slice_id = 12,
322+
.max_cap = 5632,
323+
.priority = 7,
324+
.fixed_size = true,
325+
.bonus_ways = 0x0,
326+
.res_ways = 0x7FF,
327+
.vict_prio = true,
328+
}, {
329+
.usecase_id = LLCC_VIDVSP,
330+
.slice_id = 28,
331+
.max_cap = 256,
332+
.priority = 3,
333+
.fixed_size = true,
334+
.bonus_ways = 0xFFF,
335+
.res_ways = 0x0,
336+
.vict_prio = true,
337+
}, {
338+
.usecase_id = LLCC_OOBM_NS,
339+
.slice_id = 5,
340+
.max_cap = 512,
341+
.priority = 1,
342+
.bonus_ways = 0xFFF,
343+
.res_ways = 0x0,
344+
.vict_prio = true,
345+
}, {
346+
.usecase_id = LLCC_CPUSS_OPP,
347+
.slice_id = 32,
348+
.max_cap = 0,
349+
.fixed_size = true,
350+
.bonus_ways = 0x0,
351+
.res_ways = 0x0,
352+
.vict_prio = true,
353+
.activate_on_init = true,
354+
}, {
355+
.usecase_id = LLCC_PCIE_TCU,
356+
.slice_id = 19,
357+
.max_cap = 256,
358+
.priority = 1,
359+
.fixed_size = true,
360+
.bonus_ways = 0xFFF,
361+
.res_ways = 0x0,
362+
.vict_prio = true,
363+
.activate_on_init = true,
364+
}, {
365+
.usecase_id = LLCC_VIDSC_VSP1,
366+
.slice_id = 29,
367+
.max_cap = 256,
368+
.priority = 3,
369+
.fixed_size = true,
370+
.bonus_ways = 0xFFF,
371+
.res_ways = 0x0,
372+
.vict_prio = true,
373+
}
374+
};
375+
185376
static const struct llcc_slice_config ipq5424_data[] = {
186377
{
187378
.usecase_id = LLCC_CPUSS,
@@ -3872,6 +4063,16 @@ static const struct qcom_llcc_config kaanapali_cfg[] = {
38724063
},
38734064
};
38744065

4066+
static const struct qcom_llcc_config glymur_cfg[] = {
4067+
{
4068+
.sct_data = glymur_data,
4069+
.size = ARRAY_SIZE(glymur_data),
4070+
.reg_offset = llcc_v6_reg_offset,
4071+
.edac_reg_offset = &llcc_v2_1_edac_reg_offset,
4072+
.no_edac = true,
4073+
},
4074+
};
4075+
38754076
static const struct qcom_llcc_config qcs615_cfg[] = {
38764077
{
38774078
.sct_data = qcs615_data,
@@ -4103,6 +4304,11 @@ static const struct qcom_sct_config kaanapali_cfgs = {
41034304
.num_config = ARRAY_SIZE(kaanapali_cfg),
41044305
};
41054306

4307+
static const struct qcom_sct_config glymur_cfgs = {
4308+
.llcc_config = glymur_cfg,
4309+
.num_config = ARRAY_SIZE(glymur_cfg),
4310+
};
4311+
41064312
static const struct qcom_sct_config qcs615_cfgs = {
41074313
.llcc_config = qcs615_cfg,
41084314
.num_config = ARRAY_SIZE(qcs615_cfg),
@@ -4941,6 +5147,7 @@ static int qcom_llcc_probe(struct platform_device *pdev)
49415147
}
49425148

49435149
static const struct of_device_id qcom_llcc_of_match[] = {
5150+
{ .compatible = "qcom,glymur-llcc", .data = &glymur_cfgs },
49445151
{ .compatible = "qcom,ipq5424-llcc", .data = &ipq5424_cfgs},
49455152
{ .compatible = "qcom,kaanapali-llcc", .data = &kaanapali_cfgs},
49465153
{ .compatible = "qcom,qcs615-llcc", .data = &qcs615_cfgs},

include/linux/soc/qcom/llcc-qcom.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,17 @@
7474
#define LLCC_CAMSRTIP 73
7575
#define LLCC_CAMRTRF 74
7676
#define LLCC_CAMSRTRF 75
77+
#define LLCC_OOBM_NS 81
78+
#define LLCC_OOBM_S 82
7779
#define LLCC_VIDEO_APV 83
7880
#define LLCC_COMPUTE1 87
7981
#define LLCC_CPUSS_OPP 88
8082
#define LLCC_CPUSSMPAM 89
83+
#define LLCC_VIDSC_VSP1 91
8184
#define LLCC_CAM_IPE_STROV 92
8285
#define LLCC_CAM_OFE_STROV 93
8386
#define LLCC_CPUSS_HEU 94
87+
#define LLCC_PCIE_TCU 97
8488
#define LLCC_MDM_PNG_FIXED 100
8589

8690
/**

0 commit comments

Comments
 (0)