Merge "interconnect: qcom: Enable qos programming for VOLCANO"

This commit is contained in:
qctecmdr 2024-04-17 13:55:27 -07:00 committed by Gerrit - the friendly Code Review server
commit 772f573cd9
2 changed files with 235 additions and 94 deletions

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
*
*/
@ -35,7 +35,7 @@ static struct qcom_icc_qosbox qhm_qup1_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -57,7 +57,7 @@ static struct qcom_icc_qosbox xm_ufs_mem_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -79,7 +79,7 @@ static struct qcom_icc_qosbox xm_usb3_0_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -101,7 +101,7 @@ static struct qcom_icc_qosbox qhm_qdss_bam_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -123,7 +123,7 @@ static struct qcom_icc_qosbox qhm_qspi_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -145,7 +145,7 @@ static struct qcom_icc_qosbox qhm_qup0_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -166,8 +166,8 @@ static struct qcom_icc_qosbox qxm_crypto_qos = {
.offsets = { 0x15000 },
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 1,
.prio_fwd_disable = 0,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
@ -188,8 +188,8 @@ static struct qcom_icc_qosbox qxm_ipa_qos = {
.offsets = { 0x16000 },
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 1,
.prio_fwd_disable = 0,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
@ -211,7 +211,7 @@ static struct qcom_icc_qosbox xm_qdss_etr_0_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -233,7 +233,7 @@ static struct qcom_icc_qosbox xm_qdss_etr_1_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -255,7 +255,7 @@ static struct qcom_icc_qosbox xm_sdc1_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -277,7 +277,7 @@ static struct qcom_icc_qosbox xm_sdc2_qos = {
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -426,7 +426,7 @@ static struct qcom_icc_qosbox qnm_gpu_qos = {
.offsets = { 0x31000, 0x71000 },
.config = &(struct qos_config) {
.prio = 0,
.urg_fwd = 1,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
@ -504,7 +504,7 @@ static struct qcom_icc_qosbox qnm_mnoc_sf_qos = {
.offsets = { 0x35000, 0x75000 },
.config = &(struct qos_config) {
.prio = 0,
.urg_fwd = 0,
.urg_fwd = 1,
.prio_fwd_disable = 0,
},
};
@ -526,7 +526,7 @@ static struct qcom_icc_qosbox qnm_nsp_gemnoc_qos = {
.offsets = { 0x37000, 0x77000 },
.config = &(struct qos_config) {
.prio = 0,
.urg_fwd = 1,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
@ -565,6 +565,28 @@ static struct qcom_icc_node qnm_pcie = {
.links = { SLAVE_GEM_NOC_CNOC, SLAVE_LLCC },
};
static struct qcom_icc_qosbox qnm_snoc_gc_qos = {
.regs = icc_qnoc_qos_regs[ICC_QNOC_QOSGEN_TYPE_RPMH],
.num_ports = 1,
.offsets = { 0xf9000 },
.config = &(struct qos_config) {
.prio = 0,
.urg_fwd = 1,
.prio_fwd_disable = 0,
},
};
static struct qcom_icc_node qnm_snoc_gc = {
.name = "qnm_snoc_gc",
.id = MASTER_SNOC_GC_MEM_NOC,
.channels = 1,
.buswidth = 8,
.noc_ops = &qcom_qnoc4_ops,
.qosbox = &qnm_snoc_gc_qos,
.num_links = 1,
.links = { SLAVE_LLCC },
};
static struct qcom_icc_qosbox qnm_snoc_sf_qos = {
.regs = icc_qnoc_qos_regs[ICC_QNOC_QOSGEN_TYPE_RPMH],
.num_ports = 1,
@ -646,9 +668,9 @@ static struct qcom_icc_qosbox qnm_camnoc_icp_qos = {
.num_ports = 1,
.offsets = { 0x2a000 },
.config = &(struct qos_config) {
.prio = 4,
.urg_fwd = 1,
.prio_fwd_disable = 0,
.prio = 5,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
@ -774,9 +796,9 @@ static struct qcom_icc_qosbox xm_pcie3_0_qos = {
.num_ports = 1,
.offsets = { 0xb000 },
.config = &(struct qos_config) {
.prio = 3,
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -796,9 +818,9 @@ static struct qcom_icc_qosbox xm_pcie3_1_qos = {
.num_ports = 1,
.offsets = { 0xc000 },
.config = &(struct qos_config) {
.prio = 3,
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 0,
.prio_fwd_disable = 1,
},
};
@ -833,6 +855,94 @@ static struct qcom_icc_node qnm_aggre2_noc = {
.links = { SLAVE_SNOC_GEM_NOC_SF },
};
static struct qcom_icc_qosbox qnm_apss_noc_qos = {
.regs = icc_qnoc_qos_regs[ICC_QNOC_QOSGEN_TYPE_RPMH],
.num_ports = 1,
.offsets = { 0x1c000 },
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
static struct qcom_icc_node qnm_apss_noc = {
.name = "qnm_apss_noc",
.id = MASTER_APSS_NOC,
.channels = 1,
.buswidth = 4,
.noc_ops = &qcom_qnoc4_ops,
.qosbox = &qnm_apss_noc_qos,
.num_links = 1,
.links = { SLAVE_SNOC_GEM_NOC_SF },
};
static struct qcom_icc_qosbox qnm_cnoc_data_qos = {
.regs = icc_qnoc_qos_regs[ICC_QNOC_QOSGEN_TYPE_RPMH],
.num_ports = 1,
.offsets = { 0x1d000 },
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
static struct qcom_icc_node qnm_cnoc_data = {
.name = "qnm_cnoc_data",
.id = MASTER_CNOC_SNOC,
.channels = 1,
.buswidth = 8,
.noc_ops = &qcom_qnoc4_ops,
.qosbox = &qnm_cnoc_data_qos,
.num_links = 1,
.links = { SLAVE_SNOC_GEM_NOC_SF },
};
static struct qcom_icc_qosbox qxm_pimem_qos = {
.regs = icc_qnoc_qos_regs[ICC_QNOC_QOSGEN_TYPE_RPMH],
.num_ports = 1,
.offsets = { 0x1e000 },
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
static struct qcom_icc_node qxm_pimem = {
.name = "qxm_pimem",
.id = MASTER_PIMEM,
.channels = 1,
.buswidth = 8,
.noc_ops = &qcom_qnoc4_ops,
.qosbox = &qxm_pimem_qos,
.num_links = 1,
.links = { SLAVE_SNOC_GEM_NOC_GC },
};
static struct qcom_icc_qosbox xm_gic_qos = {
.regs = icc_qnoc_qos_regs[ICC_QNOC_QOSGEN_TYPE_RPMH],
.num_ports = 1,
.offsets = { 0x1f000 },
.config = &(struct qos_config) {
.prio = 2,
.urg_fwd = 0,
.prio_fwd_disable = 1,
},
};
static struct qcom_icc_node xm_gic = {
.name = "xm_gic",
.id = MASTER_GIC,
.channels = 1,
.buswidth = 8,
.noc_ops = &qcom_qnoc4_ops,
.qosbox = &xm_gic_qos,
.num_links = 1,
.links = { SLAVE_SNOC_GEM_NOC_GC },
};
static struct qcom_icc_node qnm_mnoc_hf_disp = {
.name = "qnm_mnoc_hf_disp",
.id = MASTER_MNOC_HF_MEM_NOC_DISP,
@ -1490,6 +1600,16 @@ static struct qcom_icc_node srvc_pcie_aggre_noc = {
.num_links = 0,
};
static struct qcom_icc_node qns_gemnoc_gc = {
.name = "qns_gemnoc_gc",
.id = SLAVE_SNOC_GEM_NOC_GC,
.channels = 1,
.buswidth = 8,
.noc_ops = &qcom_qnoc4_ops,
.num_links = 1,
.links = { MASTER_SNOC_GC_MEM_NOC },
};
static struct qcom_icc_node qns_gemnoc_sf = {
.name = "qns_gemnoc_sf",
.id = SLAVE_SNOC_GEM_NOC_SF,
@ -1650,22 +1770,30 @@ static struct qcom_icc_bcm bcm_sh1 = {
.name = "SH1",
.voter_idx = VOTER_IDX_HLOS,
.enable_mask = 0x1,
.num_nodes = 13,
.num_nodes = 14,
.nodes = { &alm_gpu_tcu, &alm_sys_tcu,
&chm_apps, &qnm_gpu,
&qnm_mdsp, &qnm_mnoc_hf,
&qnm_mnoc_sf, &qnm_nsp_gemnoc,
&qnm_pcie, &qnm_snoc_sf,
&qxm_wlan_q6, &qns_gem_noc_cnoc,
&qns_pcie },
&qnm_pcie, &qnm_snoc_gc,
&qnm_snoc_sf, &qxm_wlan_q6,
&qns_gem_noc_cnoc, &qns_pcie },
};
static struct qcom_icc_bcm bcm_sn0 = {
.name = "SN0",
.voter_idx = VOTER_IDX_HLOS,
.keepalive = true,
.num_nodes = 2,
.nodes = { &qns_gemnoc_gc, &qns_gemnoc_sf },
};
static struct qcom_icc_bcm bcm_sn1 = {
.name = "SN1",
.voter_idx = VOTER_IDX_HLOS,
.enable_mask = 0x1,
.num_nodes = 1,
.nodes = { &qns_gemnoc_sf },
.nodes = { &qxm_pimem },
};
static struct qcom_icc_bcm bcm_sn2 = {
@ -1924,6 +2052,7 @@ static struct qcom_icc_node *gem_noc_nodes[] = {
[MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
[MASTER_COMPUTE_NOC] = &qnm_nsp_gemnoc,
[MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
[MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
[MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
[MASTER_WLAN_Q6] = &qxm_wlan_q6,
[SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
@ -2085,6 +2214,7 @@ static struct qcom_icc_desc volcano_pcie_anoc = {
static struct qcom_icc_bcm *system_noc_bcms[] = {
&bcm_sn0,
&bcm_sn1,
&bcm_sn2,
&bcm_sn3,
};
@ -2092,6 +2222,11 @@ static struct qcom_icc_bcm *system_noc_bcms[] = {
static struct qcom_icc_node *system_noc_nodes[] = {
[MASTER_A1NOC_SNOC] = &qnm_aggre1_noc,
[MASTER_A2NOC_SNOC] = &qnm_aggre2_noc,
[MASTER_APSS_NOC] = &qnm_apss_noc,
[MASTER_CNOC_SNOC] = &qnm_cnoc_data,
[MASTER_PIMEM] = &qxm_pimem,
[MASTER_GIC] = &xm_gic,
[SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
[SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
};

View File

@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_VOLCANO_H
@ -16,40 +16,45 @@
#define MASTER_QUP_1 7
#define MASTER_A1NOC_SNOC 8
#define MASTER_A2NOC_SNOC 9
#define MASTER_CAMNOC_HF 10
#define MASTER_CAMNOC_ICP 11
#define MASTER_CAMNOC_SF 12
#define MASTER_GEM_NOC_CNOC 13
#define MASTER_GEM_NOC_PCIE_SNOC 14
#define MASTER_GFX3D 15
#define MASTER_LPASS_GEM_NOC 16
#define MASTER_MDP 17
#define MASTER_MSS_PROC 18
#define MASTER_MNOC_HF_MEM_NOC 19
#define MASTER_MNOC_SF_MEM_NOC 20
#define MASTER_COMPUTE_NOC 21
#define MASTER_ANOC_PCIE_GEM_NOC 22
#define MASTER_SNOC_SF_MEM_NOC 23
#define MASTER_VIDEO 24
#define MASTER_CNOC_CFG 25
#define MASTER_CNOC_MNOC_HF_CFG 26
#define MASTER_PCIE_ANOC_CFG 27
#define MASTER_CNOC_MNOC_SF_CFG 28
#define MASTER_QUP_CORE_0 29
#define MASTER_QUP_CORE_1 30
#define MASTER_CRYPTO 31
#define MASTER_IPA 32
#define MASTER_LPASS_PROC 33
#define MASTER_CDSP_PROC 34
#define MASTER_WLAN_Q6 35
#define MASTER_PCIE_0 36
#define MASTER_PCIE_1 37
#define MASTER_QDSS_ETR 38
#define MASTER_QDSS_ETR_1 39
#define MASTER_SDCC_1 40
#define MASTER_SDCC_2 41
#define MASTER_UFS_MEM 42
#define MASTER_USB3_0 43
#define MASTER_APSS_NOC 10
#define MASTER_CAMNOC_HF 11
#define MASTER_CAMNOC_ICP 12
#define MASTER_CAMNOC_SF 13
#define MASTER_CNOC_SNOC 14
#define MASTER_GEM_NOC_CNOC 15
#define MASTER_GEM_NOC_PCIE_SNOC 16
#define MASTER_GFX3D 17
#define MASTER_LPASS_GEM_NOC 18
#define MASTER_MDP 19
#define MASTER_MSS_PROC 20
#define MASTER_MNOC_HF_MEM_NOC 21
#define MASTER_MNOC_SF_MEM_NOC 22
#define MASTER_COMPUTE_NOC 23
#define MASTER_ANOC_PCIE_GEM_NOC 24
#define MASTER_SNOC_GC_MEM_NOC 25
#define MASTER_SNOC_SF_MEM_NOC 26
#define MASTER_VIDEO 27
#define MASTER_CNOC_CFG 28
#define MASTER_CNOC_MNOC_HF_CFG 29
#define MASTER_PCIE_ANOC_CFG 30
#define MASTER_CNOC_MNOC_SF_CFG 31
#define MASTER_QUP_CORE_0 32
#define MASTER_QUP_CORE_1 33
#define MASTER_CRYPTO 34
#define MASTER_IPA 35
#define MASTER_LPASS_PROC 36
#define MASTER_CDSP_PROC 37
#define MASTER_PIMEM 38
#define MASTER_WLAN_Q6 39
#define MASTER_GIC 40
#define MASTER_PCIE_0 41
#define MASTER_PCIE_1 42
#define MASTER_QDSS_ETR 43
#define MASTER_QDSS_ETR_1 44
#define MASTER_SDCC_1 45
#define MASTER_SDCC_2 46
#define MASTER_UFS_MEM 47
#define MASTER_USB3_0 48
#define SLAVE_EBI1 512
#define SLAVE_AHB2PHY_SOUTH 513
#define SLAVE_AHB2PHY_NORTH 514
@ -89,35 +94,36 @@
#define SLAVE_A1NOC_SNOC 548
#define SLAVE_A2NOC_SNOC 549
#define SLAVE_GEM_NOC_CNOC 550
#define SLAVE_SNOC_GEM_NOC_SF 551
#define SLAVE_LLCC 552
#define SLAVE_LPASS_GEM_NOC 553
#define SLAVE_MNOC_HF_MEM_NOC 554
#define SLAVE_MNOC_SF_MEM_NOC 555
#define SLAVE_CDSP_MEM_NOC 556
#define SLAVE_MEM_NOC_PCIE_SNOC 557
#define SLAVE_ANOC_PCIE_GEM_NOC 558
#define SLAVE_APPSS 559
#define SLAVE_CNOC_CFG 560
#define SLAVE_DDRSS_CFG 561
#define SLAVE_CNOC_MNOC_HF_CFG 562
#define SLAVE_CNOC_MNOC_SF_CFG 563
#define SLAVE_NSP_QTB_CFG 564
#define SLAVE_PCIE_ANOC_CFG 565
#define SLAVE_WLAN_Q6_THROTTLE_CFG 566
#define SLAVE_QUP_CORE_0 567
#define SLAVE_QUP_CORE_1 568
#define SLAVE_IMEM 569
#define SLAVE_PIMEM 570
#define SLAVE_SERVICE_CNOC_CFG 571
#define SLAVE_SERVICE_CNOC 572
#define SLAVE_SERVICE_MNOC_HF 573
#define SLAVE_SERVICE_MNOC_SF 574
#define SLAVE_SERVICE_PCIE_ANOC 575
#define SLAVE_PCIE_0 576
#define SLAVE_PCIE_1 577
#define SLAVE_QDSS_STM 578
#define SLAVE_TCU 579
#define SLAVE_SNOC_GEM_NOC_GC 551
#define SLAVE_SNOC_GEM_NOC_SF 552
#define SLAVE_LLCC 553
#define SLAVE_LPASS_GEM_NOC 554
#define SLAVE_MNOC_HF_MEM_NOC 555
#define SLAVE_MNOC_SF_MEM_NOC 556
#define SLAVE_CDSP_MEM_NOC 557
#define SLAVE_MEM_NOC_PCIE_SNOC 558
#define SLAVE_ANOC_PCIE_GEM_NOC 559
#define SLAVE_APPSS 560
#define SLAVE_CNOC_CFG 561
#define SLAVE_DDRSS_CFG 562
#define SLAVE_CNOC_MNOC_HF_CFG 563
#define SLAVE_CNOC_MNOC_SF_CFG 564
#define SLAVE_NSP_QTB_CFG 565
#define SLAVE_PCIE_ANOC_CFG 566
#define SLAVE_WLAN_Q6_THROTTLE_CFG 567
#define SLAVE_QUP_CORE_0 568
#define SLAVE_QUP_CORE_1 569
#define SLAVE_IMEM 570
#define SLAVE_PIMEM 571
#define SLAVE_SERVICE_CNOC_CFG 572
#define SLAVE_SERVICE_CNOC 573
#define SLAVE_SERVICE_MNOC_HF 574
#define SLAVE_SERVICE_MNOC_SF 575
#define SLAVE_SERVICE_PCIE_ANOC 576
#define SLAVE_PCIE_0 577
#define SLAVE_PCIE_1 578
#define SLAVE_QDSS_STM 579
#define SLAVE_TCU 580
#define MASTER_LLCC_DISP 1000
#define MASTER_MDP_DISP 1001
#define MASTER_MNOC_HF_MEM_NOC_DISP 1002