U-boot移植——1.时钟
来源:互联网 发布:淘宝联盟怎么玩 编辑:程序博客网 时间:2024/06/07 21:33
u-boot的作用是
a 硬件初始化:关看门狗,设置时钟,设置SDRAM,设置NAND
FLASH.
b 如果bootlodar比较大,要把他重定位到SDRAM
c 把内核从NAND FLASH读到SDRAM
d 设置要传给内核的参数
e 跳转执行内核
所以说在一个uboot中所需要完成的事件有
1 set the cpu to SVC32 mode
2 turn off the watchingdog
3 mask all IRQs by setting all bits in eht INTMR
4 设置时钟比例
5 设置内存控制器
6 设置栈,调用C函数board_init_f
7 调用函数数组init_sequence里的各个函数
8 重定位代码
所以说当移植u-boot时候,需要做的就是按照上面做的事情,观察u-boot是否做了,从而判断是否正确。
从头看设置模式等都是OK的,当阅读到时钟设置时
/* FCLK:HCLK:PCLK = 1:2:4 */
/* default FCLK is 120 MHz ! */
ldr r0, =CLKDIVN
mov r1, #3
str r1, [r0]
endif /* CONFIG_S3C24X0 */
/* * we do sys-critical inits only at reboot, * not when booting from ram! */
ifndef CONFIG_SKIP_LOWLEVEL_INIT
bl cpu_init_crit
endif
/* Set stackpointer in internal RAM to call board_init_f */
call_board_init_f:
ldr sp, =(CONFIG_SYS_INIT_SP_ADDR)
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
ldr r0,=0x00000000
bl board_init_f
这里设置了时钟 为120MHz,然后进行了CPU和单板的初始化
首先我们进入CPU初始化中 然后进入bl lowlevel_init,这里是对SDRAM的初始化在配置寄存器中
“`
SMRDATA:
.word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
.word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
.word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
.word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
.word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
.word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
.word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
.word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
.word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
.word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
.word 0x32
.word 0x30
.word 0x30
然而这么多并看不懂表示什么意思
点REFCNT发现
- U-boot移植——1.时钟
- U-Boot移植——设置系统时钟
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——移植u-boot-spl.bin(时钟初始化)
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——移植u-boot-spl.bin(时钟初始化)
- u-boot-2012.04.01移植笔记——时钟、SDRAM、UART
- 【Linux 移植 】——3、移植 u-boot-2012.04.01 之 修改代码(时钟,SDRAM,UART)
- U-Boot移植——Nand Flash
- U-Boot移植——设置SDRAM
- U-Boot移植——修改提示符
- U-Boot移植——Nor Flash
- 2.系统移植——u-boot
- fl2440——u-boot的移植
- 第三章、Tiny4412 U-BOOT移植三 时钟设置
- u-boot移植--1、前期准备及时钟的修改
- 移植u-boot-2012.04----建立单板_修改时钟_
- DM6467开发之U-Boot移植(2)——U-Boot移植
- DM6467开发之U-Boot移植(3)——U-Boot移植测试
- TQ2440 学习笔记—— 32、移植U-Boot【U-Boot 的移植】
- CSS从大图中抠取小图完整教程(background-position应用)【转】
- 【android学习】通过正则表达式解决数据传输过程中的堆包问题
- android圆形头像的实现类CircleImageView.java
- Android获取一个按钮的状态
- 最小堆定时器的实现以及与网络编程中的多路IO复用的应用
- U-boot移植——1.时钟
- HDU 4300(KMP)
- 最新版 bundler(不是v0.4) 的编译和使用
- C 语言中通过脚本获取mac地址
- jQuery 之 获取页面内容和属性(六)
- 开始写博客,记录一下从大四开始的生活
- GitHub常用命令
- 2016 Multi-University Training Contest 1 hdu 5723 Abandoned country【Kruskal+Dfs】好题
- 按位与、或、异或运算