@ -218,6 +218,8 @@ _start_e500:
bdnz 0 b
/* Clear and set up some registers. */
li r0 ,0
mtmsr r0
li r0 ,0 x00 0 0
lis r1 ,0 x f f f f
mtspr D E C ,r0 / * p r e v e n t d e c e x c e p t i o n s * /
@ -266,18 +268,17 @@ _start_e500:
* /
lis r3 ,C F G _ I N I T _ R A M _ A D D R @h
ori r3 ,r3 ,C F G _ I N I T _ R A M _ A D D R @l
li r2 ,5 1 2 / * 5 1 2 * 3 2 =16K * /
li r2 ,( C F G _ D C A C H E _ S I Z E / ( 2 * C F G _ C A C H E L I N E _ S I Z E ) )
mtctr r2
li r0 ,0
1 :
dcbz r0 ,r3
dcbtls 0 ,r0 ,r3
addi r3 ,r3 ,3 2
addi r3 ,r3 ,C F G _ C A C H E L I N E _ S I Z E
bdnz 1 b
/* Jump out the last 4K page and continue to 'normal' start */
# ifdef C F G _ R A M B O O T
bl 3 f
b _ s t a r t _ c o n t
# else
/* Calculate absolute address in FLASH and jump there */
@ -286,15 +287,9 @@ _start_e500:
ori r3 ,r3 ,C F G _ M O N I T O R _ B A S E @l
addi r3 ,r3 ,_ s t a r t _ c o n t - _ s t a r t + _ S T A R T _ O F F S E T
mtlr r3
blr
# endif
3 : li r0 ,0
mtspr S R R 1 ,r0 / * K e e p t h i n g s d i s a b l e d f o r n o w * /
mflr r1
mtspr S R R 0 ,r1
rfi
isync
.text
.globl _start
_start :
@ -701,6 +696,7 @@ in8:
.globl out8
out8 :
stb r4 ,0 x00 0 0 ( r3 )
sync
blr
/*------------------------------------------------------------------------------- */
@ -710,6 +706,7 @@ out8:
.globl out16
out16 :
sth r4 ,0 x00 0 0 ( r3 )
sync
blr
/*------------------------------------------------------------------------------- */
@ -719,6 +716,7 @@ out16:
.globl out16r
out16r :
sthbrx r4 ,r0 ,r3
sync
blr
/*------------------------------------------------------------------------------- */
@ -728,6 +726,7 @@ out16r:
.globl out32
out32 :
stw r4 ,0 x00 0 0 ( r3 )
sync
blr
/*------------------------------------------------------------------------------- */
@ -737,6 +736,7 @@ out32:
.globl out32r
out32r :
stwbrx r4 ,r0 ,r3
sync
blr
/*------------------------------------------------------------------------------- */
@ -1061,11 +1061,11 @@ unlock_ram_in_cache:
/* invalidate the INIT_RAM section */
lis r3 ,( C F G _ I N I T _ R A M _ A D D R & ~ 3 1 ) @h
ori r3 ,r3 ,( C F G _ I N I T _ R A M _ A D D R & ~ 3 1 ) @l
li r4 ,5 1 2
li r4 ,( C F G _ D C A C H E _ S I Z E / ( 2 * C F G _ C A C H E L I N E _ S I Z E ) )
mtctr r4
1 : icbi r0 ,r3
dcbi r0 ,r3
addi r3 ,r3 ,3 2
addi r3 ,r3 ,C F G _ C A C H E L I N E _ S I Z E
bdnz 1 b
sync / * W a i t f o r a l l i c b i t o c o m p l e t e o n b u s * /
isync