grml...
[seabios.git] / src / optionroms.h
1 #ifndef __OPTIONROMS_H
2 #define __OPTIONROMS_H
3
4 #include "types.h" // u32
5
6 #define OPTION_ROM_SIGNATURE 0xaa55
7
8 struct rom_header {
9     u16 signature;
10     u8 size;
11     u8 initVector[4];
12     u8 reserved[17];
13     u16 pcioffset;
14     u16 pnpoffset;
15 } PACKED;
16
17 #define PCI_ROM_SIGNATURE 0x52494350 // "PCIR"
18
19 struct pci_data {
20     u32 signature;
21     u16 vendor;
22     u16 device;
23     u16 vitaldata;
24     u16 dlen;
25     u8 drevision;
26     u8 class_lo;
27     u16 class_hi;
28     u16 ilen;
29     u16 irevision;
30     u8 type;
31     u8 indicator;
32     u16 reserved;
33 } PACKED;
34
35 struct pnp_data {
36     u32 signature;
37     u8 revision;
38     u8 len;
39     u16 nextoffset;
40     u8 reserved_08;
41     u8 checksum;
42     u32 devid;
43     u16 manufacturer;
44     u16 productname;
45     u8 type_lo;
46     u16 type_hi;
47     u8 dev_flags;
48     u16 bcv;
49     u16 dv;
50     u16 bev;
51     u16 reserved_1c;
52     u16 staticresource;
53 } PACKED;
54
55 #define OPTION_ROM_ALIGN 2048
56 #define OPTION_ROM_INITVECTOR offsetof(struct rom_header, initVector[0])
57 #define PCIROM_CODETYPE_X86 0
58
59 #endif