《S32G3系列芯片——Boot详解》持续更新中...

总目录:《S32G3系列芯片——Boot详解》持续更新中... ...

  • 一、前言
  • 二、启动时序概述(Boot Sequence)
  • 三、启动特性(Boot Features)
  • 四、启动模式(Boot Mode)
  • 五、《S32G3系列芯片——Boot详解》系列文章总目录
    • 5.1 Boot过程的相关镜像详解:IVT、DCD、App Boot镜像到底是什么?(待更新... ...)
    • 5.2 S32G3系列芯片Boot过程涉及的寄存器有哪些?(待更新... ...)
    • 5.3 S32G3系列芯片Boot流程详解!★★★(待更新... ...)
    • 5.4 Serial Boot功能详解!★★★(待更新... ...)
    • 5.5 S32G3系列芯片如何从外置flash进行Boot启动?(待更新... ...)
    • 5.6 S32G3系列芯片使用HSE使能安全启动(HSE基于IVT的安全启动使能方案)!! ★★★★★ !!(待更新... ...)

一、前言

  随着车辆智能化水平的不断提升,S32G3系列芯片,作为NXP旗下面向汽车和工业市场的高性能处理器,已经成为许多工程师和开发者的首选。无论是处理实时控制任务、数据处理任务还是为复杂网络提供安全通信,S32G3系列芯片都展现出了卓越的性能。但是,强大的性能仅是基础,在这个高度依赖于数据和网络连接的时代,安全性成为了系统设计中不可或缺的一环。正是在这种背景下,Boot过程的安全性显得尤为重要!

  Boot过程是系统启动的初期阶段,是发生在系统加电后,操作系统启动之前的一段关键时期。在这一阶段,芯片需要执行一系列复杂的操作,包括自检、安全策略的校验和加载操作系统至内存中。一个安全且可靠的Boot过程能够确保加载到系统中的软件没有被篡改,是经过认证的,同时保护系统免受早期阶段的攻击。因此,正确理解并实现一个安全的Boot流程对于确保整个车载系统的安全至关重要!

  在本专栏中,我们将深入探讨S32G3系列芯片的Boot过程,从基本的引导流程及相关的众多基础概念入手,详细分析其安全启动机制,以及如何通过硬件安全引擎(HSE)实现高效的验证和加密服务。推荐按照目录顺序阅读该专栏,通篇学习后再回来重新阅读该篇章,这样一些之前看不懂的地方也许会豁然开朗,也将对S32G3系列芯片的Boot背后的安全机制有更进一步的了解

二、启动时序概述(Boot Sequence)

——S32G3系列芯片系统上电后,遵循怎样的启动顺序?如何确保设备能正确地加载并执行芯片使用者编写的固件/应用程序?

  大家应该都听说过芯片出厂一般会固化一段代码在ROM中,这份代码是只读的,它承担着载入用户编写的固件软件的重要作用,这正是本专栏将详细介绍的Boot功能。S32G3系列芯片在硬件复位完成后,唯一可用的处理器核心位于HSE_H子系统,称为HSE_H core(HSE主要跟安全功能相关,又俗称安全核,这里的后缀_H可以看作是对产品或者性能的区分,类比iPhone 15、15Pro、15Pro Max)。这里提到的两个基本概念解释如下:

  • HSE_H core: 在硬件重置后,HSE_H core开始从包含BootROM固件的HSE_H ROM模块执行固件。
  • BootROM固件: 负责管理启动序列,直到它将控制权传递给其他代码。传递的具体方式取决于启动的类型——在非安全启动中,固件将控制权传递给在HSE_H子系统之外的处理器核心上(也称应用核)运行的客户软件;在安全启动中,固件将控制权传递给在HSE_H核心上运行的HSE_H固件,HSE_H固件对客户软件做完校验后才会把控制权转交给这个通过校验的客户软件。即启动过程中,BootROM固件根据启动类型(安全或非安全)来决定如何将控制权转移给系统中的下一个软件阶段

三、启动特性(Boot Features)

  BootROM固件支持如下启动特性:

  • 从外部闪存启动
  • 支持安全与非安全启动模式
  • 选择客户应用程序的启动核心
  • 串行下载功能
  • 执行设备配置数据(DCD)
  • 配置和启动客户提供的自检数据
  • 推进芯片生命周期状态(LifeCycle)
  • 调试挑战/响应认证
  • 从待机/低功耗模式启动
  • 从备份程序镜像启动

  这里只是简单罗列,先不必深究每种特性的具体含义,读完本专栏将对他们有进一步的理解。

四、启动模式(Boot Mode)

  在复位时,BootROM代码配置HSE_H core的启动模式,包括内存类型、速度等,基于BootROM的启动特性S32G3支持的两种启动模式如下:

  • 串行启动模式: 通过UART或CAN等接口,通常用于开发和工厂线的编程。可以通过熔断DIS_SER_BOOT保险丝来禁用此模式。
  • 从外部闪存启动: 通过QuadSPI Flash、SD卡或MMC等,通常用于产品级设备。

  启动模式的配置信息是通过RCON(Reset Control: 复位控制寄存器)引脚或基于FUSE_SEL保险丝状态来决定的,通过以下三项输入判定启动模式:

  • 启动模式引脚(BOOTMOD1和BOOTMOD2)
  • FUSE_SEL保险丝(抑制RCON的使用,强制基于保险丝的启动)
  • LC(Lifecycle)状态(阻止某些仅对特定生命周期状态有效的启动模式)

具体如下表所示:

在这里插入图片描述

Tip📌:关于其中的lifecycle state可以先不关注,将在本专栏后面的篇章中详细阐述。

——关于串行启动模式(Serial Boot mode)

  串行启动模式允许将应用程序代码下载到SRAM中,对于新生产的芯片或无法正确启动的芯片来说,这是一个非常重要的过程。串行启动模式(Serial Boot mode)的两个主要用途如下所示:

  • 下线编程(End-of-line programming):在生产线上的新芯片中,Flash是空白的,所有的保险丝也都是未熔断状态。为了使芯片可用,必须对Flash进行编程,并根据所需配置熔断保险丝。串行启动模式允许将初始的客户应用程序和数据下载到未编程的设备中,这通常是生产流程的最后一步。

  • 恢复变砖/无法正常启动的芯片(Non-responsive modules):由于软件编程错误、闪存故障或生产过程中的PCB(印刷电路板)故障等原因,有些模块可能无法启动,表现为芯片无响应。串行启动模式提供了一种机制,可以向SRAM下载可执行的恢复软件。例如,下载的可执行文件可能会重新编程闪存或执行诊断代码以确定故障原因。(板子变砖情况下的极限恢复手段,十分重要

Tips📌:

  • 如果通过熔断DIS_SER_BOOT保险丝(BOOT_CFG2[3])禁用了串行启动,将无法实现这种启动模式。
  • 串行启动模式是一个关键功能,它不仅支持初次编程,还提供了一种用于设备故障恢复的途径。

——如何判定启动模式

  BootROM具体使用哪种启动方式在上面的表格中已经简单梳理,主要通过两种机制:保险丝(Fuses)和复位控制寄存器(Reset Control, RCON)。具体使用哪种机制以及该机制下Boot ROM的启动配置信息从哪里获取如下所示:

在这里插入图片描述

  可见,BOOT_CFG2[4]作为FUSE_SEL配置(上图最右侧部分)决定了是使用基于保险丝状态的机制还是使用RCON的机制获取配置信息

  • 当FUSE_SEL为1时,使用从基于Fuses状态的配置信息启动的方式,这种方式是实际产品中配置启动过程的主要方式,BootROM 固件软件将从三个保险丝配置字(BOOT_CFG1、2、3)获取启动配置数据,配置完成后,可以通过启用BOOT_CFG的保险丝锁定来阻止配置数据进一步的更改。
  • 当FUSE_SEL为0时,使用从RCON获取配置信息启动的方式,该方式通常用于应用开发过程中,因为在应用开发过程中,可能需要多次更改启动配置,而RCON模式允许在开发期间更改启动配置,且不需要熔断保险丝。此外,BootROM支持从并行RCON和串行RCON获取启动配置信息。

——串行RCON和并行RCON?

  串行RCON通过I2C与外部串行EEPROM通信来获取32位的复位配置数据,而并行RCON直接使用高达32个通用输入/输出(I/O)引脚的信息作为配置数据给到BootROM。通过RCON[8]的值决定启用哪种RCON模式:

  • RCON[8] = 1 指示一个I2C EEPROM连接到RCON[7:8],需要从EEPROM读取32位配置数据。
  • RCON[8] = 0 指示使用所有32个并行RCON引脚用于启动配置。

  在开发结束后,推荐强制芯片始终从保险丝启动,通过以下步骤操作:

  1. 用正确的值熔断BOOT_CFGn保险丝。
  2. 熔断FUSE_SEL保险丝来永久禁用从RCON启动。
  3. 在复位期间将BOOTMOD引脚拉到所需状态。

五、《S32G3系列芯片——Boot详解》系列文章总目录

  看完以上一些基础概念,也许会对相关内容有个感性的认识,但很多内容甚至词汇也许让人摸不着头脑,没关系,按照下面的篇章逐步阅读后,也许有不一样的收获。


5.1 Boot过程的相关镜像详解:IVT、DCD、App Boot镜像到底是什么?(待更新… …)

5.2 S32G3系列芯片Boot过程涉及的寄存器有哪些?(待更新… …)

5.3 S32G3系列芯片Boot流程详解!★★★(待更新… …)

5.4 Serial Boot功能详解!★★★(待更新… …)

5.5 S32G3系列芯片如何从外置flash进行Boot启动?(待更新… …)

5.6 S32G3系列芯片使用HSE使能安全启动(HSE基于IVT的安全启动使能方案)!! ★★★★★ !!(待更新… …)


  总之,S32G芯片的启动过程为设备的安全性和灵活性提供了坚实的基础。通过BootROM固件,芯片能够以安全或非安全模式启动,支持从多种外部介质加载程序,并提供灵活的启动配置选项。启动模式的选择可以通过引脚、保险丝以及生命周期状态的组合控制,满足从开发到生产不同阶段的需求。这一切确保了系统在各种应用场景下都能以预定的方式高效启动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2981807.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Centos之yum安装好玩的命令

1.会动的小火车 我在root下使用的 yum install sl.x86_64sl2.figlet yum install figlet.x86_64figlet 55553.cowsay会说话 yum install cowsay

力扣数据库题库学习(4.23日)

610. 判断三角形 问题链接 解题思路 题目要求:对每三个线段报告它们是否可以形成一个三角形。以 任意顺序 返回结果表。 对于三个线段能否组成三角形的判定:任意两边之和大于第三边,对于这个表内的记录,要求就是(x…

一看就会,uni-app打包运行成微信小程序,部署

前言 这篇文章主要针对刚开始接触混合开发的小伙伴,全文使用uniapp框架,使用HBuilderX结合微信小程序开发工具作为开发环境。搭建一个简单的入手项目,主要是对搭建项目的流程做一个简单介绍 提示:以下是本篇文章正文内容&#xff…

【GEE】优雅地实现年度、季度、月度甚至旬度影像合成(附完整代码)

以下文章来源于GEE学习室 ,作者GEEStudyRoom 光学影像由于受到天气因素(云、雨和雾等)影响,导致单张影像数据存在大量坏死像元。此处,坏死像元指由于受到云遮挡等导致下垫面地物覆盖不能准确被卫星信息捕捉从而不能正…

【Linux系统编程】第八弹---权限管理操作(中)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、修改文件权限的做法(二) 2、文件类型 3、可执行权限 4、创建文件/目录的默认权限 4.1、权限掩码 总结 前面一弹我们学…

git 重命名文件,提交后,此文件的提交记录丢失

零、问题现象: 文件重命名后,提交到 git 仓库,发现重命名操作 变成 删除旧文件,新增一个新文件,原来文件的提交记录丢失,看不到了。 一、正确的重命名提交方法 1.1、 先执行add命令来将修改内容后的文件…

校园论坛圈子,校园跑腿小程序,2024 一款功能强大校园综合服务小程序开源源码

目的 本课题主要目标是设计并能够实现一个基于微信校园跑腿小程序系统,前台用户使用小程序发布跑腿任何和接跑腿任务,系统基于TP6uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发;通过后台管理跑腿的用户、查看跑腿信…

2024年最佳软件测试工具40强清单

什么是测试工具 软件测试工具是指那些支持从计划、需求收集、构建创建、测试执行、缺陷记录到测试分析等各种测试活动的产品。这些工具主要用于检测软件的稳定性、彻底性以及其他性能参数。 市场上有大量的软件测试工具,众多选择使得难以确定最适合你项目的测试工具…

前端css中table表格的属性使用

前端css中table表格的属性使用 一、前言二、常见的表格属性1.边框的样式2.布局和对齐3.间距和填充4.背景和颜色5.字体的样式6.边框的圆角 三、简单的表格,例子11.源码12.源码1效果截图 四、给表格添加动画效果,例子21.源码22.源码2的运行效果 五、结语六…

备考2024年小学生古诗文大会:吃透10道历年真题和知识点(持续)

对上海小学生的小升初和各种评优争章来说,语文、数学、英语的含金量较高的证书还是很有价值和帮助的。对于语文类的竞赛,小学生古诗文大会和汉字小达人通常是必不可少的,因为这两个针对性强,而且具有很强的上海本地特色。 根据往…

基于智能推荐的校园兼职招聘平台

3协同过滤算法简介 目前,推荐算法有很多种,可以应用于日常生活的许多领域,对大量数据进行处理和分析,然后进行分类。它将显示用户可能感兴趣的内容,这是推荐算法的主要功能之一[1]。 协同过滤算法通常包括两类&#…

ARP 攻击神器:ARP Spoof 保姆级教程

一、介绍 arpspoof是一种网络工具,用于进行ARP欺骗攻击。它允许攻击者伪造网络设备的MAC地址,以欺骗其他设备,并截获其通信。arpspoof工具通常用于网络渗透测试和安全评估,以测试网络的安全性和漏洞。 以下是arpspoof工具的一些…

数智亚运,为什么需要智能电子桌牌?

近日,杭州亚运会博物馆正式对公众开放,深度还原了杭州从申请办、筹办至举办亚运会的各个精彩历程。馆内有“亚运与杭州”、“亚运与亚洲”“亚运与未来”三大板块展示区,展示了大量亚运会使用过的实物,还有当时引人注目的数字科技…

遥测终端赋能水库泄洪监测预警,筑牢度汛安全防线!

4月10日,水利部召开水库安全度汛视频会议。会议要求着力强化水库防洪“四预”措施,加快构建雨水情监测预报“三道防线”,完善预警信息发布机制,推进数字孪生水利工程建设,为科学调度指挥决策提供支持。强调坚决牢牢守住…

大模型应用RAG系列(1)初识RAG

题外话 之前我们在讲大模型的应用方向和架构时,有提到RAG、Agent、Fine-Tune。在作者写大模型专题的文章时,也是边学习,边梳理,边总结。在这个过程中,大模型在各个方向都不断地快速发展,对应的paper、理论…

25计算机考研院校数据分析 | 上海交通大学

上海交通大学电子信息与电气工程学院成立于2001年12月,其前身可湖源至百年前的电机专科,具有中国电气工程师“摇篮”之美称。50年代根据学科发展需要分为电工与计算机科学系(三系)和电子工程系(四系)。1985年,三系和四系合并,成立…

机器学习之sklearn基础教程

ChatGPT Scikit-learn (简称sklearn) 是一个非常受欢迎的Python机器学习库。它包含了从数据预处理到训练模型的各种工具。下面是一个关于如何使用sklearn进行机器学习的基础教程。 1. 安装和导入sklearn库 首先,你需要安装sklearn库(如果你还没有安装的…

嬴图| ISO/IEC-GQL国际图语言标准发布,图技术开启新纪元

GQL作为继SQL之后的第二个数据库查询语言国际标准,近日正式发布。这标志着图技术开启新纪元——图时代即将到来! 同时,这也预示着将有越来越多的组织采用“图”来解决各种复杂问题,更意味着SQL系统与负载将逐渐转向GQL&#xff0…

Fork for Mac v2.42 激活版 Git客户端

Fork for Mac是一款运行在Mac平台上的Git客户端,Fork Mac版具备基本的取、推、提交、修改、创建和删除分支和标签、创建和删除远程备份等功能,还有实用的差异查看器,你可以通过清晰的视图快速发现源代码中的更改。 Fork for Mac v2.42 激活版…

Java八股文4-Linux篇

Linux篇 Linux中常见命令:Linux常见命令 1.free命令-查看内存状态 free命令用于显示内存状态,它可以提供关于系统内存使用情况的详细信息。这个命令会显示出内存的使用情况,包括实体内存、虚拟的交换文件内存、共享内存区段,以及…