[Linux]简易BootLoader

[Linux]简易BootLoader

艾恩凝

2021/5/25

Introduction

最简单的BootLoader,说白了就是裸机程序,用来启动内核。

BootLoader相当于windows中的bios,引导windows

Code

257.png

start.S

 1
 2.text
 3.global _start
 4_start:
 5
 6/* 1. 关闭看门狗 */
 7    ldr r0, =0x53000000
 8    mov r1, #0
 9    str r1, [r0]
10/* 2. 设置时钟 */
11	/* CLKDIVN(0x4C000014) = 0X5, tFCLK:tHCLK:tPCLK = 1:4:8  */
12	ldr r0, =0x4C000014
13	ldr r1, =0x5
14	str r1, [r0]
15
16	/* 设置CPU工作于异步模式 */
17	mrc p15,0,r0,c1,c0,0
18	orr r0,r0,#0xc0000000   //R1_nF:OR:R1_iA
19	mcr p15,0,r0,c1,c0,0
20
21    /* 设置MPLLCON(0x4C000004) = (92<<12)|(1<<4)|(1<<0) 
22	 *  m = MDIV+8 = 92+8=100
23	 *  p = PDIV+2 = 1+2 = 3
24	 *  s = SDIV = 1
25	 *  FCLK = 2*m*Fin/(p*2^s) = 2*100*12/(3*2^1)=400M
26	 */
27	ldr r0, =0x4C000004
28	ldr r1, =(92<<12)|(1<<4)|(1<<0)
29	str r1, [r0]
30  
31	/* 启动ICACHE */
32	mrc p15, 0, r0, c1, c0, 0	@ read control reg
33	orr r0, r0, #(1<<12)
34	mcr	p15, 0, r0, c1, c0, 0   @ write it back
35/* 3. 初始化SDRAM*/
36    ldr r0, =0x48000000
37    adr r1, sdram_config
38    add r3, r0, #52
391:
40    ldr r2, [r1], #4
41    str r2, [r0], #4
42    cmp r0, r3
43    bne 1b
44/* 4. 重定位*/
45    ldr sp, =0x34000000
46
47    bl nand_init
48
49    mov r0, #0
50    ldr r1, =_start
51    ldr r2, =__bss_start
52    sub r2, r2, r1
53
54    bl copy_code_to_sdram
55    bl clean_bss
56/* 5. 执行main*/
57    ldr lr, =halt
58    ldr pc, =main
59
60halt:
61    b halt
62sdram_config:
63	.long 0x22111110		//BWSCON
64	.long 0x00000700		//BANKCON0
65	.long 0x00000700		//BANKCON1
66	.long 0x00000700		//BANKCON2
67	.long 0x00000700		//BANKCON3
68	.long 0x00000700		//BANKCON4
69	.long 0x00000700		//BANKCON5
70	.long 0x00018005		//BANKCON6
71	.long 0x00018005		//BANKCON7
72	.long 0x008e07a3		//REFRESH,HCLK=12MHz:0x008e07a3,HCLK=100MHz:0x008e04f4
73	.long 0x000000b2		//BANKSIZE
74	.long 0x00000030		//MRSRB6
75	.long 0x00000030		//MRSRB7
76
77

Conclusion

BootLoader需要学习的地方有很多,主要部分明白了,uboot学习的地方有很多。

BootLoader下载链接 这是学习写的BootLoader


    


公众号'技术乱舞'
个人公众号
个人微信
个人微信
    吾心信其可行,
          则移山填海之难,
                  终有成功之日!
                                  ——孙文
    评论
    0 评论
avatar

取消