一文搞懂Zynq的两种启动模式

发布时间:2024-12-17  
	


Zynq-7000AP SOC器件有效利用了片上CPU来帮忙配置,在没有外部JTAG的情况下,处理系统(PS)与可编程逻辑(PL)都必须依靠PS来完成芯片的初始化配置。 ZYNQ的两种启动模式:从BootROM主动启动,从JTAG被动启动。
ZYNQ的启动配置分多级进行的。配置至少需要两步,但通常按如下三个阶段进行:

阶段0:
该阶段简称为BootROM,控制着整个芯片的初始化过程。放在BootROM中的代码是固化的,不可修改的,处理器核在上电或者热启动时自动执行这部分代码。
阶段1:该阶段的启动加载器(FSBL)也可以由用户代码控制。

阶段2:
这阶段通常可以是用户的PS端的设计代码,当然也可以是第二阶段的启动加载器(SSBL),这个阶段可以完全由用户控制,是可选的。

ZYNQ外部启动条件:
1、 电源要求:在阶段0 BootROM状态时,PS与PL的电源要求如表所示:
在阶段1 FSBL时,PS与PL都是必须上电的,因为PL将在这个阶段进行配置,而PS将负责配置的过程。 2、 时钟要求:必须满足时钟 .3、 复位要求:主要有两个外部复位源将影响BootROM的执行。(电源复位信号,系统复位信号) 4、 启动引脚设置:需要配置好引脚才能正确启动平台。
BootROM 1、 BootROM的作用:上电复位以后,PS端即开始进行配置。在不使用JTAG的情况下,ARM将在片上的BootROM中开始执行代码。BootROM中的代码对NAND、NOR、Quad-SPI、SD与PCAP的基本外设控制器进行初始化,使得ARM核可以访问、使用这些外设。
而DDR等其他外设将在阶段1或者之后进行初始化。BootROM中的代码还负责加载阶段1的启动镜像。 PS的启动源是由外部模式引脚的高低电平来选择的,也就是指BootROM将根据外部配置引脚的设置来从不同的外部存储中加载阶段1的启动镜像,当然也支持在线性Flash上直接运行。 需要注意的是PL的配置并不在BootROM中完成,BootROM只为配置PL做好准备。
FSBL1、 FSBL是在BootROM之后启动的引导程序。由BootROM加载到OCM或者直接在线性Flash上运行。FSBL主要完成以下工作:
1) 根据XPS中的配置,完成PS端的初始化。2) 使用比特流文件对PL进行配置 .3) 加载第二阶段引导程序(SSBL)或者裸跑程序(直接在ARM上运行无操作系统程序)到内存空间。 4) 跳转执行SSBL或者裸跑程序。 注意:FSBL在跳转到SSBL或者裸跑程序前,并不使能MMU。这是因为许多操作系统,例如linux假设MMU在启动时是禁用的。 FSBL启动流程:
需要注意的是在FSBL阶段PL的配置不是必须的,可以将zynq平台当做两个ARM核使用。另外需要注意的是:PL的比特流文件、SSBL、裸跑的应用程序等都必须组织成Flash分区镜像。FSBL将会遍历分区头表来寻找比特流文件、SSBL、裸跑程序所在的位置,然后进行加载或配置。SDK提供了生成flash分区镜像的工具。
SSBL 第二阶段的启动加载(SSBL)是可选的。 SSBL的引导程序称为BootLoader。对于运行在zynq平台的linux系统而言,U-Boot就是SSBL。在zynq平台中,FSBL帮助我们加载U-Boot到ARM来运行。U-Boot拥有非常强大的功能,提供了许多用户指令、读写内存、flash、USB设备。U-Boot会帮助我们完成linux内核启动之前所必须的硬件初始化,例如串口、DDR控制器等。
Linux启动过程: 嵌入式linux从软件层面考虑可以分为以下四个部分:引导程序(BootLoader)、linux内核、文件系统、应用程序。 Zynq平台中的嵌入式linux就是U-Boot,FSBL帮助我们引导U-Boot到内存中。
U-Boot将为linux内核初始化内存和必要的外设,设置好启动参数。在zynq平台中,采用设备树来传递驱动部分的参数,所以U-Boot还将为内核拷贝设备树镜像文件到内存中。由U-Boot传递给内核的启动参数中通常包含了设备树的地址,文件系统的类型、地址等信息。而后U-Boot将把系统控制权交给linux内核。
当linux内核拥有系统的控制权后,将先进行初始化,建议起内核的运行环境。Linux内核在完成了虚拟地址到物理地址映射后,还有就是驱动设备初始化与挂载。在zynq平台中,采用设备树的方式传递设备驱动的信息,如果有为PL中的IP核编写了驱动程序,也可以使用模块化的方式,待linux启动后再进行挂载。
Linux内核将根据U-Boot传递过来的参数信息选择挂载文件系统的格式与挂载点。最后linux内核将运行init()函数,这是内核引导的终点,也是系统所有进程的起点。 应用程序都是放在文件系统中。


文章来源于:21IC    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>