S3C6410 u-boot源码分析之cup_init.S
S3C6410 u-boot源码分析之cup_init.S
1、
#include <s3c6410.h>
.globl mem_ctrl_asm_init
mem_ctrl_asm_init:
ldr r0, =ELFIN_MEM_SYS_CFG@Memory sussystem address 0x7e00f120
mov r1, #0xd@ Xm0CSn2 = NFCON CS0, Xm0CSn3 = NFCON CS1
strr1, [r0]
下图的黄色部分表明这出设置的作用,但我不明白,为何要设为0xd,要实现这个目标
@ Xm0CSn2 = NFCON CS0, Xm0CSn3 = NFCON CS1,好像与此处设计无关?
注:
• Memory port 0 is shared by using EBI (External Bus Interface).
• Memory port 1 is used only by DMC1.
• EBI module supports the share of pad interface used by 5 memory controllers (SROMC, two OneNANDCs,
CFCON, and NFCON).
SHARING CHIP SELECT FOR MEMORYPORT 0
The decision of which memory controller owns specific memory bank is decided both by following three
factors.
• Booting mode
• MP0_CS_CFG regsiter residing in System Controller
• XSELNAND input port value
2、
ldrr0, =ELFIN_DMC1_BASE@DMC1 base address 0x7e001000
只读寄存器。
3、
ldr r1, =0x04
str r1, [r0, #INDEX_DMC_MEMC_CMD]
#define INDEX_DMC_MEMC_CMD (0x04)
看到下面的图,应该知道为什么了吧?
配置为:Configure模式
4、
其中有两个寄存器没赋值,如下所示:
下面那个可能采用的是默认值。而上面的是只写寄存器,可能不需要赋值。
|
评论暂时关闭