1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #ifndef BOOTINFO_H
18 #define BOOTINFO_H
19
20 #ifndef __ASSEMBLY__
21
22 #include <asm/zorro.h>
23
24
25
26
27
28 #define NUM_AUTO 16
29
30 #define AMIGAHW_DECLARE(name) unsigned name : 1
31 #define AMIGAHW_SET(name) (boot_info.bi_amiga.hw_present.name = 1)
32 #define AMIGAHW_PRESENT(name) (boot_info.bi_amiga.hw_present.name)
33
34 struct bi_Amiga {
35 int model;
36 int num_autocon;
37 struct ConfigDev autocon[NUM_AUTO];
38 unsigned long chip_size;
39 unsigned char vblank;
40 unsigned char psfreq;
41 unsigned long eclock;
42 unsigned long chipset;
43 struct {
44
45 AMIGAHW_DECLARE(AMI_VIDEO);
46 AMIGAHW_DECLARE(AMI_BLITTER);
47 AMIGAHW_DECLARE(AMBER_FF);
48
49 AMIGAHW_DECLARE(AMI_AUDIO);
50
51 AMIGAHW_DECLARE(AMI_FLOPPY);
52 AMIGAHW_DECLARE(A3000_SCSI);
53 AMIGAHW_DECLARE(A4000_SCSI);
54 AMIGAHW_DECLARE(A1200_IDE);
55 AMIGAHW_DECLARE(A4000_IDE);
56 AMIGAHW_DECLARE(CD_ROM);
57
58 AMIGAHW_DECLARE(AMI_KEYBOARD);
59 AMIGAHW_DECLARE(AMI_MOUSE);
60 AMIGAHW_DECLARE(AMI_SERIAL);
61 AMIGAHW_DECLARE(AMI_PARALLEL);
62
63 AMIGAHW_DECLARE(A2000_CLK);
64 AMIGAHW_DECLARE(A3000_CLK);
65
66 AMIGAHW_DECLARE(CHIP_RAM);
67 AMIGAHW_DECLARE(PAULA);
68 AMIGAHW_DECLARE(DENISE);
69 AMIGAHW_DECLARE(DENISE_HR);
70 AMIGAHW_DECLARE(LISA);
71 AMIGAHW_DECLARE(AGNUS_PAL);
72 AMIGAHW_DECLARE(AGNUS_NTSC);
73 AMIGAHW_DECLARE(AGNUS_HR_PAL);
74 AMIGAHW_DECLARE(AGNUS_HR_NTSC);
75 AMIGAHW_DECLARE(ALICE_PAL);
76 AMIGAHW_DECLARE(ALICE_NTSC);
77 AMIGAHW_DECLARE(MAGIC_REKICK);
78 AMIGAHW_DECLARE(ZORRO);
79 } hw_present;
80 };
81
82
83
84
85
86
87
88
89
90
91
92
93 #define ATARIHW_DECLARE(name) unsigned name : 1
94 #define ATARIHW_SET(name) (boot_info.bi_atari.hw_present.name = 1)
95 #define ATARIHW_PRESENT(name) (boot_info.bi_atari.hw_present.name)
96
97 struct bi_Atari {
98 struct {
99
100 ATARIHW_DECLARE(STND_SHIFTER);
101 ATARIHW_DECLARE(EXTD_SHIFTER);
102 ATARIHW_DECLARE(TT_SHIFTER);
103 ATARIHW_DECLARE(VIDEL_SHIFTER);
104
105 ATARIHW_DECLARE(YM_2149);
106 ATARIHW_DECLARE(PCM_8BIT);
107 ATARIHW_DECLARE(CODEC);
108
109 ATARIHW_DECLARE(TT_SCSI);
110 ATARIHW_DECLARE(ST_SCSI);
111 ATARIHW_DECLARE(ACSI);
112 ATARIHW_DECLARE(IDE);
113 ATARIHW_DECLARE(FDCSPEED);
114
115 ATARIHW_DECLARE(ST_MFP);
116
117
118 ATARIHW_DECLARE(TT_MFP);
119 ATARIHW_DECLARE(SCC);
120 ATARIHW_DECLARE(ST_ESCC);
121 ATARIHW_DECLARE(ANALOG_JOY);
122
123 ATARIHW_DECLARE(MICROWIRE);
124
125 ATARIHW_DECLARE(STND_DMA);
126 ATARIHW_DECLARE(EXTD_DMA);
127 ATARIHW_DECLARE(SCSI_DMA);
128 ATARIHW_DECLARE(SCC_DMA);
129
130 ATARIHW_DECLARE(TT_CLK);
131 ATARIHW_DECLARE(MSTE_CLK);
132
133 ATARIHW_DECLARE(SCU);
134 ATARIHW_DECLARE(BLITTER);
135 ATARIHW_DECLARE(VME);
136 } hw_present;
137 unsigned long mch_cookie;
138 };
139
140
141 #define ATARI_MCH_ST 0
142 #define ATARI_MCH_STE 1
143 #define ATARI_MCH_TT 2
144 #define ATARI_MCH_FALCON 3
145
146
147
148
149 #define CPU_68020 (1)
150 #define CPU_68030 (2)
151 #define CPU_68040 (4)
152 #define CPU_68060 (8)
153 #define CPU_MASK (31)
154 #define FPU_68881 (32)
155 #define FPU_68882 (64)
156 #define FPU_68040 (128)
157 #define FPU_68060 (256)
158
159 struct mem_info {
160 unsigned long addr;
161 unsigned long size;
162 };
163
164 #define NUM_MEMINFO 4
165
166 #endif
167
168 #define MACH_AMIGA 1
169 #define MACH_ATARI 2
170 #define MACH_MAC 3
171
172 #ifndef __ASSEMBLY__
173
174 #define MACH_IS_AMIGA (boot_info.machtype == MACH_AMIGA)
175 #define MACH_IS_ATARI (boot_info.machtype == MACH_ATARI)
176
177 #define CL_SIZE (256)
178
179 struct bootinfo {
180 unsigned long machtype;
181 unsigned long cputype;
182 struct mem_info memory[NUM_MEMINFO];
183 int num_memory;
184 unsigned long ramdisk_size;
185 unsigned long ramdisk_addr;
186 char command_line[CL_SIZE];
187 union {
188 struct bi_Amiga bi_ami;
189 struct bi_Atari bi_ata;
190 } bi_un;
191 };
192 #define bi_amiga bi_un.bi_ami
193 #define bi_atari bi_un.bi_ata
194 #define bi_mac bi_un.bi_mac
195
196 extern struct bootinfo
197 boot_info;
198
199 #endif
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216 #define BOOTINFOV_MAGIC 0x4249561A
217 #define MK_BI_VERSION(major,minor) (((major)<<16)+(minor))
218 #define BI_VERSION_MAJOR(v) (((v) >> 16) & 0xffff)
219 #define BI_VERSION_MINOR(v) ((v) & 0xffff)
220
221 #ifndef __ASSEMBLY__
222
223 struct bootversion {
224 unsigned short branch;
225 unsigned long magic;
226 struct {
227 unsigned long machtype;
228 unsigned long version;
229 } machversions[0];
230 };
231
232 #endif
233
234 #define AMIGA_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
235 #define ATARI_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
236
237 #endif