1 /* 2 * linux/include/asm-arm/mach/arch.h 3 * 4 * Copyright (C) 2000 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11 /* 12 * The size of struct machine_desc 13 * (for assembler code) 14 */ 15 #define SIZEOF_MACHINE_DESC 48 16 17 #ifndef __ASSEMBLY__ 18 19 extern void setup_initrd(unsigned int start, unsigned int size); 20 extern void setup_ramdisk(int doload, int prompt, int start, unsigned int rd_sz); 21 22 struct machine_desc { 23 /* 24 * Note! The first four elements are used 25 * by assembler code in head-armv.S 26 */ 27 unsigned int nr; /* architecture number */ 28 unsigned int phys_ram; /* start of physical ram */ 29 unsigned int phys_io; /* start of physical io */ 30 unsigned int io_pg_offst; /* byte offset for io 31 * page tabe entry */ 32 33 const char *name; /* architecture name */ 34 unsigned int param_offset; /* parameter page */ 35 36 unsigned int video_start; /* start of video RAM */ 37 unsigned int video_end; /* end of video RAM */ 38 39 unsigned int reserve_lp0 :1; /* never has lp0 */ 40 unsigned int reserve_lp1 :1; /* never has lp1 */ 41 unsigned int reserve_lp2 :1; /* never has lp2 */ 42 unsigned int soft_reboot :1; /* soft reboot */ 43 void (*fixup)(struct machine_desc *, 44 struct param_struct *, char **, 45 struct meminfo *); 46 void (*map_io)(void);/* IO mapping function */ 47 void (*init_irq)(void); 48 }; 49 50 /* 51 * Set of macros to define architecture features. This is built into 52 * a table by the linker. 53 */ 54 #define MACHINE_START(_type,_name) \ 55 const struct machine_desc __mach_desc_##_type \ 56 __attribute__((__section__(".arch.info"))) = { \ 57 .nr = MACH_TYPE_##_type, \ 58 .name = _name, 59 60 #define MAINTAINER(n) 61 62 #define BOOT_MEM(_pram,_pio,_vio) \ 63 .phys_ram = _pram, \ 64 .phys_io = _pio, \ 65 .io_pg_offst = ((_vio)>>18)&0xfffc, 66 67 #define BOOT_PARAMS(_params) \ 68 .param_offset = _params, 69 70 #define VIDEO(_start,_end) \ 71 .video_start = _start, \ 72 .video_end = _end, 73 74 #define DISABLE_PARPORT(_n) \ 75 .reserve_lp##_n = 1, 76 77 #define BROKEN_HLT /* unused */ 78 79 #define SOFT_REBOOT \ 80 .soft_reboot = 1, 81 82 #define FIXUP(_func) \ 83 .fixup = _func, 84 85 #define MAPIO(_func) \ 86 .map_io = _func, 87 88 #define INITIRQ(_func) \ 89 .init_irq = _func, 90 91 #define MACHINE_END \ 92 }; 93 94 #endif 95