文件名称:
u-boot2017.01启动过程分析.pdf
开发工具:
文件大小: 4mb
下载次数: 0
上传时间: 2019-10-31
详细说明:u-boot2017.01启动过程分析,以ppt的方式对uboot2017.11的启动过程进行分析,主要分析了启动过程函数的调用过程、版本信息和启动过程概述
启动过程概述SPL阶段分析u-boot阶段分析u-boot加载内核
版太信扇工具链
指令集
启动过程概述SPL阶段分析u-boot阶段分析u-boot加载内核
固化在心片内部的代码,用于引导加载程序,
然后跳转转到第二级
初始化硬件,关闭看门狗,关中断,
初始化时钟、
,跳转转到第三级
初始化大部分硬件,读取环境变量,
执行用户命令,引导加载内核
内核启动,挂载跟文件系统,执行应用程序
启动过程概述SPL阶段分析u-boot阶段分析u-boot加载内核
Table 26-7. SYSBOOT Configuration Pins[4]
Booting
SYSBOQT[15: 14SYSBOQT[13: 12 SYSBQDT[11: 10 SYSBOOT[9] SYSBOOT((8] SYSBOQT[T: 6] SYSBDQT[5]SYSBOOT[4: 01
Boot Sequence
For all boot
For all boot For XIP boot: For NAND and For XIP boot: For EMAC For all boat
根据Boot引脚配置
Sct toUred
NANDI2C
Bus width
boot: PHy modes
OCo for nano
boot NAND
CL
LKOUT
operafion
选定启动器件列表
For NaNd boot ECC
For Fast
en abled'disable
处理下一个器件
CONTROL
CONTRC
CONTROL
CONTROL
GONTROL
GONTROL
处理一个器件
STATUS(23: 22]STATUS(21: 20 STATUS(19 18] STATUSI17STATUSI1BJSTATUSI7-E STATUSI5J STATUS(4: 0)
器件是存储器
成功成功
器件是外设
0Ub=19.2MH2
For XIP boot. Dcn't care for 0=8-bit device Don't care for 0-CLKCUT100001b
IPw! MMCOSPIO
01b-24MH2(all other values 0ab-non-muxed ROM code[]1-16-bit
ROM code
disabled
WAIT
10b=25MH
1=LKCUT1
存储器
外设
11b=26MH2
1b muxcd
enabled
启动
跳转到
00b=192MHz
For NAND boot: o=ECC done Don't care for Don't care for 0=CLKOUT1 00010b
ARTO SPIO
NAND
NANDI2C
all other values must be ODb
by RCm
ROM code
ROM code
disable
失败
初始化软件
失败死循环
1=ECC
1=CLKCUT1
11b=26MH>
hand led by
NAND
超时
n0b=19.?Hz
For XIP boot
Don' t care for a-8-bit device Don't care for Q-CLKCUT1 0001
ARTO SPl0
MMCC
01b-24MH2(all other values0ab-non-muxed RCMl code
disabled
(MUX2 2
10b= 25MHZ
device
1=cLRGUT1
11b≡26MHz
ab= muxcd
enabled
选下一个器件P列表中最后一个器件?
xb= reserved
No more deices in the list
启动过程概述SPL阶段分析u-boot阶段分析u-boot加载内核
ARM Cortex-A8 Memory Map
Table 2-1. L3 Memory Map
Figure 26-6. Public RAM Memory Map
Block name
Start address(hex)
End address(hex)
Size
Description
0x403OFFFF
GPMC
0xOo00o000(
0x1FFF FFFF
512MB
B-/16-bit External Memory
Tracing Data
(External Memory)
(Ex/R/W))
nzdC.30CFonL EXtVectors
Reserved
0x2000C00
0x3FFF FFFF
512MB
Reserved
EKE Public stack
0x430E80
Boot rom
Qx4000c000
Cx4001 FFFF
128KB
ublic RaM
109KB
0x4002C200
Cx4002 BFFF
48K3
32-btEκR(2)- Public
Reserved
0×4002c000
Cx40CF FFFF
848KB
Reserved
Reserved
0x4010C300
CX401F FFFF
1MB
Reserved
DOwnloaded Image
Reserved
0x4020C000
0X402E FFFF
Reserved
0x402F0400GP
Reserved
Ox402F0D00
0x402F03FF
64K3
Reserved
SRAM internal
0x402F400
CX402F FFFF
32-bit EX/R/W(2)
Figure 26-7, Public RAM Memory Map
L3 OCMCO
0x4030C000
C×4030FFF64K3
32-bit EX/R/() OCMC SRAM
Reserved
0x4031C500
Cx403F FFFF
96CKB
Reserved
0x4C30cE00
RAM EXC Vectors
RAM
Reserved
0x4040C000
Cx4041 FFFF
128KB
Reserved
KE Public slack
Reserved
0x4042c00
Cx404F FFFF
896KB
Reserved
0x4030E800
Reserved
0x4050C000
C×405 F FFFF
1MB
Reserved
Reserved
0x4060C000
Cx407F FFFF
2MB
Reserved
Reserved
0x4080C00
0x4083 FFFF
256K
Reserved
Downloaded Image
Reserved
0x4084C200
0x40DF FFFF
5888KB
Reserved
0x40300000'HS
Reserved
0x40E00000
CX40EC 7FFF
32K3
Reserved
0x402F0u00GP1
D。Wn| oad Image
This area is used by the public rom Code to store the downloaded boot image. It can be up to 109KB on
the GP DeviCe and 46KB for the hs device
2、SPL启动阶段分析
启动过程概述SPL阶段分析u-boot阶段分析u-boot加载内核
u-boot-spl. lds(arch/armfcpu/armv7/sunx-/u-boot-spl Ids)
12345∈78
-> vectors. s(arch/arm/lib/vectors. s)
1-> start. s(arch/arm/ cpu/armv7/start. 3)
1--> save boot
l-->/*set svC mode
disable FIQ and IrQ*/
I--> cpu init cp15(arch/arr.cpu/ar7/start. s) /*disable MMU stuff and caches*/
cpu init crit(arch/ar/cpu/armv7/start.s)
1>1。w1ev61init(axeh/an/=u/am7/1=M1e11nit,a)/*板级初始化,设置栈空问+
I->sinit(arch/arm/mach-ompa/ am33xx/board. c)
I-->rt.c: only(arch/ arm/mach-omna2/am.3xx/hoard.c)
11
I--> nain(arch/arm/lib/crt.s
12
I--> board init f(arch/arm/'mach-ompa2/an33xx/board.c)
1--> early system init(arch/arm/mach-ompa2/am33xx/board. o
-> wat chdag cisah∈(Exch/axm/mach-ama2/am33x/kaxd.c)禁止看门狗*/
>set uart ux conf (board/ti/am335x/board. c)
*设置串口
16
> setup early clocks(arch/arm/mach ompa2/am33xx/c_ock. c)
1--> uart soft reset(arch/arm/mach-ompa2/am33xx/board. c)
18
1--> board sarly iait f(arch/a m/mach-cmpa2/am33x/bcard.c)
19
1--> pyc init(arch/arn/mach-ompa2/am33xx/clockc)
2
1--> skI. IIx
sdram init(board/ti/a m335x/board. c)
/*初始化DDR*f
axd init r(emcn/p⊥/=p⊥.g
I--> 3->bd &bdata
d是保存在x9寄存器的,即r9保存的是指向 gdata的指针
24
> tier 111t(ax-h/arm/=pu/axm/sni/ timer.2)/*初始化时钟4/
25
I--> spl board init(arch/arm/mach-omap2/boot-common. c)
26
>sav=_cmap_ bootparams(arch/axm/ mach onap2/ bcot commo-,c)/保在启动的 device和me+
27
1--> preloader console init( Common/sp1/=p1.c)/*初始化cd部分数据绪构波特率*/
Bella1init( driver8/gxia1/ Sera1.c)/*市口初始化*
133x5p1 board init()/设置频率
1->:H1Frm:3:::m/:1/:1:
31
1--> spl l1 fi: d loader(common/spl/ spl. c)
32
-->⊥⊥ cntry start(n⊥udc/⊥ ncr⊥it2,h)
33
I-->SFL LOAD IMAGE METHOD("MMC1", 0, BOOT DEVICE MMCI, spl mc oad image)(commmon/spl/spl mmc. c)
34
I--> spl ILac load image(common/spl/sel Inc. c)
35
1-->Lac load image raw os(common/sp_/spl mmc. c)
36
mmc load legacy(common/apl/spl rumc. c)
37
|-->spl parse image header(common/spl/spl. c) /*Ft header
38
1--> jump to image no args(common/spl/apl
35
nage entry/*结s过程,跳转到u-bt*/
启动过程概述SPL阶段分析u-boot阶段分析u-boot加载内核
设置,关中断
>,关闭和
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.