Firefly-RK3399
文章平均质量分 96
系统移植
Hilbert(*^*)
箴言:认真、努力,不哗众取宠,不走捷径,坚持美好,特例独行!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
devicetree和启动参数解析流程
AARCH64架构下内核可以通过设备树或acpi方式获取设备信息,其中acpi主要用于服务器领域,而设备树用于嵌入式领域。在设备树方式中,bootloader启动之前将设备树拷贝到内存中,并将地址通过x2寄存器传递给kernel,kernel启动时从设备树中读取启动参数和设备配置节点。由于内存配置信息是由device tree传入的,而将device tree解析为device node的流程中需要为node和property分配内存。原创 2023-02-01 11:08:19 · 1251 阅读 · 0 评论 -
内核初始化
本文基于以下软硬件假定:架构:AARCH64内核版本:5.14.0-rc4上一篇我们讨论了内核初始化时异常等级和页表创建相关的一些背景知识,除此之外自然也少不了启动三件套:参数保存、cpu系统寄存器初始化以及c语言运行时环境准备。由于kaslr主要用于增强内核安全性,在启动流程中并不是必须的,因此在本篇我们先不介绍与该特性相关的流程。综上所述,内核初始化总体流程如下图:## 1 内核入口函数。原创 2022-12-22 07:00:00 · 526 阅读 · 0 评论 -
内核启动先导知识
即判断寄存器中给定异常等级对应的字段是否被设置,若其被设置则cpu支持该异常等级,否则不支持。原创 2022-12-21 06:00:00 · 767 阅读 · 0 评论 -
为U-boot 添加新的board
本文基于以下软硬件假定:架构:AARCH64软件:U-boot 2022.10原创 2022-12-19 11:32:34 · 967 阅读 · 3 评论 -
U-boot启动流程[三]
本文基于以下软硬件假定:架构:AARCH64软件:U-boot 2022.10。原创 2022-12-18 21:58:44 · 1665 阅读 · 0 评论 -
SPL启动分析
典型的uboot启动流程通常包含三个阶段,bootrom(或xip)–> spl --> uboot。(1)其存储介质需要具有片上执行能力因为在系统初始化时,cpu只能访问可以直接寻址的存储器,如ROM。而像SPI FLASH或NAND FLASH等外部存储器,都需要相应的驱动才可以访问,故在启动的最初阶段cpu无法访问。因此cpu执行的第一级启动镜像一般都是产商固化在SOC内部存储器(通常为ROM)上的。(2)它的主要功能是加载并执行BL2镜像。原创 2022-12-17 23:25:45 · 1284 阅读 · 0 评论 -
U-boot启动流程[二]
本文基于以下软硬件假定:架构:AARCH64软件:U-boot 2022.10。原创 2022-12-09 13:00:30 · 788 阅读 · 0 评论 -
U-boot启动流程[一]
1.2 Atf与U-boot组合方式启动save_boot_params保存上一级镜像传入的参数,该函数由平台自行定义若支持pie则检查代码段是否为4k对齐(因为由于指令集中操作数长度的限制,adr等类型指令的寻址范围是需要4k对齐的)pie_fixup为pie重定位全局地址相关的.rela.dyn段内容reset_sctrl根据配置确定是否重设sctlr寄存器为uboot设置异常向量表。spl和uboot异常向量表设置有以下不同:(1)若当前从cpu为spin table启动方式,且当前执行原创 2022-12-08 23:38:58 · 1895 阅读 · 0 评论 -
Firefly-RK3399平台移植U-boot 2022.10
U-Boot 2017.09 (Jul 05 2018 - 15:12:31)Model: Firefly-RK3399 BoardPreSerial: 2DRAM: 3.9 GiBSysmem: initRelocation Offset is: 7dbe9000Using default environment参考瑞芯微wiki从eMMC/SD/U-Disk/net启动时,会有不同的启动内容:启动流程RK官方固件1.2 TPL/SPL加载建议使用流程2的方式加载U-Boot.原创 2022-12-08 12:51:53 · 3061 阅读 · 0 评论
分享