@ -149,9 +149,35 @@ asm_sbf_img_hdr:
.long 0x00030000 /* image length */
.long TEXT_BASE /* image to be relocated at */
asm_dram_init :
move. w #0x2700 ,% s r / * M a s k o f f I n t e r r u p t * /
move. l #C O N F I G _ S Y S _ I N I T _ R A M _ A D D R , % d 0
movec % d0 , % V B R
move. l #( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ C T R L ) , % d 0
movec % d0 , % R A M B A R 1 / * i n i t R a m b a r * /
movec % d0 , % R A M B A R 1
/* initialize general use internal ram */
move. l #0 , % d0
move. l #( C A C R _ S T A T U S ) , % a 1 / * C A C R * /
move. l #( I C A C H E _ S T A T U S ) , % a 2 / * i c a c h e * /
move. l #( D C A C H E _ S T A T U S ) , % a 3 / * d c a c h e * /
move. l % d0 , ( % a1 )
move. l % d0 , ( % a2 )
move. l % d0 , ( % a3 )
/* invalidate and disable cache */
move. l #0x01004100 , % d0 / * I n v a l i d a t e c a c h e c m d * /
movec % d0 , % C A C R / * I n v a l i d a t e c a c h e * /
move. l #0 , % d0
movec % d0 , % A C R 0
movec % d0 , % A C R 1
movec % d0 , % A C R 2
movec % d0 , % A C R 3
move. l #( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T ) , % s p
clr. l % s p @-
@ -163,10 +189,7 @@ asm_dram_init:
move. l #0xFC008004 , % a1
move. l #( C O N F I G _ S Y S _ C S 0 _ M A S K ) , ( % a1 )
/ *
* Dram I n i t i a l i z a t i o n
* a1 , a2 , a n d d0
* /
/* Dram Initialization a1, a2, and d0 */
/* mscr sdram */
move. l #0xFC0A4074 , % a1
move. b #( C O N F I G _ S Y S _ S D R A M _ D R V _ S T R E N G T H ) , ( % a 1 )
@ -209,24 +232,21 @@ dramsz_loop:
move. l #0xFC0B8000 , % a1 / * M o d e * /
move. l #0xFC0B8004 , % a2 / * C t r l * /
# ifdef C O N F I G _ M 5 4 4 5 5 E V B
/* Issue PALL */
move. l #( C O N F I G _ S Y S _ S D R A M _ C T R L + 2 ) , ( % a2 )
nop
# ifdef C O N F I G _ M 5 4 4 5 5 E V B
/* Issue LEMR */
move. l #( C O N F I G _ S Y S _ S D R A M _ E M O D + 0x408 ) , ( % a1 )
nop
move. l #( C O N F I G _ S Y S _ S D R A M _ M O D E + 0x300 ) , ( % a1 )
nop
move. l #1000 , % d0
wait1000 :
nop
subq. l #1 , % d0
bne w a i t 1 0 0 0
# endif
move. l #1000 , % d1
jsr a s m _ d e l a y
/* Issue PALL */
move. l #( C O N F I G _ S Y S _ S D R A M _ C T R L + 2 ) , ( % a2 )
nop
@ -246,25 +266,24 @@ wait1000:
move. l #( C O N F I G _ S Y S _ S D R A M _ M O D E ) , ( % a 1 )
nop
move. l #( C O N F I G _ S Y S _ S D R A M _ E M O D ) , ( % a 1 )
nop
# endif
move. l #500 , % d0
wait500 :
nop
subq. l #1 , % d0
bne w a i t 5 0 0
move. l #500 , % d1
jsr a s m _ d e l a y
move. l #( C O N F I G _ S Y S _ S D R A M _ C T R L ) , % d 0
and. l #0x7FFFFFFF , % d0
move. l #( C O N F I G _ S Y S _ S D R A M _ C T R L ) , % d 1
and. l #0x7FFFFFFF , % d1
# ifdef C O N F I G _ M 5 4 4 5 5 E V B
or. l #0x10000c00 , % d0
or. l #0x10000C00 , % d1
# elif d e f i n e d ( C O N F I G _ M 5 4 4 5 1 E V B )
or. l #0x10000000 , % d0
or. l #0x10000C00 , % d1
# endif
move. l % d0 , ( % a2 )
move. l % d1 , ( % a2 )
nop
move. l #2000 , % d1
jsr a s m _ d e l a y
/ *
* DSPI I n i t i a l i z a t i o n
* a0 - g e n e r a l , s r a m - 0 x80 0 0 8 0 0 0 - 3 2 , s e e M 5 4 4 5 5 E V B . h
@ -274,6 +293,7 @@ wait500:
* a4 - D s t a d d r
* /
/* Enable pins for DSPI mode - chip-selects are enabled later */
asm_dspi_init :
move. l #0xFC0A4063 , % a0
move. b #0x7F , ( % a0 )
@ -367,27 +387,29 @@ asm_dspi_rd_status:
move. b ( % a3 ) , % d1
rts
asm_delay :
nop
subq. l #1 , % d1
bne a s m _ d e l a y
rts
# endif / * C O N F I G _ C F _ S B F * /
.text
. = 0 x4 0 0
.globl _start
_start :
# if ! d e f i n e d ( C O N F I G _ C F _ S B F )
nop
nop
move. w #0x2700 ,% s r / * M a s k o f f I n t e r r u p t * /
/* Set vector base register at the beginning of the Flash */
# if d e f i n e d ( C O N F I G _ C F _ S B F )
move. l #T E X T _ B A S E , % d 0
movec % d0 , % V B R
# else
move. l #C O N F I G _ S Y S _ F L A S H _ B A S E , % d 0
movec % d0 , % V B R
move. l #( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ C T R L ) , % d 0
movec % d0 , % R A M B A R 1
# endif
/* initialize general use internal ram */
move. l #0 , % d0
@ -411,6 +433,7 @@ _start:
the f i r s t c - c o d e * /
move. l #( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T ) , % s p
clr. l % s p @-
# endif
move. l #_ _ g o t _ s t a r t , % a 5 / * p u t r e l o c a t i o n t a b l e a d d r e s s t o a5 * /
@ -532,7 +555,7 @@ icache_enable:
move. l #0x00040100 , % d0 / * I n v a l i d a t e i c a c h e * /
movec % d0 , % C A C R
move. l #( C O N F I G _ S Y S _ S D R A M _ B A S E + 0x1c 000 ) , % d0 / * S e t u p i c a c h e * /
move. l #( C O N F I G _ S Y S _ S D R A M _ B A S E + 0xC 000 ) , % d0 / * S e t u p i c a c h e * /
movec % d0 , % A C R 2
move. l #0x04088020 , % d0 / * E n a b l e b c a c h e a n d i c a c h e * /