This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4AL-Q1:[PSDK RTOS 10.01]在 SBL/SPL 中通过 CBASS QoS 提高 MCU R5F DDR 访问优先级(请求最小补丁)

Guru**** 2564565 points
Other Parts Discussed in Thread: TDA4VL-Q1, PROCESSOR-SDK-J721S2, TDA4VM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1560858/tda4al-q1-psdk-rtos-10-01-raise-mcu-r5f-ddr-access-priority-via-cbass-qos-in-sbl-spl-request-minimal-patch

器件型号:TDA4AL-Q1
Thread 中讨论的其他器件:PROCESSOR-SDK-J721S2、TDA4VL-Q1、 TDA4VM

工具/软件:

你(们)好

               我们的 PROCESSOR-SDK-J721S2 版本为  pdk_j721s2_10_01_00_25

 .症状:

   在 主域 (A72/C7x/R5F) 上的大型摄像头/感知负载条件下、MCU_R5F (MCU1_0) 显示抖动和更高的 CPU 负载。

 .我们尝试过的:

   将确定性代码/数据移动到 MSMC/OCMC/TCM→ 、但我们所有的 MCU 代码太大、一些 MCU 代码 在 DDR 中仍然需要。

 μ.申请:

   请提供补丁以 在 pdk_j721s2_10_01_00_25 上提高 MCU R5F DDR 访问优先级。

 

注意:我们了解 QoS 可以提高优先级、但不能保证带宽;目标是在  主域上加载大量摄像头/感知负载时尽可能减少抖动

 

B.R.

Sanhsin Kuo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sanhsin Kuo:

    您能否分享  此数据流正在使用的高级数据流和 DDR BW? 这将有助于我们进一步调试它。

    此致、

    Brijesh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Brijesh Jadav  

        我们 遇到的 问题与   TDA4VL-Q1 中描述的问题类似:MCU DDR 访问优先级 。

    该问题与 MCU R5F DDR 访问优先级相关、但我们使用了不同的 PDK 版本 pdk_j721s2_10_01_00_25。 为 TDA4VL-Q1 问题提供的补丁与我们的版本不兼容。

       

    您能否  根据 pdk_j721s2_10_01_00_25 提高 MCU R5F DDR 访问优先级?

    概要数据流如下图所示。

    非常感谢。

    SanHsin

    CC: Lance Shen , Gibbs Shih 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 SanHsin:

    但是、您能否 在 SBL 中复制相同的 API 即 setup_mcu_r5f_qos、重新编译 SBL 并查看是否会有所帮助?  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Brijesh Jadav :

      >>但您能否 在 SBL 中复制相同的 API、即 setup_mcu_r5f_qos、重新编译 SBL 并查看其是否有所帮助?  

    您能否提供具体的指导、说明如何配置 QoS 以提高 MCU R5F 的 DDR 访问优先级?

    我们不清楚所需的步骤、非常感谢您的帮助

    谢谢

    SanHsin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 SanHsin:

    我在这里建议参考 TRM 来 了解 QoS 参数。  

    此致、

    Brijesh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hi Gibbs Shih , Brijesh Jadav CC: Lance Shen 

      我们需要您的技术支持和经验、以加快我们的关键 MCU 负载问题。

    根据补丁、 从 TDA4VL-Q1 提高了 MCU R5F 的 DDR 访问优先级:MCU DDR 访问优先级

      以下补丁无法 应用到  pdk_j721s2_10_01_00_25 中。 也无法找到  以下补丁 u-boot、PDK 源文件中提到的 API setup_mcu_r5f_QoS Brijesh Jadav。

    0001-added-qos-support-for-dss-on-J721S2.patch
    5305.0001-added-qos-parameters-settings.patch
    qos_for_mcu3_mcu1.patch。

        补丁 0001-added-qos-support-for-dss-on-J721S2.patch 中没有提到的 API setup_mcu_r5f_qos Brijesh Jadav   
    第 285 章:我是不是也不知道我是谁?
    292:+void setup_vpac_qos (void)
    321:+void setup_dmpac_qos (void)
    332:+void setup_dss_QoS (void)
    365:+void setup_GPU_QoS (void)
    432:+void setup_encoder_qos (void)
    461:+void setup_Decoder_QoS (void)

    您能给我们提供帮助 、帮助我们 在 SBL 中找到 API setup_mcu_r5f_QoS 吗?  或者 提供 补丁以 根据 pdk_j721s2_10_01_00 提高 MCU R5F DDR 访问优先级?

    非常感谢。

    SanHsin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Brijesh

    感谢您的答复  

    我试着研究这个补丁。

    /cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_Added_2D00_QOS_2D00_support_2D00_for_2D00_DSS_2D00_on_2D00_J721S2.patch

    +#define QOS_R5FSS0_CORE0_MEM_RD                     0x45d84000
    +#define QOS_R5FSS0_CORE0_MEM_RD_NUM_J_CH            3
    +#define QOS_R5FSS0_CORE0_MEM_RD_NUM_I_CH            1
    +#define QOS_R5FSS0_CORE0_MEM_RD_CBASS_GRP_MAP1(j)   (QOS_R5FSS0_CORE0_MEM_RD + 0x0 + (j) * 8)
    +#define QOS_R5FSS0_CORE0_MEM_RD_CBASS_GRP_MAP2(j)   (QOS_R5FSS0_CORE0_MEM_RD + 0x4 + (j) * 8)
    +#define QOS_R5FSS0_CORE0_MEM_RD_CBASS_MAP(i)        (QOS_R5FSS0_CORE0_MEM_RD + 0x100 + (i) * 4)

    例如、

    我想知道 TRM 中 QoS_R5FSS0_CORE0_MEM_RD 的寄存器名称(地址)在哪里?

    因为我尝试在补丁代码和 TRM (spruj28f) 之间重新映射此定义、但找不到正确的上下文

    我们 尝试为 QoS_MCUSS_R5 修改此补丁。

    谢谢你。

    Gibbs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Gibbs、

     根据以下宏、这些寄存器在偏移 0x45D84000 处提供。  即使是 J721S2、它也应该保持不变。  

    +#define QoS_R5FSS0_CORE0_MEM_RD 0x45d84000
    +#define QoS_R5FSS0_CORE0_MEM_RD_NUM_J_CH 3
    +#define QoS_R5FSS0_CORE0_MEM_RD_NUM_I_CH 1
    +#define QoS_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map1 (j)(QoS_R5FSS0_CORE0_MEM_RD + 0x0 +(j)* 8)
    +#define QoS_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map2 (j)(QoS_R5FSS0_CORE0_MEM_RD + 0x4 +(j)* 8)
    +#define QoS_R5FSS0_CORE0_MEM_RD_CBASS_MAP (I)(QoS_R5FSS0_CORE0_MEM_RD + 0x100 +(I)* 4)

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于 MCU R5F、可从获取这些库  

    #define QoS_MCU_R5FSS0_CORE0_MEM_RD 0x45d10000
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_NUM_J_CH 1
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_NUM_I_CH 1
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map1 (j)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x0 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map2 (j)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x4 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_MAP (i)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x100 +(i)* 4)

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Brijesh

    感谢您的答复。

    我认为补丁代码应该如下所示、您能帮助我再次检查它是否有“红色标记“?

    非常感谢

    Gibbs

    #define QoS_MCU_R5FSS0_CORE0_MEM_RD 0x45d10000
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_NUM_J_CH 1
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_NUM_I_CH 1
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map1 (j)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x0 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map2 (j)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x4 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_MAP (i)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x100 +(i)* 4)

    #define QoS_MCU_R5FSS0_CORE1_MEM_RD 0x45d11000
    #define QoS_MCU_R5FSS0_CORE1_MEM_RD_NUM_J_CH 1
    #define QoS_MCU_R5FSS0_CORE1_MEM_RD_NUM_I_CH 1
    #define QoS_MCU_R5FSS0_CORE1_MEM_RD_CBASS_GRP_Map1 (j)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x0 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE1_MEM_RD_CBASS_GRP_Map2 (j)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x4 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE1_MEM_RD_CBASS_MAP (I)(QoS_MCU_R5FSS0_CORE0_MEM_RD + 0x100 +(I)* 4)

    #define QoS_MCU_R5FSS0_CORE0_MEM_WR 0x45d10400
    #define QoS_MCU_R5FSS0_CORE0_MEM_WR_NUM_J_CH 1
    #define QoS_MCU_R5FSS0_CORE0_MEM_WR_NUM_I_CH 1
    #define QoS_MCU_R5FSS0_CORE0_MEM_WR_CBASS_GRP_Map1 (j)(QoS_MCU_R5FSS0_CORE0_MEM_WR + 0x0 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE0_MEM_WR_CBASS_GRP_Map2 (j)(QoS_MCU_R5FSS0_CORE0_MEM_WR + 0x4 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE0_MEM_WR_CBASS_MAP (i)(QoS_MCU_R5FSS0_CORE0_MEM_WR + 0x100 +(i)* 4)

    #define QoS_MCU_R5FSS0_CORE1_MEM_WR 0x45d11400
    #define QoS_MCU_R5FSS0_CORE1_MEM_WR_NUM_J_CH 1
    #define QoS_MCU_R5FSS0_CORE1_MEM_WR_NUM_I_CH 1
    #define QOS_MCU_R5FSS0_CORE1_MEM_WR_CBASS_GRP_Map1 (j)(QOS_MCU_R5FSS0_CORE0_MEM_WR + 0x0 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE1_MEM_WR_CBASS_GRP_Map2 (j)(QoS_MCU_R5FSS0_CORE0_MEM_WR + 0x4 +(j)* 8)
    #define QoS_MCU_R5FSS0_CORE1_MEM_WR_CBASS_MAP (I)(QoS_MCU_R5FSS0_CORE1_MEM_WR + 0x100 +(I)* 4)


    +#define QoS_MCU_R5FSS0_CORE0_MEM_RD_ATYPE (0U)
    +#define QoS_MCU_R5FSS0_CORE0_MEM_WR_ATYPE (0U)
    +#define QoS_MCU_R5FSS0_CORE1_MEM_RD_ATYPE (0U)
    +#define QoS_MCU_R5FSS0_CORE1_MEM_WR_ATYPE (0U)

    void setup_mcu_r5f_QoS (void)

    unsigned int 通道、组;

    /* R5FSS0 core0 — 读取*/
    适用于 (GROUP = 0;GROUP < QoS_MCU_R5FSS0_CORE0_MEM_RD_NUM_J_CH;++GROUP)

    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map1 (group)、0x76543210);
    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_GRP_Map2 (group)、0xfedcba98);
    }

    对于(通道= 0;通道< QoS_MCU_R5FSS0_CORE0_MEM_RD_NUM_I_CH;++channel)

    CSL_REG32_WR (((uintptr_t) QoS_MCU_R5FSS0_CORE0_MEM_RD_CBASS_MAP(通道)、(QoS_MCU_R5FSS0_CORE0_MEM_RD_ATYPE << 28)|(QoS_MCU_R5FSS0_CORE0_MEM_RD_PRIORITY << 12)| QoS_ROS_MCU_RERD_ID< SS0_SS0_CM0_CORE4)|(QOS0_CORE0_CORE4)
    }

    /* R5FSS0 core0 — 写入*/
    适用于 (GROUP = 0;GROUP < QoS_MCU_R5FSS0_CORE0_MEM_WR_NUM_J_CH;++GROUP)

    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE0_MEM_WR_CBASS_GRP_Map1 (group)、0x76543210);
    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE0_MEM_WR_CBASS_GRP_Map2 (group)、0xfedcba98);
    }

    对于(通道= 0;通道< QoS_MCU_R5FSS0_CORE0_MEM_WR_NUM_I_CH;++channel)

    CSL_REG32_WR (((uintptr_t) QoS_MCU_R5FSS0_CORE0_MEM_WR_CBASS_MAP(通道)、(QoS_MCU_R5FSS0_CORE0_MEM_ATYPE << 28)|(QoS_MCU_R5FSS0_CORE0_MEM_PRIOR_<< 12)| QoS_MCU_R5FRS0_WR_ORDER 0 |(QoS_ROS_ROS_ROST_MC_ENTIFID_< 12)
    }


    /* R5FSS0 core1 — 读取*/
    针对 (GROUP = 0;GROUP < QoS_MCU_R5FSS0_CORE1_MEM_RD_NUM_J_CH;++GROUP)

    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE1_MEM_RD_CBASS_GRP_Map1 (group)、0x76543210);
    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE1_MEM_RD_CBASS_GRP_Map2 (group)、0xfedcba98);
    }

    对于(通道= 0;通道< QoS_R5FSS0_CORE1_MEM_RD_NUM_I_CH;++channel)

    CSL_REG32_WR (((uintptr_t) QoS_MCU_R5FSS0_CORE1_MEM_RD_CBASS_MAP(通道)、(QoS_MCU_R5FSS0_CORE1_MEM_RD_ATYPE << 28)|(QoS_MCU_R5FSS0_CORE1_MEM_RD_PRIORITY << 12)|(QoS_MCU_R5FSS0_RED_ORDER << MCU_ORDER 0;QoS_QoS_QoS_ROST_MC_QoS_ROST_MC0_0)
    }

    /* R5FSS0 core1 — 写入*/
    针对 (GROUP = 0;GROUP < QoS_R5FSS0_CORE1_MEM_WR_NUM_J_CH;++GROUP)

    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE1_MEM_WR_CBASS_GRP_Map1 (group)、0x76543210);
    CSL_REG32_WR ((uintptr_t) QoS_MCU_R5FSS0_CORE1_MEM_WR_CBASS_GRP_Map2 (group)、0xfedcba98);
    }

    对于(通道= 0;通道< QoS_R5FSS0_CORE1_MEM_WR_NUM_I_CH;++channel)

    CSL_REG32_WR (((uintptr_t) QoS_MCU_R5FSS0_CORE1_MEM_WR_CBASS_MAP (channel)、(QoS_MCU_R5FSS0_CORE1_MEM_WR_ATYPE << 28)|(MEM_MCU_R5FSS0_CORE1_MEM_WR_PRIORITY << 12)|(Qos_MCU_R5FSS0_ORDER < MCU_QoS_1)
    }
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Gibbs、

    查看寄存器规格后、结果看起来是正确的。  

    关于 AType 值、该值是 可配置的、因此客户可为其用例选择合适的值。  

    此致、

    Brijesh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brijesh

    我试图找到定义 ATType 值是什么意思。

    我认为 AType 值应该是 0~3.( 0 =物理。 1 =中间。 2 =虚拟。 具有一致性的 3 =物理。)

    您能给我们讲一讲每种结构的不同之处吗?

    谢谢你。

    Gibbs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Gibbs、  

    您能否参阅此字段的 TDA4VM TRM? 其中包含此字段的一些文档。  

    此致、

    Brijesh