@ -12,15 +12,15 @@ OUTPUT_FORMAT("elf32-microblaze", "elf32-microblaze", "elf32-microblaze")
OUTPUT_ A R C H ( m i c r o b l a z e )
ENTRY( _ s t a r t )
# include < a s m - g e n e r i c / v m l i n u x . l d s . h >
# include < a s m / p a g e . h >
# include < a s m - g e n e r i c / v m l i n u x . l d s . h >
# include < a s m / t h r e a d _ i n f o . h >
jiffies = j i f f i e s _ 6 4 + 4 ;
SECTIONS {
. = CONFIG_ K E R N E L _ S T A R T ;
.text : {
.text : AT( A D D R ( . t e x t ) - L O A D _ O F F S E T ) {
_ text = . ;
_ stext = . ;
* ( .text .text . * )
@ -35,9 +35,12 @@ SECTIONS {
}
. = ALIGN ( 4 ) ;
_ fdt_ s t a r t = . ; /* place for fdt blob */
. = . + 0 x4 0 0 0 ;
_ fdt_ e n d = . ;
_ _ fdt_ b l o b : A T ( A D D R ( _ _ f d t _ b l o b ) - L O A D _ O F F S E T ) {
_ fdt_ s t a r t = . ; /* place for fdt blob */
* ( _ _ fdt_ b l o b ) ; /* Any link-placed DTB */
. = _ fdt_ s t a r t + 0 x40 0 0 ; /* Pad up to 16kbyte */
_ fdt_ e n d = . ;
}
. = ALIGN( 1 6 ) ;
RODATA
@ -47,7 +50,7 @@ SECTIONS {
* sdata2 s e c t i o n c a n g o a n y w h e r e , b u t m u s t b e w o r d a l i g n e d
* and S D A 2 _ B A S E m u s t p o i n t t o t h e m i d d l e o f i t
* /
.sdata2 : {
.sdata2 : AT( A D D R ( . s d a t a2 ) - L O A D _ O F F S E T ) {
_ ssrw = . ;
. = ALIGN( 4 0 9 6 ) ; /* page aligned when MMU used - origin 0x8 */
* ( .sdata2 )
@ -68,12 +71,12 @@ SECTIONS {
/* Under the microblaze ABI, .sdata and .sbss must be contiguous */
. = ALIGN( 8 ) ;
.sdata : {
.sdata : AT( A D D R ( . s d a t a ) - L O A D _ O F F S E T ) {
_ ssro = . ;
* ( .sdata )
}
.sbss : {
.sbss : AT( A D D R ( . s b s s ) - L O A D _ O F F S E T ) {
_ ssbss = . ;
* ( .sbss )
_ esbss = . ;
@ -86,26 +89,26 @@ SECTIONS {
INIT_ T E X T _ S E C T I O N ( P A G E _ S I Z E )
.init .data : {
.init .data : AT( A D D R ( . i n i t . d a t a ) - L O A D _ O F F S E T ) {
INIT_ D A T A
}
. = ALIGN( 4 ) ;
.init .ivt : {
.init .ivt : AT( A D D R ( . i n i t . i v t ) - L O A D _ O F F S E T ) {
_ _ ivt_ s t a r t = . ;
* ( .init .ivt )
_ _ ivt_ e n d = . ;
}
.init .setup : {
.init .setup : AT( A D D R ( . i n i t . s e t u p ) - L O A D _ O F F S E T ) {
INIT_ S E T U P ( 0 )
}
.initcall .init : {
.initcall .init : AT( A D D R ( . i n i t c a l l . i n i t ) - L O A D _ O F F S E T ) {
INIT_ C A L L S
}
.con_initcall .init : {
.con_initcall .init : AT( A D D R ( . c o n _ i n i t c a l l . i n i t ) - L O A D _ O F F S E T ) {
CON_ I N I T C A L L
}
@ -113,7 +116,7 @@ SECTIONS {
_ _ init_ e n d _ b e f o r e _ i n i t r a m f s = . ;
.init .ramfs ALIGN( 4 0 9 6 ) : {
.init .ramfs ALIGN( 4 0 9 6 ) : A T ( A D D R ( . i n i t . r a m f s ) - L O A D _ O F F S E T ) {
_ _ initramfs_ s t a r t = . ;
* ( .init .ramfs )
_ _ initramfs_ e n d = . ;
@ -129,7 +132,8 @@ SECTIONS {
}
_ _ init_ e n d = . ;
.bss ALIGN ( 4 0 9 6 ) : { /* page aligned when MMU used */
.bss ALIGN ( 4 0 9 6 ) : AT( A D D R ( . b s s ) - L O A D _ O F F S E T ) {
/* page aligned when MMU used */
_ _ bss_ s t a r t = . ;
* ( .bss * )
* ( COMMON)