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.

[参考译文] TMDS243EVM:互连防火墙使用和异常处理

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1242372/tmds243evm-interconnect-firewall-usage-and-exception-handling

器件型号:TMDS243EVM

您好、TI 团队:

我目前正在尝试在我们的项目中实现和使用互连防火墙。 在开发过程中出现了几个问题、我想向您提出这些问题。
我们需要使用防火墙作为针对 MPU 的附加安全措施、用于将内核彼此分离。
我对防火墙故障的异常处理特别感兴趣。

使用中的 SDK 版本08.06.43

此帖子中提及的文档:
[A]技术参考手册 AM64x/AM243x、文献编号 SPRUIM2F
[b] TISCI 08.06.04 software-dl.ti.com/.../index.html
[c] AM243x MCU+ SDK 08.06.00用户指南 dev.ti.com/.../node


为了进行测试,我已经在运行 FreeRTOS 的 main()中从 R5F_0_0配置了用于 DDR16SS0 (防火墙 ID 1)的防火墙。
我配置了7个区域、这些区域与特定内核和用途相关联(最多2个内核的专用共享内存)、以及1个后台区域、该区域跨越整个2GB 的 DDR 空间。
当进入初始 FreeRTOS 任务时、我通过从防火墙存储器中读取来引发故障。

1.防火墙配置
[C]建议使用中的防火墙驱动程序 。 检查实现驱动程序通过直接写入寄存器来配置防火墙区域。
如[B]-FirewallFAQ 所述、不属于 DMSC 的防火墙仅可通过 TISCI 接口编程、并且"防火墙配置寄存器仅可由系统固件写入"。
弟子:这些事实不是互相矛盾的吗? 对防火墙进行编程的首选方式是什么?

2.防火墙异常寄存器
[a]中的第3.3.2.1章提到多个寄存器中的多个位:
- CBASH_EXCEPTION_LOCKEG_CONTROL[0]:DISABLE_F
- cbass_exception_logging_control[1] disable_pend
- cbass_exception_pend_set[0] pend_set
- cbass_exception_pend_clear[0] pend_CLR
我在3.4系统互连寄存器下的子章中找不到任何引用、并且在[A]中从未再次提到确切的命名。
问题:在哪里可以找到这些寄存器? 它们是否受 DMSC 控制?

3. CBASS 寄存器与 CBASS_FW 寄存器
第3.4章文档[A]中的"系统互连寄存器"包含被称为 CBASS 寄存器和 CBASS_FW 寄存器的子章。
从0x3A000000读取 CBASS0_pid 寄存器时、返回合理的值。 读取 CBASH_FW0_pid 时、返回0
问题:防火墙功能描述指的是这些寄存器集合中的哪一个? 应使用哪一个进行错误处理?
问题:通过从防火墙存储器中读取来引发防火墙异常时、从数据中止处理程序读取时、CBASS_EXCEPTION_LOGING 寄存器都保持0x0。 如何检索例外信息?

4. cbass_exception_logging_DATA0
在[a]中对该寄存器的描述是"传入事务的低32个地址位(31:0)"
问:这里到底是什么意思是"传入交易"? 在数据中止模式下、此字段与 DFAR 值是否相关?

5. CBASS0_EXCEPTION_LOGGING 寄存器包含在进入 main ()的断点停止时的数据
在对 TMDS243EVM 进行下电上电并在 R5F_0_0上运行调试会话之后,在进入 main()时停止执行~20秒。
我可能从存储器浏览器中观察到从0x3A000000开始的异常日志记录寄存器会使用看似合理的数据进行更新。
例如、CBASS_EXCEPULL_LOGGING_DATA0包含0x39FFFFAC -可在存储器浏览器中同时观察到的一个地址。
问题:鉴于我正在查找正确的寄存器、什么可能导致出现此异常?

您好

西蒙

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

    当然我的意思是08.06.00.43

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

    尊敬的 

    Unknown 说:
    问题:这些事实是否相互矛盾? 防火墙的首选编程方式是什么?

    如果您选中  Bootloader_socOpenFirewall  该函数用于配置防火墙、它通过 SciClient 实现。 对于 GP 器件、直接写入寄存器可能已经成功、但对于 HS 器件、用户必须仅使用 SciClient。

    关于其他问题、明天我再来回答。

    此致、
    Aakash

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

    不幸的是这个句子混淆了我更多。  

    对于 GP 器件,直接写入寄存器可能已经奏效,但对于 HS 器件,用户必须仅使用 SciClient。

    SDK 中有一个专用的防火墙驱动程序。 firewall_open ()专门检查 SOC_isHsDevice (),并且仅在 HS 设备的情况下,将区域配置直接写入寄存器。

    如果不应使用该驱动程序、为什么它存在?
    我可以使用此驱动程序清晰地对防火墙进行编程。 为什么必须使用 SciClient?

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

    您好、Simon、

    我在内部讨论并确认了这一点。

    防火墙应仅由安全核心配置。 默认情况下、安全内核为 DMSC 内核、即 Cortex M3。 因此、防火墙的配置是通过 SciClient 完成的。

    如果您选中  Bootloader_socCpuResetReleaseSelf、 您将会发现安全切换被称为。 这意味着器件已经确保 R5F0_0现在是安全内核。 由于 R5F 现在是安全内核、也可以通过直接写入寄存器由 R5F0_0完成防火墙配置。

    希望这对您有所帮助。

    此致、
    Aakash

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

    您好、Simon、

    您是否可以访问 https://software-dl.ti.com/secure/software/sitara-sec/AM243X-RESTRICTED-SECURITY/HW_docs/spruim0b.pdf?__gda__=1688127307_6abf42e9da459c475ae4885642b1a141 ?

    此 K3器件的安全硬件附录、即 AM243x。

    此处提供了有关 CBASS 的更多信息。

    我也可以在技术参考手册中找到 CBASS 寄存器的信息——

    参考:SPRUIM2C - 2020年5月- 2021年9月修订

    此致、
    Aakash

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

    早上好、Aakash、

    谢谢你,是的,这在这个问题上帮助了我!

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

    我的问题不是"我没有找到寄存器的一般记录位置"。 在我的初始帖子中,我特别提到了一些根本没有在第3.4章中出现的寄存器(我在初始帖子中也提到了这些寄存器)。
    CBASS_EXCEPULT_LOCKING_CONTROL、  CBASS_EXCEPULT_SET、 CBASS_EXCEPULT_PULLD_CLEAR:它们在哪里? 现在用不同的首字母缩略词来指代它们吗?

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

    您好、Simon、

    对于不一致性的道歉、 应为 CBASS0_EXCEPTION_LOCKEG_CONTROL 、CBASS0_EXCEPULT_PLD_SET、 CBASS0_EXCEPULT_CLEAR。 将在内部确认其案例并相应地更新 TRM、或者在此处相应地进行更新。

    此致、Shiv

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

    您好、Shiv!
    用于说明:这些寄存器

    请参阅以下哪一项:  
    CBASS _异常_日志记录_控制
    CBASS_EXCEPULT_SET
    CBASH_EXCEPULT_PULLD_CLEAR

    此外、我还想问一下我的帖子中最初的问题3)到5)。 请在此处向我提供一些信息。

    谢谢您的到来!

    西蒙

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

    您好、Simon、  

    很抱歉在此延迟、因为我仍在尝试获得内部团队的澄清。 将最早在此处更新。

    此致、Shiv

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

    您好、Simon、

    下面是收到的有关查询中缺少寄存器的信息:

    Unknown 说:
    - CBASH_exception_logging_control[0]:disable_F
    - cbass_exception_logging_control[1] disable_pend

    异常日志记录控制(异常日志记录控制寄存器)。

    异常记录控制寄存器控制异常记录。

    名称

    类型

    复位

    说明

    31:2

    保留

    R

    0x0

    保留

    1

    disable_intr

    RW

    0x0

    设置时禁用记录中断。 这不会禁用日志记录、因此如果清除、还应清除当前日志、以保证下一个日志生成中断。

    0

    禁用_f

    RW

    0x0

    设置时禁用日志记录。 这也将禁用中断。

    Unknown 说:
    CBASH_except_pend_pend_set

    EXCEPUT_SET (异常记录中断挂起设置寄存器)。

    异常记录中断挂起设置寄存器允许设置挂起信号。

    名称

    类型

    复位

    说明

    31:1

    保留

    R

    0x0

    保留

    0

    挂起_集

    RW1ts

    0x0

    写入1来设置异常挂起信号。

    Unknown 说:
    CBASH_except_pend_pend_clear[0] pend_CLR

    EXCEPUT_CLEAR (异常记录中断挂起清除寄存器)。

    异常记录中断挂起清除寄存器允许清除 PEND 信号。

    名称

    类型

    复位

    说明

    31:1

    保留

    R

    0x0

    保留

    0

    挂起_CLR

    rw1tc

    0x0

    写入1来清除异常挂起信号。

    此致、

    拉尔夫·雅各比

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

    您好!

    我将根据内部团队提供的其他信息、再添加几个答案。

    3. CBASS 寄存器与 CBASS_FW 寄存器
    第3.4章文档[A]中的"系统互连寄存器"包含被称为 CBASS 寄存器和 CBASS_FW 寄存器的子章。
    从0x3A000000读取 CBASS0_pid 寄存器时、返回合理的值。 读取 CBASH_FW0_pid 时、返回0
    问题:防火墙功能描述指的是这些寄存器集合中的哪一个? 应使用哪一个进行错误处理?

    • 请参阅  下面的链接中的_err_intr


    问题:通过从防火墙存储器中读取来引发防火墙异常时、从数据中止处理程序读取时、CBASS_EXCEPTION_LOGING 寄存器都保持0x0。 如何检索例外信息?

    • 请参阅 下面链接中的 Default_exp

    4. cbass_exception_logging_DATA0
    在[a]中对该寄存器的描述是"传入事务的低32个地址位(31:0)"
    问:这里到底是什么意思是"传入交易"? 在数据中止模式下、此字段与 DFAR 值是否相关?

    • 此处的传入事务是指违反防火墙保护的事务。

    5. CBASS0_EXCEPTION_LOGGING 寄存器包含在进入 main ()的断点停止时的数据
    在对 TMDS243EVM 进行下电上电并在 R5F_0_0上运行调试会话之后,在进入 main()时停止执行~20秒。
    我可能从存储器浏览器中观察到从0x3A000000开始的异常日志记录寄存器会使用看似合理的数据进行更新。
    例如、CBASS_EXCEPULL_LOGGING_DATA0包含0x39FFFFAC -可在存储器浏览器中同时观察到的一个地址。
    问题:鉴于我正在查找正确的寄存器、什么可能导致出现此异常?

    • 违反防火墙的交易详情和交易来源可在 以下链接的表1中找到

    /cfs-file/__key/communityserver-discussions-components-files/908/Interrupt-Condition-for-Interconnect.pdf

    谢谢。

    安妮塔