[Linux]u-boot_2014移植(三)设置时钟 修改内存
[Linux]u-boot_2014移植(三)设置时钟、修改内存
艾恩凝
2021/6/4
一、设置时钟
start.S
该文件在 arch/arm/cpu/arm920t 下
注释掉
1 /* FCLK:HCLK:PCLK = 1:2:4 */
2 /* default FCLK is 120 MHz ! */
3 ldr r0, =CLKDIVN
4 mov r1, #3
5 str r1, [r0]
替换为
1 /* 2. 设置时钟 */
2 /* CLKDIVN(0x4C000014) = 0X5, tFCLK:tHCLK:tPCLK = 1:4:8 */
3 ldr r0, =0x4C000014
4 ldr r1, =0x5
5 str r1, [r0]
6
7 /* 设置CPU工作于异步模式 */
8 mrc p15,0,r0,c1,c0,0
9 orr r0,r0,#0xc0000000 //R1_nF:OR:R1_iA
10 mcr p15,0,r0,c1,c0,0
11
12 /* 设置MPLLCON(0x4C000004) = (92<<12)|(1<<4)|(1<<0)
13 * m = MDIV+8 = 92+8=100
14 * p = PDIV+2 = 1+2 = 3
15 * s = SDIV = 1
16 * FCLK = 2*m*Fin/(p*2^s) = 2*100*12/(3*2^1)=400M
17 */
18 ldr r0, =0x4C000004
19 ldr r1, =(92<<12)|(1<<4)|(1<<0)
20 str r1, [r0]
21
22 /* 启动ICACHE */
23 mrc p15, 0, r0, c1, c0, 0 @ read control reg
24 orr r0, r0, #(1<<12)
25 mcr p15, 0, r0, c1, c0, 0 @ write it back
26
smdk2440.c
在这个文件夹下 C函数 board_init_f 中,注释掉下面几行,关于时钟的
1
2 /* to reduce PLL lock time, adjust the LOCKTIME register */
3 //writel(0xFFFFFF, &clk_power->locktime);
4
5 /* configure MPLL */
6 //writel((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV,
7 // &clk_power->mpllcon);
smdk2440.h
这个文件中,将
1#define CONFIG_S3C2410
改为
1#define CONFIG_S3C2440
注释掉
1#define CONFIG_CMD_NAND
2#define CONFIG_YAFFS2
二、设置内存
汇编函数 lowlevel_init.S 代码段最后,将
1 .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
2 .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
3 .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
4 .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
5 .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
6 .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
7 .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
8 .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
9 .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
10 .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
11 .word 0x32
12 .word 0x30
13 .word 0x30
替换为
1 .long 0x22111110 //BWSCON
2 .long 0x00000700 //BANKCON0
3 .long 0x00000700 //BANKCON1
4 .long 0x00000700 //BANKCON2
5 .long 0x00000700 //BANKCON3
6 .long 0x00000740 //BANKCON4
7 .long 0x00000700 //BANKCON5
8 .long 0x00018005 //BANKCON6
9 .long 0x00018005 //BANKCON7
10 .long 0x008e07a3 //REFRESH,HCLK=12MHz:0x008e07a3,HCLK=100MHz:0x008e04f4
11 .long 0x000000b2 //BANKSIZE
12 .long 0x00000030 //MRSRB6
13 .long 0x00000030 //MRSRB7
end
时钟这样就修改成功了
u-boot移植系列目录
上一篇[Linux]u-boot_2014移植(二)创建单板
下一篇[Linux]u-boot_2014移植(四)支持nand启动
吾心信其可行,
则移山填海之难,
终有成功之日!
——孙文
则移山填海之难,
终有成功之日!
——孙文
评论
0 评论