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.

[参考译文] TDA4VM:与 ti_sci 防火墙配置不一致

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1449673/tda4vm-inconsistency-with-ti_sci-firewall-configuration

器件型号:TDA4VM

工具与软件:

尊敬的 TI 团队:

我尝试了解 TDA4上的防火墙的工作原理、并尝试根据 TISCI 文档配置 PCIe2_HP 从机模块防火墙。

但是、在我的实验中、在写入配置并再次读取配置后发生了一些不一致:

这是我的测试代码:

    uint16_t fwID = 2532;
    uint16_t fwRegion = 0;
    uint32_t fwDisableAll = 0xFFFF;

    // Enable firewall for PCIE2_DAT0
    {
        tisci_msg_fwl_set_firewall_region_req reqSetFwlCtrl;
        memset(&reqSetFwlCtrl, 0, sizeof(tisci_msg_fwl_set_firewall_region_req));
        reqSetFwlCtrl.fwl_id = fwID;
        reqSetFwlCtrl.region = fwRegion;
        reqSetFwlCtrl.start_address = 0x4400000000;
        reqSetFwlCtrl.end_address = 0x4407ffffff;
        reqSetFwlCtrl.control = 0xA;
        reqSetFwlCtrl.n_permission_regs = 3;
        reqSetFwlCtrl.permissions[0] = fwDisableAll;
        reqSetFwlCtrl.permissions[1] = fwDisableAll;
        reqSetFwlCtrl.permissions[2] = fwDisableAll;

        tisci_msg_fwl_set_firewall_region_resp respSetFwlCtrl;
        memset(&respSetFwlCtrl, 0, sizeof(respSetFwlCtrl));

        int32_t retVal = CSL_PASS;
        retVal = Sciclient_firewallSetRegion(&reqSetFwlCtrl, &respSetFwlCtrl, SCICLIENT_SERVICE_WAIT_FOREVER);
        if (retVal != CSL_PASS)
        {
            logger.Log("Firewall region # %d of region ID %d getInfo...FAILED \n", reqSetFwlCtrl.fwl_id, reqSetFwlCtrl.region);
        }
        else
        {
            logger.Log("Firewall # %d reg idx %d has been configured\n",
                       reqSetFwlCtrl.fwl_id,
                       reqSetFwlCtrl.region);
        }

    }

    for (int i = 0; i < 24; i++)
    {
        tisci_msg_fwl_get_firewall_region_req reqGetFwlCtrl;
        memset(&reqGetFwlCtrl, 0, sizeof(tisci_msg_fwl_get_firewall_region_req));
        reqGetFwlCtrl.fwl_id = fwID;
        reqGetFwlCtrl.region = fwRegion + i;

        tisci_msg_fwl_get_firewall_region_resp respGetFwlCtrl;
        memset(&respGetFwlCtrl, 0, sizeof(respGetFwlCtrl));

        int32_t retVal = CSL_PASS;
        retVal = Sciclient_firewallGetRegion(&reqGetFwlCtrl, &respGetFwlCtrl, SCICLIENT_SERVICE_WAIT_FOREVER);
        if (retVal != CSL_PASS)
        {
            logger.Log("Firewall region # %d of region ID %d getInfo...FAILED \n", reqGetFwlCtrl.fwl_id, reqGetFwlCtrl.region);
        }
        else
        {
            logger.Log("Firewall # %d reg idx %d control 0x%lx start 0x%llx end 0x%llx\n",
                       reqGetFwlCtrl.fwl_id,
                       reqGetFwlCtrl.region,
                       respGetFwlCtrl.control,
                       respGetFwlCtrl.start_address,
                       respGetFwlCtrl.end_address);

        }
    }

计算输出:

][MCU2_0][DEBUG][Firewall # 2532 reg idx 0 has been configured
][MCU2_0][DEBUG][Firewall # 2532 reg idx 0 control 0xa start 0x4404400000000 end 0x4404407ffffff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 1 control 0x0 start 0x4404200000000 end 0x44042ffffffff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 2 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 3 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 4 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 5 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 6 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 7 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 8 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 9 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 10 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 11 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 12 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 13 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 14 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 15 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 16 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 17 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 18 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 19 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 20 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 21 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 22 control 0x0 start 0x4400000000000 end 0x4400000000fff
][MCU2_0][DEBUG][Firewall # 2532 reg idx 23 control 0x0 start 0x4400000000000 end 0x4400000000fff

我想知道为什么 Sciclient_firewallGetRegion 读起始地址" 0x4404400000000 "、在我通过 Sciclient_firewallSetRegion 将起始地址设置为" 0x4400000000 "。


我向 CCS Memory Browser 检查了实际值 之后  SciClient_firewallSetRegion。 内容根据我给 firewallSetRegion 函数的配置进行显示。

我在这里做什么错了吗? Sciclient 软件是否有错误?

我们使用的是 RTOS PSDK_v09_01_00_06

此致、
Thomas

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

    您好!

    分配给该主题帖的专家在12月15日之前不在办公室、因此请预计会延迟回复。

    谢谢。

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

    您好、汤姆斯:

      TIFS 中存在一个错误、它已在10.0 SDK 中修复、您可以使用10.0 SDK 进行测试吗?

    此致
    Diwakar

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

    尊敬的 Diwakar:

    很抱歉、我无法立即将我们的环境升级到10 SDK。 您能否详细介绍一下 TIFS 中的错误及其副作用?

    谢谢、此致、

    Thomas

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

    您好、Thomas  

    您能给我更多有关 TIFS 中的错误及其副作用的信息吗?

    root原因 是、读取操作正在执行安全代理消息的或操作、而不显式初始化它、因此正在移动出现在响应结构中相应位置的任何字节。

    因此、您在 使用 TISCI_MSG_GET_FWL_REGION API 读取配置时可能会收到虚假值。

    此致
    Diwakar