SoC bring-up(片上系统启动)是一个复杂的过程,涉及硬件、固件和软件的集成与验证。在不同的场景下,SoC bring-up有着不同的具体表现和重要作用。
例如,字节跳动公司校招网站发布了 SoC 设计&验证和开发/验证实习生岗位招聘启示,其中开发/验证岗位工作职责包括芯片底层软件开发和 SoC Bring-up,通常指芯片流片后点亮环节,且两个岗位均要求应征者熟悉 RISC-V 或 ARMv8 等系统架构。
SOC (System on a Chip) bring-up 以 BROM、SPL、UBOOT 和 Linux 的启动流程为例,首先是 BROM (Boot Read-Only Memory)启动,在这个阶段,系统会执行芯片 ROM 里面的代码,检查启动模式,然后从对应的存储介质中加载 SPL(Secondary Program Loader)代码。SPL 启动后,会初始化硬件并加载完整的 U-boot,主要体现在初始化时钟、看门狗、DDR、GPIO 以及存储外设,最后将 U-boot 代码加载到 DDR 中执行。U-Boot 启动后,会引导加载 Kernel 和 DTS,在启动之后同样初始化 Soc 硬件资源,然后会计时等待,并执行默认的启动命令,将 Kernel 和 DTS 信息从存储介质中读取出来并加载到内存中执行。最后 Kernel 启动,在 U-Boot 加载了内核映像和设备树之后,系统会启动 Linux,初始化各种硬件设备,加载驱动程序并启动用户空间应用程序。
在 Uboot 启动过程中,上电后片上的 BootROM code 会将启动的 bin 文件拷贝到 ocram 中运行,但由于 ocram 通常只有 4kb 甚至更小,所以 SPL 应运而生。SPL 在 ocram 运行起来以后会将 u