CN112631663B - 一种基于ARMv7 SoC的一体化映像引导启动方法 - Google Patents

一种基于ARMv7 SoC的一体化映像引导启动方法 Download PDF

Info

Publication number
CN112631663B
CN112631663B CN202011558017.0A CN202011558017A CN112631663B CN 112631663 B CN112631663 B CN 112631663B CN 202011558017 A CN202011558017 A CN 202011558017A CN 112631663 B CN112631663 B CN 112631663B
Authority
CN
China
Prior art keywords
stage
starting
integrated image
bootstrap program
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011558017.0A
Other languages
English (en)
Other versions
CN112631663A (zh
Inventor
张钰尧
杨晓宁
侯光霞
杨珂瑶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN202011558017.0A priority Critical patent/CN112631663B/zh
Publication of CN112631663A publication Critical patent/CN112631663A/zh
Application granted granted Critical
Publication of CN112631663B publication Critical patent/CN112631663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种基于ARMv7 SoC的一体化映像引导启动方法,所述方法应用于ARMv7 SoC架构的系列芯片,ARMv7 SoC架构的系列芯片包括处理系统端和编程逻辑端,方法包括:上电系统启动,BootROM引导启动存储于第一固化地址的一体化映像,所述一体化映像包括第一阶段引导程序和可编程逻辑文件;所述第一阶段引导程序完成处理系统端的基础设备驱动功能初始化;所述第一阶段引导程序加载所述可编程逻辑文件,完成对编程逻辑端的配置;所述第一阶段引导程序从预先设置的第二固化地址,引导启动第二阶段引导程序;所述第二阶段引导程序完成功能配置,系统启动完成。

Description

一种基于ARMv7 SoC的一体化映像引导启动方法
技术领域
本发明属于计算机系统软件技术领域,具体涉及一种基于ARMv7 SoC的一体化映像引导启动方法。
背景技术
采用ARMv7 SoC架构的系列芯片中包括两个部分,处理系统(PS:Process System)和编程逻辑(PL:Program Logic)。一般情况下,采用ARMv7 SoC架构的系列芯片上电启动通常都是通过处理系统端的代码来完成所述处理系统和编程逻辑的配置工作。所述处理系统端的代码即是指一体化映像。采用ARMv7SoC架构的系列芯片启动所需的所述一体化映像由第一阶段引导程序(FSBL,First Stage Boot Loader)、可编程逻辑文件(.bit文件)以及第二阶段引导程序(SSBL,Second Stage Boot Loader)构成。
一体化映像由BootROM引导启动。BootROM主要对NAND、NOR、Quad-SPI、SD等基本外部设备控制器进行初始化,使ARM核可以访问、使用这些外部设备,为引导启动一体化映像做好准备。BootROM可以从多种设备上引导启动一体化映像,例如可以从Flash,SD Card上或者通过JTAG的方式引导启动一体化映像。BootROM通过读取MIO[2..8]位,同时根据硬件模式管脚的设定选用从哪种设备上启动一体化映像,选择的启动模式将被设置到寄存器slcr.BOOT_MODE中。BootROM会根据硬件模式管脚设置将第一阶段引导程序加载到片上存储器(OCM,On Chip Memory)上或者直接在线性Flash上运行,由第一阶段引导程序加载可编程逻辑文件及第二阶段引导程序,完成编程逻辑端的初始化及处理系统端软件程序的运行。
目前现有采用ARMv7 SoC架构的系列芯片的一体化启动方式,在某些嵌入式系统项目中无法直接利用。具体体现在:一、现有的一体化映像中,要求第二阶段引导程序的文件格式为ELF格式,当第二阶段引导程序为BIN文件格式时,合成的一体化映像无法成功加载运行第二阶段引导程序,完成处理系统端软件程序的运行。二、对于从Flash上启动的一体化映像大小是有所限制的,若一体化映像大小超过BootROM可检索映像的大小时,会影响第二阶段引导程序的启动。三、在多个实际项目中,可编程逻辑文件与第二阶段引导程序由不同人员或部门开发,统一合成不便于项目的快速开发和管理。基于上述限制条件,本发明针对采用ARMv7 SoC架构的系列芯片的一体化映像,提出一种新的引导启动方法。
发明内容
为了解决现有一体化映像无法合成并成功启动BIN格式的第二阶段启动映像的问题,本申请提供一种基于ARMv7 SoC的一体化映像引导启动方法。
本申请提供一种基于ARMv7 SoC的一体化映像引导启动方法,所述方法应用于ARMv7 SoC架构的系列芯片,ARMv7 SoC架构的系列芯片包括处理系统端和编程逻辑端,方法包括:
上电系统启动,BootROM引导启动存储于第一固化地址的一体化映像,所述一体化映像包括第一阶段引导程序和可编程逻辑文件;
所述第一阶段引导程序完成处理系统端的基础设备驱动功能初始化;
所述第一阶段引导程序加载所述可编程逻辑文件,完成对编程逻辑端的配置;
所述第一阶段引导程序从预先设置的第二固化地址,引导启动第二阶段引导程序;
所述第二阶段引导程序完成功能配置,系统启动完成。
优选的,所述第一阶段引导程序从预先设置的第二固化地址,引导启动第二阶段引导程序,具体包括:
根据fsblHandoff()挂钩函数,第一阶段引导程序从预先设置的第二固化地址,引导启动BIN文件格式的第二阶段引导程序。
优选的,所述ARMv7 SoC架构的系列芯片包括Xilinx公司的ZYNQ-7000系列的芯片和复旦微电子的FMQL芯片。
优选的,所述第一阶段引导程序加载所述可编程逻辑文件,完成对编程逻辑端的配置,具体包括:
从启动设备中扫描并加载可编程逻辑文件;
将可编程逻辑文件写入编程逻辑端,配置FPGA。
优选的,第二阶段引导程序的格式包括BIN文件格式。
优选的,所述第二固化地址包括非易失存储空间和内存空间。
优选的,第二阶段引导程序的种类包括操作系统映像,组件软件和其他应用程序。
优选的,BootROM引导启动一体化映像的方式,具体包括:
BootROM从SD卡设备,引导启动一体化映像的方式;
BootROM从Flash设备,引导启动一体化映像的方式;
BootROM通过JTAG方式,引导启动一体化映像的方式。
综上所述,本申请提供的一种基于ARMv7 SoC的一体化映像引导启动方法,可带来以下几点优势:
第二阶段引导程序的文件格式不再限于ELF文件格式,BIN文件格式的第二阶段引导程序也可以在采用ARMv7 SoC架构的系列芯片上被引导启动;
第一阶段引导程序到不需要再自行扫描查找第二阶段引导程序,而是直接跳转到预设的第二阶段引导程序的固化地址,节省了启动时间;
将第二阶段引导程序从一体化映像中分离,便于可编程逻辑文件和第二阶段引导程序的更新与管理,也使第二阶段引导程序的开发更加灵活,开发者不再需要关注第二阶段引导的开发环境和应用场景,只需要保证第二阶段引导程序是一种可执行的文件即可;
对于从Flash(NOR Flash,NAND Flash和QSPI Flash)上启动的一体化映像,BootROM可检索映像的大小是有所限制的,而往往第二阶段引导程序的大小在一体化映像中占比较重。本发明中一体化映像的大小仅包括第一阶段引导程序的大小与可编程逻辑文件的大小的总和,极大地降低了因为一体化映像过大而造成启动失败的可能。
附图说明
图1为本申请提供的第一阶段引导程序的主要工作流程示意图;
图2为本申请提供的一体化映像启动流程差异。
具体实施方式
一种基于ARMv7 SoC的一体化映像引导启动方法的技术方案包括:
步骤一:启动设备的确立
采用ARMv7 SoC架构的系列芯片提供从从Flash(NOR Flash,NAND Flash,Quad-SPI Flash),SD Card上以及通过JTAG的方式引导启动一体化映像。其中,选择从Flash和SDCard启动是一种主动的启动模式,Flash和SD Card属于一种启动设备,而选择从JTAG启动则属于一种被动的启动模式。本发明基于主动的启动模式由BootROM引导一体化映像。
步骤二:处理系统端的初始化
一体化映像启动,其中第一阶段引导程序首先进行处理系统端的初始化操作,主要包括MIO、PLL、CLK、DDR、启动设备和其他外设的初始化,从而保证系统的基本功能正常以及在后续的启动流程中,加载第二阶段引导程序时可正常地、成功地从所述启动设备中读取相关的映像信息。
步骤三:可编程逻辑文件的配置
第一阶段引导会从启动设备中尝试加载可编程逻辑文件,进一步配置编程逻辑端。一个可编程逻辑文件属于一个分区,第一阶段引导程序最多可查找15个分区。如果找到了可编程逻辑文件,则不重启,直接配置编程逻辑端,如果未找到可编程逻辑文件就进行软复位,调整地址验证下一个分区信息。
步骤四:第二阶段引导程序的加载
生成遵循BIN文件格式要求的第二阶段引导程序。其中,需明确第二阶段引导程序在采用ARMv7 SoC架构的系列芯片上的固化地址及运行空间。保证固化地址及运行空间实际可用、可访问,且不会被其他程序占用。
第二阶段引导程序也属于一个分区,第一阶段引导程序成功加载可编程逻辑文件后,查找第二阶段引导程序的映像。当找到了第二阶段引导程序的映像,就返回映像的执行地址。本发明中尝试将第二阶段引导程序从一体化映像中分离开,在第一阶段引导程序中为第二阶段引导程序设置一个启动设备上的固定可用的地址,即生成BIN文件格式的第二阶段引导程序时预设的固化地址。这样第一阶段引导程序不再自动查找第二阶段引导程序的映像,而直接将预设的固化地址移交至挂钩函数,直接跳转至预设的启动设备上的固化地址执行第二阶段引导程序的可执行BIN格式文件。本发明与现有一体化映像的组成结构和启动流程的差异如附图2所示。
步骤五:第二阶段引导程序的运行
第一阶段引导程序在启动设备上预设的固化地址加载第二阶段引导程序后,第二阶段引导程序将自身搬家至内存空间中,即所述运行空间,开始运行第二阶段引导程序。
一种基于ARMv7 SoC的一体化映像引导启动方法具体实施方式如下:
步骤一:在第一阶段引导程序的函数ps7_inti()中添加启动设备的驱动初始化,并完成对处理系统端的基本功能初始化;
步骤二:确定第二阶段引导程序的固化地址和运行地址,无论用何种开发软件,生成满足BIN文件格式要求的第二阶段引导程序可执行映像;
步骤三:当一阶段引导程序加载可编程逻辑文件,完成对编程逻辑端的配置后,开始加载第二阶段引导程序。本发明将第二阶段引导程序与一体化映像分离,将第二阶段引导程序的执行地址预设为所述第二阶段引导程序的固化地址。第一阶段引导程序将所述固化地址传递给fsblHandoff()这个挂钩函数,自此引导启动第二阶段引导程序;
步骤四:通过通用工具将所述一阶段引导程序与可编程逻辑文件合成为一体化映像后,固化在BootROM规定的所述第一固化地址,再将分离出来的BIN文件格式的第二阶段引导程序固化在预设的固化地址上;
步骤五:上电系统启动,BootROM引导启动一体化映像,完成处理系统端设备的基础功能初始化以及编程逻辑端可编程逻辑模块的配置,再引导启动BIN文件格式的第二阶段引导程序,完成启动。
综上所述,本发明属于计算机系统软件专业技术领域,涉及一种基于ARMv7SoC架构系列芯片的一体化映像引导启动方法。本方法可以引导启动BIN文件格式的第二阶段引导程序,不仅解决了某国产化操作系统的适配问题,同时对基于ARMv7 SoC架构系列芯片的软件项目更新管理提供了一种便捷化的开发思路。本方法的实现包含以下步骤:1)确定一体化映像烧写的目标设备,保证一体化映像中的第一阶段引导程序在引导第二阶段引导程序时可访问该设备;2)生成第二阶段引导程序的可执行BIN文件,确定第二阶段引导程序的固化地址;3)一体化映像引导过程抽象,在第一阶段引导程序中预设BIN格式的第二阶段引导程序的固化地址;4)合成一体化映像,将第一阶段引导程序固化在所述第一固化地址,将第二阶段引导程序固化在所述预设的固化地址后启动,系统运行。
实时本发明所述的方法后,能够在采用ARMv7 SoC架构的系列芯片上,引导启动操作系统映像,组件软件和其他应用程序时,不受文件格式的限制,灵活的控制与更改第二阶段引导程序。

Claims (3)

1.一种基于ARMv7 SoC的一体化映像引导启动方法,其特征在于,所述方法应用于ARMv7 SoC架构的系列芯片,ARMv7 SoC架构的系列芯片包括处理系统端和编程逻辑端,方法包括:
上电系统启动,BootROM引导启动存储于第一固化地址的一体化映像,所述一体化映像包括第一阶段引导程序和可编程逻辑文件;
所述第一阶段引导程序完成处理系统端的基础设备驱动功能初始化;
所述第一阶段引导程序加载所述可编程逻辑文件,完成对编程逻辑端的配置;
所述第一阶段引导程序从预先设置的第二固化地址,引导启动第二阶段引导程序;
所述第二阶段引导程序完成功能配置,系统启动完成;
所述第一阶段引导程序从预先设置的第二固化地址,引导启动第二阶段引导程序,具体包括:根据fsblHandoff()挂钩函数,第一阶段引导程序从预先设置的第二固化地址,引导启动BIN文件格式的第二阶段引导程序;
所述第一阶段引导程序加载所述可编程逻辑文件,完成对编程逻辑端的配置,具体包括:从启动设备中扫描并加载可编程逻辑文件;将可编程逻辑文件写入编程逻辑端,配置FPGA;
第二阶段引导程序的种类包括操作系统映像和组件软件;
BootROM引导启动一体化映像的方式,具体包括:BootROM从SD卡设备,引导启动一体化映像的方式;BootROM从Flash设备,引导启动一体化映像的方式;BootROM通过JTAG方式,引导启动一体化映像的方式。
2.根据权利要求1所述的方法,其特征在于,所述ARMv7 SoC架构的系列芯片包括ZYNQ-7000系列的芯片和FMQL芯片。
3.根据权利要求1所述的方法,其特征在于,所述第二固化地址包括非易失存储空间和内存空间。
CN202011558017.0A 2020-12-24 2020-12-24 一种基于ARMv7 SoC的一体化映像引导启动方法 Active CN112631663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011558017.0A CN112631663B (zh) 2020-12-24 2020-12-24 一种基于ARMv7 SoC的一体化映像引导启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011558017.0A CN112631663B (zh) 2020-12-24 2020-12-24 一种基于ARMv7 SoC的一体化映像引导启动方法

Publications (2)

Publication Number Publication Date
CN112631663A CN112631663A (zh) 2021-04-09
CN112631663B true CN112631663B (zh) 2024-07-23

Family

ID=75325128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011558017.0A Active CN112631663B (zh) 2020-12-24 2020-12-24 一种基于ARMv7 SoC的一体化映像引导启动方法

Country Status (1)

Country Link
CN (1) CN112631663B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115237482B (zh) * 2022-08-11 2025-08-15 无锡先进技术研究院 一种基于risc-v的soc开工启动方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139916A (zh) * 2015-10-06 2018-06-08 赛灵思公司 可编程逻辑设备的多阶段引导映像加载和配置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9230112B1 (en) * 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9411688B1 (en) * 2013-12-11 2016-08-09 Xilinx, Inc. System and method for searching multiple boot devices for boot images
CN104794393B (zh) * 2015-04-24 2017-11-10 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN108279935A (zh) * 2016-12-30 2018-07-13 北京中科晶上科技股份有限公司 一种针对片上系统的操作系统启动引导方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139916A (zh) * 2015-10-06 2018-06-08 赛灵思公司 可编程逻辑设备的多阶段引导映像加载和配置

Also Published As

Publication number Publication date
CN112631663A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
US9304788B2 (en) Electronic device, configurable component and configuration information storage method thereof
US8296521B2 (en) Method of configuring non-volatile memory for a hybrid disk drive
US20080005462A1 (en) Method of configuring non-volatile memory for a hybrid disk drive
US8443183B2 (en) Pre-boot loader for reducing system boot time
EP3518097B1 (en) Firmware updating method and electronic device using the same
CN101763279A (zh) 一种BootLoader架构设计方法
US7127603B2 (en) System and method for manufacture of information handling systems with selective option ROM executions
CN102486733B (zh) 引导程序的升级方法和装置
CN109426613B (zh) 在uefi中检索调试数据的方法及其电脑系统
US10592393B1 (en) Firmware debug trace capture
CN101593120A (zh) 带外升级方法和系统
US8677084B2 (en) Method of configuring non-volatile memory for a hybrid disk drive
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
CN110780932A (zh) 一种pcie切换芯片的工作模式切换方法与装置
CN102075710B (zh) 一种电视机的启动运行方法及电视机
CN112631663B (zh) 一种基于ARMv7 SoC的一体化映像引导启动方法
US8726258B2 (en) Supporting multiple hardware components in UEFI
CN112162794B (zh) 一种单板启动方法、装置、单板以及网络设备
KR100824462B1 (ko) 하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를가능하게 하는 방법 및 장치
CN113467797B (zh) 程序更新方法、装置和系统以及计算机可读存储介质
CN112667544A (zh) 一种控制主板插槽使能的方法、装置、系统及介质
US12541600B2 (en) Method for running startup program of electronic device, and electronic device
US8341334B2 (en) Flash memory apparatus and method for operating the same and data storage system
US20040148499A1 (en) Method and apparatus for programming revision identification numbers
CN115904820A (zh) 一种失效硬盘的恢复方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant