2005-04-17 02:20:36 +04:00
/ *
* vmlinux. l d s . S - - m a s t e r l i n k e r s c r i p t f o r m 6 8 k n o m m u a r c h
*
* ( C) C o p y r i g h t 2 0 0 2 - 2 0 0 4 , G r e g U n g e r e r < g e r g @snapgear.com>
*
* This e n d s u p l o o k i n g c o m p i l c a t e d , b e c a u s e o f t h e n u m b e r o f
* address v a r i a t i o n s f o r r a m a n d r o m / f l a s h l a y o u t s . T h e r e a l
* work o f t h e l i n k e r s c r i p t i s a l l a t t h e e n d , a n d r e a s o n a b l y
* strait f o r w a r d .
* /
# include < l i n u x / c o n f i g . h >
# include < a s m - g e n e r i c / v m l i n u x . l d s . h >
/ *
* Original P a l m p i l o t ( s a m e f o r X c o p i l o t ) .
* There i s r e a l l y o n l y a r o m t a r g e t f o r t h i s .
* /
# ifdef C O N F I G _ P I L O T 3
# define R O M V E C _ S T A R T 0 x10 c00 0 0 0
# define R O M V E C _ L E N G T H 0 x10 4 0 0
# define R O M _ S T A R T 0 x10 c10 4 0 0
# define R O M _ L E N G T H 0 x f e c00
# define R O M _ E N D 0 x10 d00 0 0 0
# define R A M V E C _ S T A R T 0 x00 0 0 0 0 0 0
# define R A M V E C _ L E N G T H 0 x40 0
# define R A M _ S T A R T 0 x10 0 0 0 4 0 0
# define R A M _ L E N G T H 0 x f f c00
# define R A M _ E N D 0 x10 1 0 0 0 0 0
# define _ r a m e n d _ r a m _ e n d _ n o t u s e d
# define D A T A _ A D D R R A M _ S T A R T
# endif
/ *
* Same s e t u p o n b o t h t h e u C s i m m a n d u C d i m m .
* /
# if d e f i n e d ( C O N F I G _ U C S I M M ) | | d e f i n e d ( C O N F I G _ U C D I M M )
# ifdef C O N F I G _ R A M K E R N E L
# define R O M V E C _ S T A R T 0 x10 c10 0 0 0
# define R O M V E C _ L E N G T H 0 x40 0
# define R O M _ S T A R T 0 x10 c10 4 0 0
# define R O M _ L E N G T H 0 x1 e f c00
# define R O M _ E N D 0 x10 e 0 0 0 0 0
# define R A M V E C _ S T A R T 0 x00 0 0 0 0 0 0
# define R A M V E C _ L E N G T H 0 x40 0
# define R A M _ S T A R T 0 x00 0 2 0 4 0 0
# define R A M _ L E N G T H 0 x7 d f c00
# define R A M _ E N D 0 x00 8 0 0 0 0 0
# endif
# ifdef C O N F I G _ R O M K E R N E L
# define R O M V E C _ S T A R T 0 x10 c10 0 0 0
# define R O M V E C _ L E N G T H 0 x40 0
# define R O M _ S T A R T 0 x10 c10 4 0 0
# define R O M _ L E N G T H 0 x1 e f c00
# define R O M _ E N D 0 x10 e 0 0 0 0 0
# define R A M V E C _ S T A R T 0 x00 0 0 0 0 0 0
# define R A M V E C _ L E N G T H 0 x40 0
# define R A M _ S T A R T 0 x00 0 2 0 0 0 0
# define R A M _ L E N G T H 0 x60 0 0 0 0
# define R A M _ E N D 0 x00 8 0 0 0 0 0
# endif
# ifdef C O N F I G _ H I M E M K E R N E L
# define R O M V E C _ S T A R T 0 x00 6 0 0 0 0 0
# define R O M V E C _ L E N G T H 0 x40 0
# define R O M _ S T A R T 0 x00 6 0 0 4 0 0
# define R O M _ L E N G T H 0 x1 e f c00
# define R O M _ E N D 0 x00 7 f00 0 0
# define R A M V E C _ S T A R T 0 x00 0 0 0 0 0 0
# define R A M V E C _ L E N G T H 0 x40 0
# define R A M _ S T A R T 0 x00 0 2 0 0 0 0
# define R A M _ L E N G T H 0 x5 e 0 0 0 0
# define R A M _ E N D 0 x00 6 0 0 0 0 0
# endif
# endif
# ifdef C O N F I G _ D R A G E N 2
# define R A M _ S T A R T 0 x10 0 0 0
# define R A M _ L E N G T H 0 x7 f00 0 0
# endif
# ifdef C O N F I G _ U C Q U I C C
# define R O M V E C _ S T A R T 0 x00 0 0 0 0 0 0
# define R O M V E C _ L E N G T H 0 x40 4
# define R O M _ S T A R T 0 x00 0 0 0 4 0 4
# define R O M _ L E N G T H 0 x1 f f6 f c
# define R O M _ E N D 0 x00 2 0 0 0 0 0
# define R A M V E C _ S T A R T 0 x00 2 0 0 0 0 0
# define R A M V E C _ L E N G T H 0 x40 4
# define R A M _ S T A R T 0 x00 2 0 0 4 0 4
# define R A M _ L E N G T H 0 x1 f f6 f c
# define R A M _ E N D 0 x00 4 0 0 0 0 0
# endif
/ *
* The s t a n d a r d A r n e w s h 5 2 0 6 b o a r d o n l y h a s 1 M i B o f r a m . N o t n o r m a l l y
* enough t o b e u s e f u l . A s s u m e t h e u s e r h a s f i t t e d s o m e t h i n g l a r g e r ,
* at l e a s t 4 M i B i n s i z e . N o p o i n t i n n o t l e t t i n g t h e k e r n e l c o m p l e t e l y
* link, i t w i l l b e o b v i o u s i f i t i s t o o b i g w h e n t h e y g o t o l o a d i t .
* /
# if d e f i n e d ( C O N F I G _ A R N 5 2 0 6 )
# define R A M _ S T A R T 0 x10 0 0 0
# define R A M _ L E N G T H 0 x3 f00 0 0
# endif
/ *
* The M o t o r o l a 5 2 0 6 e L I T E b o a r d o n l y h a s 1 M i B o f s t a t i c R A M .
* /
# if d e f i n e d ( C O N F I G _ E L I T E )
# define R A M _ S T A R T 0 x30 0 2 0 0 0 0
2005-09-02 04:42:52 +04:00
# define R A M _ L E N G T H 0 x e 0 0 0 0
2005-04-17 02:20:36 +04:00
# endif
/ *
* All t h e M o t o r o l a e v a l b o a r d s h a v e t h e s a m e b a s i c a r r a n g e m e n t .
* The e n d o f R A M w i l l v a r y d e p e n d i n g o n h o w m u c h r a m i s f i t t e d ,
* but t h i s i s n ' t i m p o r t a n t h e r e , w e a s s u m e a t l e a s t 4 M i B .
* /
# if d e f i n e d ( C O N F I G _ M 5 2 0 6 e C 3 ) | | d e f i n e d ( C O N F I G _ M 5 2 4 9 C 3 ) | | \
defined( C O N F I G _ M 5 2 7 2 C 3 ) | | d e f i n e d ( C O N F I G _ M 5 3 0 7 C 3 ) | | \
defined( C O N F I G _ A R N 5 3 0 7 ) | | d e f i n e d ( C O N F I G _ M 5 4 0 7 C 3 ) | | \
2005-09-02 04:42:52 +04:00
defined( C O N F I G _ M 5 2 7 1 E V B ) | | d e f i n e d ( C O N F I G _ M 5 2 7 5 E V B ) | | \
defined( C O N F I G _ M 5 2 3 5 E V B )
2005-04-17 02:20:36 +04:00
# define R A M _ S T A R T 0 x20 0 0 0
# define R A M _ L E N G T H 0 x3 e 0 0 0 0
# endif
2005-11-07 07:09:50 +03:00
/ *
* The F r e e s c a l e 5 2 0 8 E V B b o a r d h a s 3 2 M B o f R A M .
* /
# if d e f i n e d ( C O N F I G _ M 5 2 0 8 E V B )
# define R A M _ S T A R T 0 x40 0 2 0 0 0 0
2006-01-10 09:43:39 +03:00
# define R A M _ L E N G T H 0 x01 f e 0 0 0 0
2005-11-07 07:09:50 +03:00
# endif
2005-04-17 02:20:36 +04:00
/ *
* The s e n T e c C O B R A 5 2 7 2 b o a r d h a s n e a r l y t h e s a m e m e m o r y l a y o u t a s
* the M 5 2 7 2 C 3 . W e a s s u m e 1 6 M i B r a m .
* /
# if d e f i n e d ( C O N F I G _ C O B R A 5 2 7 2 )
# define R A M _ S T A R T 0 x20 0 0 0
# define R A M _ L E N G T H 0 x f e 0 0 0 0
# endif
# if d e f i n e d ( C O N F I G _ M 5 2 8 2 E V B )
# define R A M _ S T A R T 0 x10 0 0 0
# define R A M _ L E N G T H 0 x3 f00 0 0
# endif
/ *
* The s e n T e c C O B R A 5 2 8 2 b o a r d h a s t h e s a m e m e m o r y l a y o u t a s t h e M 5 2 8 2 E V B .
* /
# if d e f i n e d ( C O N F I G _ C O B R A 5 2 8 2 )
# define R A M _ S T A R T 0 x10 0 0 0
# define R A M _ L E N G T H 0 x3 f00 0 0
# endif
2005-09-02 04:42:52 +04:00
/ *
* The E M A C S o M - 5 2 8 2 E M m o d u l e .
* /
# if d e f i n e d ( C O N F I G _ S O M 5 2 8 2 E M )
# define R A M _ S T A R T 0 x10 0 0 0
# define R A M _ L E N G T H 0 x f f00 0 0
# endif
2005-04-17 02:20:36 +04:00
/ *
* These f l a s h b o o t b o a r d s u s e a l l o f r a m f o r o p e r a t i o n . A g a i n t h e
* actual m e m o r y s i z e i s n o t i m p o r t a n t h e r e , a s s u m e a t l e a s t 4 M i B .
* They c u r r e n t l y h a v e n o s u p p o r t f o r r u n n i n g i n f l a s h .
* /
# if d e f i n e d ( C O N F I G _ N E T t e l ) | | d e f i n e d ( C O N F I G _ e L I A ) | | \
defined( C O N F I G _ D I S K t e l ) | | d e f i n e d ( C O N F I G _ S E C U R E E D G E M P 3 ) | | \
defined( C O N F I G _ H W _ F E I T H )
# define R A M _ S T A R T 0 x40 0
# define R A M _ L E N G T H 0 x3 f f c00
# endif
/ *
2005-09-02 04:42:52 +04:00
* Sneha B o a r d s m i m i m u n m e m o r y
2005-04-17 02:20:36 +04:00
* The e n d o f R A M w i l l v a r y d e p e n d i n g o n h o w m u c h r a m i s f i t t e d ,
* but t h i s i s n ' t i m p o r t a n t h e r e , w e a s s u m e a t l e a s t 4 M i B .
* /
# if d e f i n e d ( C O N F I G _ C P U 1 6 B )
# define R A M _ S T A R T 0 x20 0 0 0
# define R A M _ L E N G T H 0 x3 e 0 0 0 0
# endif
2005-09-02 04:42:52 +04:00
# if d e f i n e d ( C O N F I G _ M O D 5 2 7 2 )
# define R A M _ S T A R T 0 x02 0 0 0 0 0 0
# define R A M _ L E N G T H 0 x00 8 0 0 0 0 0
# define R A M V E C _ S T A R T 0 x20 0 0 0 0 0 0
# define R A M V E C _ L E N G T H 0 x00 0 0 0 4 0 0
# endif
2005-04-17 02:20:36 +04:00
# if d e f i n e d ( C O N F I G _ R A M K E R N E L )
# define T E X T r a m
# define D A T A r a m
# define I N I T r a m
# define B S S r a m
# endif
# if d e f i n e d ( C O N F I G _ R O M K E R N E L ) | | d e f i n e d ( C O N F I G _ H I M E M K E R N E L )
# define T E X T r o m
# define D A T A r a m
# define I N I T r a m
# define B S S r a m
# endif
# ifndef D A T A _ A D D R
# define D A T A _ A D D R
# endif
OUTPUT_ A R C H ( m 6 8 k )
ENTRY( _ s t a r t )
MEMORY {
# ifdef R A M V E C _ S T A R T
ramvec : O R I G I N = R A M V E C _ S T A R T , L E N G T H = R A M V E C _ L E N G T H
# endif
ram : O R I G I N = R A M _ S T A R T , L E N G T H = R A M _ L E N G T H
# ifdef R A M _ E N D
eram : O R I G I N = R A M _ E N D , L E N G T H = 0
# endif
# ifdef R O M _ S T A R T
romvec : O R I G I N = R O M V E C _ S T A R T , L E N G T H = R O M V E C _ L E N G T H
rom : O R I G I N = R O M _ S T A R T , L E N G T H = R O M _ L E N G T H
erom : O R I G I N = R O M _ E N D , L E N G T H = 0
# endif
}
jiffies = j i f f i e s _ 6 4 + 4 ;
SECTIONS {
# ifdef R O M V E C _ S T A R T
. = ROMVEC_ S T A R T ;
.romvec : {
_ _ rom_ s t a r t = . ;
_ romvec = . ;
* ( .data .initvect )
} > romvec
# endif
.text : {
_ stext = . ;
* ( .text )
SCHED_ T E X T
* ( .text .lock )
. = ALIGN( 1 6 ) ; /* Exception table */
_ _ start_ _ _ e x _ t a b l e = . ;
* ( _ _ ex_ t a b l e )
_ _ stop_ _ _ e x _ t a b l e = . ;
* ( .rodata ) * ( .rodata . * )
* ( _ _ vermagic) / * K e r n e l v e r s i o n m a g i c * /
* ( .rodata1 )
* ( .rodata .str1 .1 )
/* Kernel symbol table: Normal symbols */
. = ALIGN( 4 ) ;
_ _ start_ _ _ k s y m t a b = . ;
* ( _ _ ksymtab)
_ _ stop_ _ _ k s y m t a b = . ;
/* Kernel symbol table: GPL-only symbols */
_ _ start_ _ _ k s y m t a b _ g p l = . ;
* ( _ _ ksymtab_ g p l )
_ _ stop_ _ _ k s y m t a b _ g p l = . ;
2006-03-21 00:17:13 +03:00
/* Kernel symbol table: GPL-future symbols */
_ _ start_ _ _ k s y m t a b _ g p l _ f u t u r e = . ;
* ( _ _ ksymtab_ g p l _ f u t u r e )
_ _ stop_ _ _ k s y m t a b _ g p l _ f u t u r e = . ;
2005-04-17 02:20:36 +04:00
/* Kernel symbol table: Normal symbols */
_ _ start_ _ _ k c r c t a b = . ;
* ( _ _ kcrctab)
_ _ stop_ _ _ k c r c t a b = . ;
/* Kernel symbol table: GPL-only symbols */
_ _ start_ _ _ k c r c t a b _ g p l = . ;
* ( _ _ kcrctab_ g p l )
_ _ stop_ _ _ k c r c t a b _ g p l = . ;
2006-03-21 00:17:13 +03:00
/* Kernel symbol table: GPL-future symbols */
_ _ start_ _ _ k c r c t a b _ g p l _ f u t u r e = . ;
* ( _ _ kcrctab_ g p l _ f u t u r e )
_ _ stop_ _ _ k c r c t a b _ g p l _ f u t u r e = . ;
2005-04-17 02:20:36 +04:00
/* Kernel symbol table: strings */
* ( _ _ ksymtab_ s t r i n g s )
/* Built-in module parameters */
2005-11-07 07:09:50 +03:00
. = ALIGN( 4 ) ;
2005-04-17 02:20:36 +04:00
_ _ start_ _ _ p a r a m = . ;
* ( _ _ param)
_ _ stop_ _ _ p a r a m = . ;
. = ALIGN( 4 ) ;
_ etext = . ;
} > TEXT
# ifdef R O M _ E N D
. = ROM_ E N D ;
.erom : {
_ _ rom_ e n d = . ;
} > erom
# endif
# ifdef R A M V E C _ S T A R T
. = RAMVEC_ S T A R T ;
.ramvec : {
_ _ ramvec = . ;
} > ramvec
# endif
.data DATA_ADDR : {
. = ALIGN( 4 ) ;
_ sdata = . ;
* ( .data )
. = ALIGN( 8 1 9 2 ) ;
* ( .data .init_task )
_ edata = . ;
} > DATA
.init : {
. = ALIGN( 4 0 9 6 ) ;
_ _ init_ b e g i n = . ;
_ sinittext = . ;
* ( .init .text )
_ einittext = . ;
* ( .init .data )
. = ALIGN( 1 6 ) ;
_ _ setup_ s t a r t = . ;
* ( .init .setup )
_ _ setup_ e n d = . ;
_ _ initcall_ s t a r t = . ;
* ( .initcall1 .init )
* ( .initcall2 .init )
* ( .initcall3 .init )
* ( .initcall4 .init )
* ( .initcall5 .init )
* ( .initcall6 .init )
* ( .initcall7 .init )
_ _ initcall_ e n d = . ;
_ _ con_ i n i t c a l l _ s t a r t = . ;
* ( .con_initcall .init )
_ _ con_ i n i t c a l l _ e n d = . ;
_ _ security_ i n i t c a l l _ s t a r t = . ;
* ( .security_initcall .init )
_ _ security_ i n i t c a l l _ e n d = . ;
. = ALIGN( 4 ) ;
_ _ initramfs_ s t a r t = . ;
* ( .init .ramfs )
_ _ initramfs_ e n d = . ;
. = ALIGN( 4 0 9 6 ) ;
_ _ init_ e n d = . ;
} > INIT
/ DISCARD/ : {
* ( .exit .text )
* ( .exit .data )
* ( .exitcall .exit )
}
.bss : {
. = ALIGN( 4 ) ;
_ sbss = . ;
* ( .bss )
* ( COMMON)
. = ALIGN( 4 ) ;
_ ebss = . ;
} > BSS
# ifdef R A M _ E N D
. = RAM_ E N D ;
.eram : {
_ _ ramend = . ;
_ ramend = . ;
} > eram
# endif
}