歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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、

其中有兩個寄存器沒賦值,如下所示:



下面那個可能采用的是默認值。而上面的是只寫寄存器,可能不需要賦值。

Copyright © Linux教程網 All Rights Reserved