;此文件被2440init.s包含(GET memcfg.inc)
;本文件主要配置内存的各个变量,供2440init.s使用
;************************************************
; NAME : MEMCFG.A
; DESC : Memory bank configuration file
; Revision: 02.28.2002 ver 0.0
; Revision: 03.11.2003 ver 0.0 Attatched for 2440
;************************************************
;Memory Area
;GCS6 32bit(64MB) SDRAM(0x3000_0000-0x33ff_ffff)
;其中[ 条件 语句组 ] 当条件满足的时候执行下面语句组,否则不执行。差不多和#if条件编译差不多 ;BANK0CON B0_Tacs EQU 0x0 ;0clk ;BANK1CON ;Bank 2 parameter ;Bank 3 parameter ;Bank 4 parameter ;Bank 5 parameter [ {TRUE} ; When 100MHz HCLK is used. ;Bank 7 parameter ;REFRESH parameter | ;Bank 7 parameter ;REFRESH parameter Tchr EQU 0x2 ;3clk
;BWSCON
;BWSCON 是一个32位的register, 对应了BANK0-BANK7, 每个BANK使用4位。
DW8 EQU (0x0)
DW16 EQU (0x1)
DW32 EQU (0x2)
WAIT EQU (0x1<<2)
UBLB EQU (0x1<<3)
ASSERT :DEF:BUSWIDTH ; def 是逻辑伪操作符,格式为: :DEF:label,作用是:判断label是否定义过
;ASSERT logical expression 对汇编程序的扫描中,如果其中ASSERT中条件不成立,ASSERT伪操作将报告该错误信息。
[ BUSWIDTH=16
B1_BWSCON EQU (DW16)
B2_BWSCON EQU (DW16)
B3_BWSCON EQU (DW16)
B4_BWSCON EQU (DW16)
B5_BWSCON EQU (DW16)
B6_BWSCON EQU (DW16)
B7_BWSCON EQU (DW16)
| ;BUSWIDTH=32 ; 2440 EV board.
B1_BWSCON EQU (DW16) ; AMD flash(AM29LV800B), 16-bit, for nCS1
B2_BWSCON EQU (DW16) ; PCMCIA(PD6710), 16-bit
B3_BWSCON EQU (DW16 + WAIT + UBLB) ; Ethernet(CS8900), 16-bit
B4_BWSCON EQU (DW32) ; Intel Strata(28F128), 32-bit, for nCS4
B5_BWSCON EQU (DW16) ; A400/A410 Ext, 16-bit
B6_BWSCON EQU (DW32) ; SDRAM(K4S561632C) 32MBx2, 32-bit
B7_BWSCON EQU (DW32) ; N.C.
]
B0_Tcos EQU 0x1 ;0clk
B0_Tacc EQU 0x7 ;14clk
B0_Tcoh EQU 0x1 ;0clk
B0_Tah EQU 0x0 ;0clk
B0_Tacp EQU 0x0
B0_PMC EQU 0x0 ;normal
B1_Tacs EQU 1;0x0 ;0clk
B1_Tcos EQU 1;0x0 ;0clk
B1_Tacc EQU 6;0x7 ;14clk
B1_Tcoh EQU 1;0x0 ;0clk
B1_Tah EQU 1;0x0 ;0clk
B1_Tacp EQU 0x0
B1_PMC EQU 0x0 ;normal
B2_Tacs EQU 1;0x0 ;0clk
B2_Tcos EQU 1;0x0 ;0clk
B2_Tacc EQU 6;0x7 ;14clk
B2_Tcoh EQU 1;0x0 ;0clk
B2_Tah EQU 1;0x0 ;0clk
B2_Tacp EQU 0x0
B2_PMC EQU 0x0 ;normal
B3_Tacs EQU 0x1;0 ;0clk
B3_Tcos EQU 0x1;0 ;0clk
B3_Tacc EQU 0x6;7 ;14clk
B3_Tcoh EQU 0x1;0 ;0clk
B3_Tah EQU 0x1;0 ;0clk
B3_Tacp EQU 0x0
B3_PMC EQU 0x0 ;normal
B4_Tacs EQU 0x0;0 ;0clk
B4_Tcos EQU 0x1;0 ;0clk
B4_Tacc EQU 0x7;7 ;14clk
B4_Tcoh EQU 0x1;0 ;0clk
B4_Tah EQU 0x0;0 ;0clk
B4_Tacp EQU 0x0
B4_PMC EQU 0x0 ;normal
B5_Tacs EQU 0x1;0 ;0clk
B5_Tcos EQU 0x1;0 ;0clk
B5_Tacc EQU 0x6;7 ;14clk
B5_Tcoh EQU 0x1;0 ;0clk
B5_Tah EQU 0x1;0 ;0clk
B5_Tacp EQU 0x0
B5_PMC EQU 0x0 ;normal
;Bank 6 parameter
B6_MT EQU 0x3 ;SDRAM
B6_Trcd EQU 0x0 ;2clk
B6_SCAN EQU 0x1 ;9bit
B7_MT EQU 0x3 ;SDRAM
B7_Trcd EQU 0x0 ;2clk
B7_SCAN EQU 0x1 ;9bit
REFEN EQU 0x1 ;Refresh enable
TREFMD EQU 0x0 ;CBR(CAS before RAS)/Auto refresh
Trp EQU 0x1 ;3clk
Tsrc EQU 0x1 ;5clk Trc= Trp(3)+Tsrc(5) = 8clock
Tchr EQU 0x2 ;3clk
;REFCNT EQU 1580 ;HCLK=60Mhz, (2048+1-7.81*60)
;REFCNT EQU 1502 ;HCLK=70Mhz, (2048+1-7.81*70)
;REFCNT EQU 1424 ;HCLK=80Mhz, (2048+1-7.81*80)
;REFCNT EQU 1346 ;HCLK=90Mhz, (2048+1-7.81*90)
;REFCNT EQU 1268 ;HCLK=100Mhz, (2048+1-7.81*100)
REFCNT EQU 489 ;HCLK=100Mhz, (2048+1-15.6*100)
;Bank 6 parameter
B6_MT EQU 0x3 ;SDRAM
B6_Trcd EQU 0x1 ;4clk
B6_SCAN EQU 0x1 ;9bit
B7_MT EQU 0x3 ;SDRAM
B7_Trcd EQU 0x2 ;4clk
B7_SCAN EQU 0x1 ;9bit
REFEN EQU 0x1 ;Refresh enable
TREFMD EQU 0x0 ;CBR(CAS before RAS)/Auto refresh
Trp EQU 0x2 ;4clk
Tsrc EQU 0x2 ;6clk Trc= Trp(4)+Tsrc(6) = 10clock
REFCNT EQU 1012 ;HCLK=135Mhz, (2048+1-7.8*133 = 1012)
]
END