2005-04-16 15:20:36 -07:00
/*
2008-08-02 10:55:55 +01:00
* arch / arm / include / asm / mach / arch . h
2005-04-16 15:20:36 -07:00
*
* Copyright ( C ) 2000 Russell King
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# ifndef __ASSEMBLY__
struct tag ;
struct meminfo ;
struct sys_timer ;
struct machine_desc {
/*
2006-03-20 17:10:01 +00:00
* Note ! The first four elements are used
2008-02-21 13:46:59 +01:00
* by assembler code in head . S , head - common . S
2005-04-16 15:20:36 -07:00
*/
unsigned int nr ; /* architecture number */
unsigned int phys_io ; /* start of physical io */
unsigned int io_pg_offst ; /* byte offset for io
* page tabe entry */
const char * name ; /* architecture name */
2005-07-04 10:43:36 +01:00
unsigned long boot_params ; /* tagged list */
2005-04-16 15:20:36 -07:00
unsigned int video_start ; /* start of video RAM */
unsigned int video_end ; /* end of video RAM */
unsigned int reserve_lp0 : 1 ; /* never has lp0 */
unsigned int reserve_lp1 : 1 ; /* never has lp1 */
unsigned int reserve_lp2 : 1 ; /* never has lp2 */
unsigned int soft_reboot : 1 ; /* soft reboot */
void ( * fixup ) ( struct machine_desc * ,
struct tag * , char * * ,
struct meminfo * ) ;
void ( * map_io ) ( void ) ; /* IO mapping function */
void ( * init_irq ) ( void ) ;
struct sys_timer * timer ; /* system tick timer */
void ( * init_machine ) ( void ) ;
} ;
/*
* Set of macros to define architecture features . This is built into
* a table by the linker .
*/
2005-10-28 14:29:43 +01:00
# define MACHINE_START(_type,_name) \
static const struct machine_desc __mach_desc_ # # _type \
2007-05-11 16:18:55 -07:00
__used \
2005-09-20 16:45:20 +01:00
__attribute__ ( ( __section__ ( " .arch.info.init " ) ) ) = { \
2005-10-28 14:29:43 +01:00
. nr = MACH_TYPE_ # # _type , \
2005-04-16 15:20:36 -07:00
. name = _name ,
# define MACHINE_END \
} ;
# endif