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