diff options
Diffstat (limited to 'drivers/firmware/pcdp.h')
| -rw-r--r-- | drivers/firmware/pcdp.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/drivers/firmware/pcdp.h b/drivers/firmware/pcdp.h index 1dc7c88b7b4d..e72cc47de33b 100644 --- a/drivers/firmware/pcdp.h +++ b/drivers/firmware/pcdp.h | |||
| @@ -52,11 +52,34 @@ struct pcdp_uart { | |||
| 52 | u32 clock_rate; | 52 | u32 clock_rate; |
| 53 | u8 pci_prog_intfc; | 53 | u8 pci_prog_intfc; |
| 54 | u8 flags; | 54 | u8 flags; |
| 55 | }; | 55 | } __attribute__((packed)); |
| 56 | |||
| 57 | #define PCDP_IF_PCI 1 | ||
| 58 | |||
| 59 | /* pcdp_if_pci.trans */ | ||
| 60 | #define PCDP_PCI_TRANS_IOPORT 0x02 | ||
| 61 | #define PCDP_PCI_TRANS_MMIO 0x01 | ||
| 62 | |||
| 63 | struct pcdp_if_pci { | ||
| 64 | u8 interconnect; | ||
| 65 | u8 reserved; | ||
| 66 | u16 length; | ||
| 67 | u8 segment; | ||
| 68 | u8 bus; | ||
| 69 | u8 dev; | ||
| 70 | u8 fun; | ||
| 71 | u16 dev_id; | ||
| 72 | u16 vendor_id; | ||
| 73 | u32 acpi_interrupt; | ||
| 74 | u64 mmio_tra; | ||
| 75 | u64 ioport_tra; | ||
| 76 | u8 flags; | ||
| 77 | u8 trans; | ||
| 78 | } __attribute__((packed)); | ||
| 56 | 79 | ||
| 57 | struct pcdp_vga { | 80 | struct pcdp_vga { |
| 58 | u8 count; /* address space descriptors */ | 81 | u8 count; /* address space descriptors */ |
| 59 | }; | 82 | } __attribute__((packed)); |
| 60 | 83 | ||
| 61 | /* pcdp_device.flags */ | 84 | /* pcdp_device.flags */ |
| 62 | #define PCDP_PRIMARY_CONSOLE 1 | 85 | #define PCDP_PRIMARY_CONSOLE 1 |
| @@ -66,7 +89,9 @@ struct pcdp_device { | |||
| 66 | u8 flags; | 89 | u8 flags; |
| 67 | u16 length; | 90 | u16 length; |
| 68 | u16 efi_index; | 91 | u16 efi_index; |
| 69 | }; | 92 | /* next data is pcdp_if_pci or pcdp_if_acpi (not yet supported) */ |
| 93 | /* next data is device specific type (currently only pcdp_vga) */ | ||
| 94 | } __attribute__((packed)); | ||
| 70 | 95 | ||
| 71 | struct pcdp { | 96 | struct pcdp { |
| 72 | u8 signature[4]; | 97 | u8 signature[4]; |
| @@ -81,4 +106,4 @@ struct pcdp { | |||
| 81 | u32 num_uarts; | 106 | u32 num_uarts; |
| 82 | struct pcdp_uart uart[0]; /* actual size is num_uarts */ | 107 | struct pcdp_uart uart[0]; /* actual size is num_uarts */ |
| 83 | /* remainder of table is pcdp_device structures */ | 108 | /* remainder of table is pcdp_device structures */ |
| 84 | }; | 109 | } __attribute__((packed)); |
