下图是HPS启动的详细步骤:
Altera的SoC FPGA启动过程总体可以使用上图来概括,fpga和arm的配置和启动又可以分为3种不同情况(Xilinx似乎只有一种情况)。分别是fpga和arm彼此独立配置和启动、FPGA先配置然后通过fpga启动arm,第三种情况是HPS先启动然后通过arm来配置fpga逻辑。下面分别对此进行简单介绍。
1、fpga和hps单独配置和启动
这种情况fpga从非HPS源配置,属于标准的fpga配置模式。同样,HPS获取Preloader也与fpga无关。如下图所示:
2、fpga首先配置
fpga通过传统的方式进行配置,然后HPS通过FPGA逻辑进行启动。
1)、首先需要等待init_done信号
2)、HPS的BootROM代码透过HPStoFPGA桥执行Preloader
3)、Preloader可以存放在FPGA内部RAM或者存放在外部存储器
下图展示了此过程:
3、HPS先启动,然后通过HPS配置fpga逻辑
HPS从与fpga无关的启动源启动,然后HPS的软件通过fpga管理器来配置fpga逻辑。注意,fpga的配置信息存储在Flash存储器或者其他可访问的通信接口处。下图展示了这种配置启动模式: