首页 > 其他分享 >RK3566 Boot Sequence

RK3566 Boot Sequence

时间:2024-01-21 23:11:05浏览次数:22  
标签:searches code uboot RK3566 Sequence Boot spl bootloader

 

Introduction

This page describes the boot sequence of rockchip linux

General Boot Sequence (Linux system)

Boot sequence

  1. Soc powers up and initializes.
  2. BootRom code runs in SRAM, loads and verifies bootloader's bootstrap code from storage device.
  3. If the verification passes, run the uboot spl.
  4. The uboot spl initializes DDR RAM, loads the complete uboot into DDR RAM and runs it.
  5. The uboot searches for /extlinux/extlinux.conf and load kernel,dtb on first partition or partition which set bootable flag.
  6. Linux kernel takes control of everything now.

Boot order

On power-on, chip searches for the uboot spl on any bootable media in a fixed order :

  • eMMC
  • SDMMC

the uboot spl searches u-boot in a order :

  • SDMMC
  • eMMC

the uboot searches extlinux.conf and kernel in a order :

  • SDMMC
  • eMMC
  • USB

MaskRom mode

The bootstrapping code (the MASKROM loader) lives in the SoC ROM.

If no bootable medium is found or none contains a valid bootloader, the bootstrapping code initializes the USB in device mode (OTG). In this mode, it is possible to download firmware (second stage bootloader) to the SoC via USB OTG. The actual transfer uses a special RockChip MASKROM bootloader protocol.

标签:searches,code,uboot,RK3566,Sequence,Boot,spl,bootloader
From: https://www.cnblogs.com/zxdplay/p/17978680

相关文章

  • Beautiful Bracket Sequence (easy version)
    传送门。题意一个含未知字符的括号序列,一个括号序列的权值是这个括号序列的最大深度。问所有可能的括号序列的权值和为多少。分析我们寻找一下深度的快速计算方式。可以发现两个巧妙的性质。以某一个位置分割,左边的左括号数量和右边的右括号数量的较小值就是这个位置的最大......
  • SpringBoot项目通过注解快速解决,字典翻译,响应数据加密,数据脱敏等问题
    简介在几乎所有SpringBoot项目中都会面临字典翻译,接口数据加密,数据脱敏的问题。在每个接口中单独的解决会非常繁琐,因此接下来介绍一下怎么通过注解快速解决这些问题。实现步骤1.引入maven坐标<dependency><groupId>io.gitee.gltqe</groupId>......
  • Canal 结合spring boot项目开发
    转载请注明出处: Canal使用和安装总结 : https://www.cnblogs.com/zjdxr-up/p/179777061.数据库准备在数据库修改user表的数据,通过canal服务将数据库修改的数据同步到java的spring服务中,以user表为例,以下为表结构和数据准备:CREATETABLE`user`(`id`bigintNOT......
  • SpringBoot集成MybatisPlus
    1、添加依赖<!--mybatis-plus启动器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><!--mybatis-plus代码生成器--><depe......
  • 在 SpringBoot 项目中使用 MDC 实现日志 traceId 的统一
    前言在项目中,对于每一次请求,我们都需要一个traceId将整个请求链路串联起来,这样就会很方便我们根据日志排查问题。但是如果每次打印日志都需要手动传递traceId参数,也会很麻烦,MDC就是为了解决这个场景而使用的。注:这里我们使用slf4j+logbacklogback配置logback.xml......
  • RabbitMQ学习五 springboot连接RabbitMQ
    一、入门引入依赖在springboot中引入spring-amqp-starter<!--amqp的起步依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>编写配置文件spring:rabbitmq......
  • Spring Boot 中使用Caffeine缓存的简单例子
    Caffeine缓存是Java的高性能缓存库。本文简单记录下Caffeine缓存的用法。依赖配置<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency&g......
  • 面试官:SpringBoot如何实现缓存预热?
    缓存预热是指在SpringBoot项目启动时,预先将数据加载到缓存系统(如Redis)中的一种机制。那么问题来了,在SpringBoot项目启动之后,在什么时候?在哪里可以将数据加载到缓存系统呢?实现方案概述在SpringBoot启动之后,可以通过以下手段实现缓存预热:使用启动监听事件实现缓存预热。使......
  • springboot多模块项目(微服务项目)正确打包(jar)方式
    大致步骤新建一个springboot项目名称为父亲添加父快捷方式。新建子模块,子模块同时插入新建springboot的项目,依次创建enty和web模块(关键是并配置好pom文件)web模块依赖于entiy模块中的实体类,创建测试控制器,先测试项目没问题再开始打包(jar)开始打包测试jar是否有用创建项目注意点:子模......
  • springBoot项目正确认识打war包方式(含打包代码链接)
    一:新建一个普普通通的springBoot项目二:并且编写测试controller@RequestMapping@RestControllerpublicclassController{@RequestMapping("/zzh")publicStringtoString(){return"zzh666";}}三:改造启动类(重点)主要就是继承SpringBootServletInitiali......