当前位置: 首页 > news >正文

TC3xx芯片的UCB介绍

文章目录

  • 前言
  • 一、UCB的定义及其功能简介
  • 二、UCB_BMHDx_ORIG and UCB_BMHDx_COPY (x = 0 - 3)
    • 2.1 BMHD(Boot Mode Head)
  • 三、UCB_SSW
  • 四、UCB_PFLASH_ORIG and UCB_PFLASH_COPY
    • 4.1 Password
    • 4.2 UCB Confirmation


前言

缩写全称
UCBUser Configuration Block
BMHDBoot Mode Headers

通过UDE界面找到UCBs
ude
UCB_DBG
如果要解除保护,则可以点击”Erase configuration ” (仅支持在 Unlocked 状态下擦除)


一、UCB的定义及其功能简介

UCB是User Configuration Block的简称,用于描述用户配置信息,非数据存储区域。
TC3xx芯片提供了一块23 KB的Flash存储空间用作UCB配置。每个UCB大小为512 Byte,总共有46个UCB配置项,UCB的起始地址为0xAF400000,结束地址为0xAF405FFF。
UCB
下面的概览表显示了所有定义的ucb的列表:
list1
list2
TC3xx芯片在启动时会运行固化在芯片内部的名为SSW的软件,SSW软件在运行时可以读取用户的配置信息来进行特定化的启动操作,比如SSW运行完后跳转到客户应用程序的起始地址,RAM是否需要进行初始化及冷启动还是热启动后初始化等,是否需要进行LBIST操作等。而这些可以让用户自定义的配置就是UCB的配置内容。
也就是说,用户可以通过配置UCB来影响SSW程序的执行(比如跳转的APP的起始地址),及完成芯片的特殊配置(比如使能HSM等)。

二、UCB_BMHDx_ORIG and UCB_BMHDx_COPY (x = 0 - 3)

四个UCB_BMHDx_ORIG(UCB00, UCB01, UCB02, UCB03)和UCB_BMHDx_COPY(UCB08, UCB09, UCB10, UCB11)被客户用来配置启动模式头(BMHD)。这些由SSW进行评估(SSW程序在启动时会读取UCB_BMHDx_ORIN和UCB_BMHDx_COPY配置信息进行评估,然后执行对应的操作)。
在下文中,仅展示了UCB00和UCB01的详细偏移量表。UCB00作为带有密码的UCB_BMHD的示例(也是UCB08),而UCB01作为不带密码的UCB_BMHD的示例(也是UCB02, UCB03, UCB09, UCB10, UCB11)进行展示。其他UCB的内容相同,只是基于不同的偏移地址。
217

2.1 BMHD(Boot Mode Head)

Boot Mode Header 是固化在代码中的启动信息。包含了启动地址, 具体的信息有以下部分组成

unsigned short bmi;             /**< \brief 0x000: Boot Mode Index (BMI)*/
unsigned short bmhdid;          /**< \brief 0x002: Boot Mode Header ID (CODE) = B359H*/
unsigned int   stad;            /**< \brief 0x004: User Code start address*/
unsigned int   crc;             /**< \brief 0x008: Check Result for the BMI Header (offset 000H - 007H)*/
unsigned int   crcInv;          /**< \brief 0x00C: Inverted Check Result for the BMI Header (offset 000H - 007H)*/
unsigned int   reserved0[60];   /**< \brief 0x010: Reserved area (60 words) till the offset 0x100*/
unsigned int   pw[8];           /**< \brief 0x100: Password protection (8 words) till the offset 0x120 */
unsigned int   reserved1[52];   /**< \brief 0x120: Reserved area (52 words) till the offset 0x1F0*/
unsigned int   confirmation;    /**< \brief 0x1F0: 32-bit CODE, (always same)*/

三、UCB_SSW

UCB_SSW 包含由英飞凌提供的数据,并主要用于SSW配置设备。
单个条目除了LBIST配置和预期签名条目SCU_LBISTCTRL*之外,不会被发布。
这些也可以在执行LBIST时由应用程序软件使用。
UCB_SSW

四、UCB_PFLASH_ORIG and UCB_PFLASH_COPY

UCB_PFLASH(原始和副本)包含了用户定义的PFlash保护。它通过密码PW0至PW7进行保护。保护配置被转移到寄存器DMU_HP_PROCONPps(其中“p”遍历已实现的PFlash存储库,“s”遍历32个扇区的组)和DMU_HF_PROCONPF(参见DMU章节)。
221

4.1 Password

PW0-PW7: 给UCB_BMHD0_ORIN和UCB_BMHD0_COPY安装(Install)密码(Password),如果我们在运行时想要修改UCB_BMHD0_ORIN和UCB_BMHD0_COPY的内容,需要通过Disable Protection指令传入Password进行match后才能修改。
145

4.2 UCB Confirmation

往Confirmation位域中写入特定的值就能让Confirmation处于:UNLOCKED, CONFIRMATION,ERASED,ERRORED四种状态之一。
在 UNLOCK 状态时,UCB可以重复擦写,当 CONFIRMED 状态时(相当于写保护),只有输入正确的密码,用”Disable Protection”命令对 UCB 临时解密,才能再操作 UCB。
在量产的程序中,必须改为 CONFIRMED 状态,因为在 UNLOCK 状态下,UCB 的Password 部分是可以读出来的(在调试器连接不上情况下,也还是可以通过 ASCBootloader 读出来)。

在使能了调试保护后,当 UCB_DBG 的 CONFIRMATION 改为 CONFIRMED 后,只要知道调试密码,依然还是可以调试。

在使能了调试保护后,当 UCB_HSM 的 CONFIRMATION 改为 CONFIRMED 后,那么HSM 的代码就永远不能调试了,除非在 HSM 的代码中加入一段后门代码,例如检测到一个信号或者命令后,把 UCB 中的调试保护解除。UCB_HSM 被 CONFIRMED 后,只有 HSM代码才能操作这块 UCB。

195


参考文档:Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN

http://www.dtcms.com/a/112787.html

相关文章:

  • Photoshop 快捷键指南
  • springboot457-库存管理系统(源码+数据库+纯前后端分离+部署讲解等)
  • 谷歌开源单个 GPU 可运行的Gemma 3 模型,27B 超越 671B 参数的 DeepSeek
  • 在js中数组相关用法讲解
  • Git for Windows 历史版本下载教程
  • 单词排序(信息学奥赛一本通-1185)
  • 架构思维:查询分离 - 表数据量大查询缓慢的优化方案
  • 2025大唐杯仿真1——车联网
  • mysql 8.0.27-docker
  • 第二章 react redux的学习,多个reducer
  • 什么是DHCP服务,在生活中的应用是什么?
  • 使用QAction编辑器添加QAction到ui里
  • 【数字电路】第一章 数制和码制
  • Kotlin 集合函数:map 和 first 的使用场景
  • 自定义组件触发饿了么表单校验
  • LaTeX、KaTeX、Markdown 的用法
  • 15.2linux设备树下的platform驱动编写(程序)_csdn
  • 与 AI 共舞:解锁自我提升的无限可能
  • 如何通过优化HMI设计大幅提升产品竞争力?
  • 配置网络编辑器
  • 【Rust学习】Rust环境搭建和Rust基础语法
  • Jetpack Compose 自定义组件完全指南
  • python基础-13-处理excel电子表格
  • 叁仟数智指路机器人的智能导航精度如何?
  • 【爬虫案例】采集 Instagram 平台数据几种方式(python脚本可直接运行)
  • 你用的是Bing吗?!
  • 【AI论文】GPT-ImgEval:一个用于诊断GPT4o在图像生成方面的综合基准
  • 论文写作篇#8:双栏的格式里怎么插入横跨两栏的图片和表格
  • Kafka 概念
  • Johnson算法——两阶段流水线调度的最优解法