Android系统10 RK3399 init进程启动(三) 初识RK3399芯片

 配套系列教学视频链接:

      安卓系列教程之ROM系统开发-百问100ask

说明

系统:Android10.0

设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)

前言

        本文简单介绍一下RK3399芯片的一些特性,大部分资料内容都来自数据手册和FireFly官网,整理出来让大家快速了解这个芯片


一, 整体框图

RK3399中, 2xA53运行低功耗的任务, 对于需要更多运算能力的应用程序, 就会用到4xA73 CPU,另外加上了双核cotext-m0,通过上图,可以上图可以看到RK3399对于多媒体的功能还是非常强悍的。

二, 内存布局

 RK3399支持从内部bootrom启动,支持软件编程remap功能。重映射由 SGRF_PMU_CON0[15] 控制。当 remap 设置为 0 时,0xFFFF0000 地址被映射到 bootrom。当 remapis 设置为 1 时,0xFFFF0000 地址被映射到 INTMEM0。

三, 系统启动

RK3399提供从片外设备启动系统,如serial nand or nor flash、eMMC内存、SD/MMC卡。当这些设备中的启动代码没有准备好时,还可以通过 USB OTG 接口将系统代码下载到各个外设存储中。所有引导代码都将存储在内部 bootrom 中。以下是存储在bootrom中的启动代码的整个启动过程

其中支持以下功能:

  1. 支持安全启动模式和非安全启动模式
  2. 支持系统从以下设备启动:

                 SPI接口

                 eMMC接口

                 SD/MMC卡

       3, 支持系统代码通过USB OTGF下载

下图显示了RK3399启动程序流程,参考:https://dev.t-firefly.com/thread-12592-1-1.html

 

RK3399有三种启动模式:

  1.  Normal模式是正常的启动过程,各个组件依次加载,直到正常进入系统。
  2. Loader模式会让bootloader进入升级状态,等待主机命令,用于固件升级等。Firefly-RK3399要进入Loader模式,需要在bootloader启动时检测到RECOVERY(恢复)键被按下,并且USB处于和PC连接的状态。
  3. MaskRom模式是设备变砖的最后一条防线,用于bootloader损坏时进行系统修复。一般情况下是不用进入MaskRom模式的,只有在设备进入不了Loader模式(bootloader校验失败,读取不了IDR块,或bootloader损坏)、SD卡启动也失效的情况下,BootRom代码才会进入MaskRom模式。此时BootRom代码等待主机通过USB接口传送bootloader代码,传送完成后进行加载并运行,并进入Loader模式。

以上流程为: 

  1. 上电后, A53核心从0xffff0000这个地址读取第一条指令,这个内部ROM在芯片出货的时候已经由原厂烧写。
  2. 依次从Nor Flash、Nand Flash、eMMC、SD/MMC中校验ID BLOCK,这个块地址一般是从0x40到0x2000。

如果校验ID BLOCK成功就会读取部分bootloader代码到内部SRAM, 然后bootloader代码对DDR进行初始化、将外部的存储的完整的bootloader,os加载到DDR进行运行;反之就会初始化USB下载口,进入Maskrom模式,等待下载固件到引导媒介。

四,相关论坛学习资料

FireFly RK3399资源共享

资源分享 - Firefly开源社区资源分享

Firefly-RK3399 试用体验-MaskRom模式:

【Firefly-RK3399 试用体验】05-MaskRom模式 - Firefly-RK3399 - Firefly开源社区【Firefly-RK3399 试用体验】05-MaskRom模式

RK3399《CPU-Freq开发指南 V1.0.1》

【资源共享】RK3399《CPU-Freq开发指南 V1.0.1》 - Firefly-RK3399 - Firefly开源社区【资源共享】RK3399《CPU-Freq开发指南 V1.0.1》

Rockchip《U-Boot 开发指南 V3.7》

【资源共享】Rockchip《U-Boot 开发指南 V3.7》 - Firefly-RK3399 - Firefly开源社区【资源共享】Rockchip《U-Boot 开发指南 V3.7》

RK3399《Rockchip USB 开发指南 V1.0》

【资源共享】RK3399《Rockchip USB 开发指南 V1.0》 - Firefly-RK3399 - Firefly开源社区【资源共享】RK3399《Rockchip USB 开发指南 V1.0》

 总结

 一般了解一个新的芯片, 可以快速的去读取datasheet前面的介绍,可以了解到框图, 内存布局, 中断号,系统启动等相关信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旗浩QH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值