⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu_init.s

📁 s3c6410的 Uboot 代码, 感兴趣的可以看看呀
💻 S
字号:
#include <config.h>#include <s3c2412.h>#define BANKCFG_OFFSET	0x00#define BANKCON1_OFFSET	0x04#define BANKCON2_OFFSET	0x08#define BANKCON3_OFFSET	0x0c#define REFRESH_OFFSET	0x10#define TIMEOUT_OFFSET	0x14@@ sdr_ram_asm_init: Initialize memory controller@	.globl sdr_ctrl_asm_initsdr_ctrl_asm_init:	mov	r1, pc	ldr	r2, =0x00000fff	orr	r1, r1, r2	and	r0, r0, r1	/* read setting value from structure */	ldr	r4, =ELFIN_MEMCTL_BASE	ldmia	r0!, {r5-r9}	stmia	r4!, {r5-r9}#ifdef CONFIG_PM        /* compare INFORM2 register to confirm the dram type*/        ldr     r1, =INFORM2_REG        ldr     r1, [r1]        ldr     r2, =0xDA        cmp     r2, r1                ldreq   r4, =ELFIN_MEMCTL_BASE        beq     1002f#endif  1000:	ldr	r4, =ELFIN_MEMCTL_BASE	/* Step 1: issue PALL */	ldr	r1, [r4, #BANKCON1_OFFSET]	bic	r1, r1, #0x3	orr	r1, r1, #0x1	str	r1, [r4, #BANKCON1_OFFSET]	/* Step 2: write 0xff into the refresh timer */	mov	r1, #0xff	str	r1, [r4, #REFRESH_OFFSET]	/* Step 3: wait more than 120 clk */	mov	r1, #0x1001:	subs	r1, r1, #1	bne	1b	/* Step 4: issue MRS */	ldr	r1, [r4, #BANKCON1_OFFSET]	bic	r1, r1, #0x3	orr	r2, r1, #0x2	str	r2, [r4, #BANKCON1_OFFSET]	/* Step 5: nornal operation value into the refresh timer */	str	r9, [r4, #REFRESH_OFFSET]	/* Step 6: issue EMRS */	orr	r2, r1, #0x3	str	r2, [r4, #BANKCON1_OFFSET]	/* Step 7: Normal Mode */	orr	r2, r1, #0x0	str	r2, [r4, #BANKCON1_OFFSET]#ifdef CONFIG_SDRAM_AUTO_DETECT	ldr 	r6, =PHYS_SDRAM_1	ldr	r7, =0x24564236	swp	r8, r7, [r6]	swp	r5, r8, [r6]	cmp	r7, r5	beq	1001f1002:	ldr	r5, =CFG_BANK_CFG_VAL_ALT	ldr	r6, =CFG_BANK_CON2_VAL_ALT	str	r5, [r4]	str	r6, [r4, #BANKCON2_OFFSET]		b	1000b1001:#endif	mov	pc, lr	.ltorg/* Below code is for ARM926EJS and ARM1026EJS */	.globl cleanDCachecleanDCache:	mrc	p15, 0, pc, c7, c10, 3	/* test/clean D-Cache */	bne	cleanDCache	mov	pc, lr	.globl cleanFlushDCachecleanFlushDCache:	mrc	p15, 0, pc, c7, c14, 3	/* test/cleanflush D-Cache */	bne	cleanFlushDCache	mov	pc, lr	.globl cleanFlushCachecleanFlushCache:	mrc	p15, 0, pc, c7, c14, 3	/* test/cleanflush D-Cache */	bne	cleanFlushCache	mcr	p15, 0, r0, c7, c5, 0	/* flush I-Cache */	mov	pc, lr	.ltorg

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -