10,42 → 10,97 |
|
struct PCI_header |
|
vendor_id dw ? |
device_id dw ? |
command dw ? |
status dw ? |
revision_id db ? |
prog_if db ? |
subclass db ? |
class_code db ? |
cache_line_size db ? |
latency_timer db ? |
header_type db ? |
bist db ? |
vendor_id dw ? ; 0x00 |
device_id dw ? ; 0x02 |
command dw ? ; 0x04 |
status dw ? ; 0x06 |
revision_id db ? ; 0x08 |
prog_if db ? ; 0x09 |
subclass db ? ; 0x0A |
class_code db ? ; 0x0B |
cache_line_size db ? ; 0x0C |
latency_timer db ? ; 0x0D |
header_type db ? ; 0x0E |
bist db ? ; 0x0F |
|
ends |
|
struct PCI_header00 PCI_header |
|
base_addr_0 dd ? |
base_addr_1 dd ? |
base_addr_2 dd ? |
base_addr_3 dd ? |
base_addr_4 dd ? |
base_addr_5 dd ? |
cardbus_cis_ptr dd ? |
subsys_vendor dw ? |
subsys_id dw ? |
exp_rom_addr dd ? |
cap_ptr db ? |
reserved rb 7 |
interrupt_line db ? |
interrupt_pin db ? |
min_grant db ? |
max_latency db ? |
base_addr_0 dd ? ; 0x10 |
base_addr_1 dd ? ; 0x14 |
base_addr_2 dd ? ; 0x18 |
base_addr_3 dd ? ; 0x1C |
base_addr_4 dd ? ; 0x20 |
base_addr_5 dd ? ; 0x24 |
cardbus_cis_ptr dd ? ; 0x28 |
subsys_vendor dw ? ; 0x2C |
subsys_id dw ? ; 0x2E |
exp_rom_addr dd ? ; 0x30 |
cap_ptr db ? ; 0x34 |
rb 7 ; reserved |
interrupt_line db ? ; 0x3C |
interrupt_pin db ? ; 0x3D |
min_grant db ? ; 0x3E |
max_latency db ? ; 0x3F |
|
ends |
|
struct PCI_header01 PCI_header |
|
base_addr_0 dd ? ; 0x10 |
base_addr_1 dd ? ; 0x14 |
prim_bus_nr db ? ; 0x18 |
sec_bus_nr db ? ; 0x19 |
sub_bus_nr db ? ; 0x1A |
sec_lat_tmr db ? ; 0x1B |
io_base db ? ; 0x1C |
io_limit db ? ; 0x1D |
sec_status dw ? ; 0x1E |
mem_base dw ? ; 0x20 |
mem_limit dw ? ; 0x22 |
pref_mem_base dw ? ; 0x24 |
pref_mem_limit dw ? ; 0x26 |
pref_base_up dd ? ; 0x28 |
pref_limit_up dd ? ; 0x2C |
io_base_up dw ? ; 0x30 |
io_limit_up dw ? ; 0x32 |
cap_ptr db ? ; 0x34 |
rb 3 ; reserved |
exp_rom_addr dd ? ; 0x38 |
interrupt_line db ? ; 0x3C |
interrupt_pin db ? ; 0x3E |
bridge_ctrl dw ? ; 0x3F |
|
ends |
|
struct PCI_header02 PCI_header |
|
base_addr dd ? ; 0x10 |
cap_list_offs db ? ; 0x14 |
rb 1 ; reserved |
sec_stat dw ? ; 0x16 |
pci_bus_nr db ? ; 0x18 |
cardbus_bus_nr db ? ; 0x19 |
sub_bus_nr db ? ; 0x1A |
cardbus_lat_tmr db ? ; 0x1B |
mbar_0 dd ? ; 0x1C |
mlimit_0 dd ? ; 0x20 |
mbar_1 dd ? ; 0x24 |
mlimit_1 dd ? ; 0x28 |
iobar_0 dd ? ; 0x2C |
iolimit_0 dd ? ; 0x30 |
iobar_1 dd ? ; 0x34 |
iolimit_1 dd ? ; 0x38 |
interrupt_line db ? ; 0x3C |
interrupt_pin db ? ; 0x3D |
bridge_ctrl dw ? ; 0x3E |
subs_did dw ? ; 0x40 |
subs_vid dw ? ; 0x42 |
legacy_bar dd ? ; 0x44 |
|
ends |
|
; Base address bits |
PCI_BASE_ADDRESS_SPACE_IO = 0x01 |
PCI_BASE_ADDRESS_IO_MASK = 0xFFFFFFFC |