工具与软件:
尊敬的 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