@ -32,6 +32,15 @@
# define S D M C _ B 0 _ B S R _ D C O N F I G _ S Y S _ F T S D M C 0 2 1 _ B A N K 0 _ B S R
# define S D M C _ B 0 _ B S R _ D C O N F I G _ S Y S _ F T S D M C 0 2 1 _ B A N K 0 _ B S R
# define S D M C _ B 1 _ B S R _ D C O N F I G _ S Y S _ F T S D M C 0 2 1 _ B A N K 1 _ B S R
# define S D M C _ B 1 _ B S R _ D C O N F I G _ S Y S _ F T S D M C 0 2 1 _ B A N K 1 _ B S R
/ *
* for O r c a a n d E m e r a l d
* /
# define B O A R D _ I D _ R E G 0 x10 4
# define B O A R D _ I D _ F A M I L Y _ M A S K 0 x f f f00 0
# define B O A R D _ I D _ F A M I L Y _ V 5 0 x55 6 0 0 0
# define B O A R D _ I D _ F A M I L Y _ K 7 0 x74 b00 0
/ *
/ *
* parameters f o r t h e s t a t i c m e m o r y c o n t r o l l e r
* parameters f o r t h e s t a t i c m e m o r y c o n t r o l l e r
* /
* /
@ -47,6 +56,10 @@
# define A H B C _ C R _ A ( C O N F I G _ F T A H B C 0 2 0 S _ B A S E + F T A H B C 0 2 0 S _ C R )
# define A H B C _ C R _ A ( C O N F I G _ F T A H B C 0 2 0 S _ B A S E + F T A H B C 0 2 0 S _ C R )
# define A H B C _ B S R 6 _ A ( C O N F I G _ F T A H B C 0 2 0 S _ B A S E + F T A H B C 0 2 0 S _ S L A V E _ B S R _ 6 )
# define A H B C _ B S R 6 _ A ( C O N F I G _ F T A H B C 0 2 0 S _ B A S E + F T A H B C 0 2 0 S _ S L A V E _ B S R _ 6 )
/ *
* for O r c a a n d E m e r a l d
* /
# define A H B C _ B S R 4 _ A ( C O N F I G _ F T A H B C 0 2 0 S _ B A S E + F T A H B C 0 2 0 S _ S L A V E _ B S R _ 4 )
# define A H B C _ B S R 6 _ D C O N F I G _ S Y S _ F T A H B C 0 2 0 S _ S L A V E _ B S R _ 6
# define A H B C _ B S R 6 _ D C O N F I G _ S Y S _ F T A H B C 0 2 0 S _ S L A V E _ B S R _ 6
/ *
/ *
@ -100,14 +113,49 @@ mem_init:
* we n e e d t o s e t o n b o a r d S D R A M b e f o r e r e m a p a n d r e l o c a t i o n .
* we n e e d t o s e t o n b o a r d S D R A M b e f o r e r e m a p a n d r e l o c a t i o n .
* /
* /
led 0 x01
led 0 x01
write3 2 S M C _ B A N K 0 _ C R _ A , S M C _ B A N K 0 _ C R _ D ! 0 x10 0 0 0 0 5 2
write3 2 S M C _ B A N K 0 _ T P R _ A , S M C _ B A N K 0 _ T P R _ D ! 0 x00 1 5 1 1 5 1
/ *
* for O r c a a n d E m e r a l d
* disable w r i t e p r o t e c t i o n a n d r e s e t b a n k s i z e
* /
li $ r0 , S M C _ B A N K 0 _ C R _ A
lwi $ r1 , [ $ r0 + #0x00 ]
ori $ r1 , $ r1 , 0 x8 f0
xori $ r1 , $ r1 , 0 x8 f0
/ *
* check b o a r d
* /
li $ r3 , C O N F I G _ F T P M U 0 1 0 _ B A S E + B O A R D _ I D _ R E G
lwi $ r3 , [ $ r3 ]
li $ r4 , B O A R D _ I D _ F A M I L Y _ M A S K
and $ r3 , $ r3 , $ r4
li $ r4 , B O A R D _ I D _ F A M I L Y _ K 7
xor $ r4 , $ r3 , $ r4
beqz $ r4 , u s e _ f l a s h _ 1 6 b i t _ b o o t
/ *
* 3 2 - bit m o d e
* /
use_flash_32bit_boot :
ori $ r1 , $ r1 , 0 x50
li $ r2 , 0 x00 1 5 1 1 5 1
j s d r a m _ b0 _ c r
/ *
* 1 6 - bit m o d e
* /
use_flash_16bit_boot :
ori $ r1 , $ r1 , 0 x60
li $ r2 , 0 x00 1 5 3 1 5 3
/ *
* SRAM b a n k 0 c o n f i g
* /
sdram_b0_cr :
swi $ r1 , [ $ r0 + #0x00 ]
swi $ r2 , [ $ r0 + #0x04 ]
/ *
/ *
* config A H B C o n t r o l l e r
* config A H B C o n t r o l l e r
* /
* /
led 0 x02
led 0 x02
write3 2 A H B C _ B S R 6 _ A , A H B C _ B S R 6 _ D
/ *
/ *
* config P M U c o n t r o l l e r
* config P M U c o n t r o l l e r
@ -194,7 +242,16 @@ relo_base:
* a F L A S H c o n n e c t e d t o b a n k 0 .
* a F L A S H c o n n e c t e d t o b a n k 0 .
* /
* /
led 0 x11
led 0 x11
li $ r4 , P H Y S _ S D R A M _ 0 _ A T _ I N I T / * 0 x10 0 0 0 0 0 0 * /
/ *
* for O r c a a n d E m e r a l d
* read s d r a m b a s e a d d r e s s a u t o m a t i c a l l y
* /
li $ r5 , A H B C _ B S R 6 _ A
lwi $ r8 , [ $ r5 ]
li $ r4 , 0 x f f f00 0 0 0
and $ r4 , $ r4 , $ r8
li $ r5 , 0 x0
li $ r5 , 0 x0
la $ r1 , r e l o _ b a s e / * g e t $ p c o r $ l p * /
la $ r1 , r e l o _ b a s e / * g e t $ p c o r $ l p * /
sub $ r2 , $ r0 , $ r1
sub $ r2 , $ r0 , $ r1
@ -218,6 +275,29 @@ relo_base:
write3 2 S D M C _ B 1 _ B S R _ A , 0 x00 0 0 1 0 4 0
write3 2 S D M C _ B 1 _ B S R _ A , 0 x00 0 0 1 0 4 0
setbf1 5 A H B C _ C R _ A , F T A H B C 0 2 0 S _ C R _ R E M A P ! 0 x1
setbf1 5 A H B C _ C R _ A , F T A H B C 0 2 0 S _ C R _ R E M A P ! 0 x1
/ *
* for O r c a a n d E m e r a l d
* extend s d r a m s i z e f r o m 2 5 6 M B t o 2 G B
* /
li $ r5 , A H B C _ B S R 6 _ A
lwi $ r6 , [ $ r5 ]
li $ r4 , 0 x f f f0 f f f f
and $ r6 ,$ r4 , $ r6
li $ r4 , 0 x00 0 b00 0 0
or $ r6 , $ r4 , $ r6
swi $ r6 , [ $ r5 ]
/ *
* for O r c a a n d E m e r a l d
* extend r o m b a s e f r o m 2 5 6 M B t o 2 G B
* /
li $ r4 , A H B C _ B S R 4 _ A
lwi $ r5 , [ $ r4 ]
li $ r6 , 0 x f f f f f f
and $ r5 , $ r5 , $ r6
li $ r6 , 0 x80 0 0 0 0 0 0
or $ r5 , $ r5 , $ r6
swi $ r5 , [ $ r4 ]
# endif / * #i f d e f C O N F I G _ M E M _ R E M A P * /
# endif / * #i f d e f C O N F I G _ M E M _ R E M A P * /
move $ l p , $ r11
move $ l p , $ r11
2 :
2 :