|
iPXE
|
PCI Enhanced Configuration Access Mechanism (ECAM) More...
Go to the source code of this file.
Variables | |
| static struct ecam_mapping | ecam |
| Cached mapped ECAM allocation. | |
PCI Enhanced Configuration Access Mechanism (ECAM)
Definition in file ecam.c.
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
Find lowest ECAM allocation not below a given PCI bus:dev.fn address.
| busdevfn | PCI bus:dev.fn address |
| range | PCI device address range to fill in |
| alloc | ECAM allocation to fill in, or NULL |
| rc | Return status code |
Definition at line 47 of file ecam.c.
References acpi, ecam_table::acpi, acpi_table(), ecam_table::alloc, busdevfn, container_of, count, DBGC, DBGC2, ecam, ECAM_SIGNATURE, ENOENT, ENOTSUP, index, le16_to_cpu, le32_to_cpu, le64_to_cpu, acpi_header::length, memcpy(), offsetof, PCI_BUSDEVFN, range, start, tmp, and typeof().
Referenced by ecam_access(), and ecam_discover().
Find next PCI bus:dev.fn address range in system.
| busdevfn | Starting PCI bus:dev.fn address |
| range | PCI bus:dev.fn address range to fill in |
Definition at line 105 of file ecam.c.
References busdevfn, ecam_find(), NULL, and range.
Referenced by PROVIDE_PCIAPI().
|
static |
Access configuration space for PCI device.
| pci | PCI device |
| rc | Return status code |
Definition at line 117 of file ecam.c.
References base, pci_device::busdevfn, DBGC, ecam, ecam_find(), ECAM_SIZE, ENODEV, ENOENT, ERANGE, ioremap(), iounmap(), le16_to_cpu, le64_to_cpu, len, NULL, PCI_ARGS, PCI_BUSDEVFN, PCI_FMT, rc, and strerror().
Referenced by ecam_read(), and ecam_write().
| int ecam_read | ( | struct pci_device * | pci, |
| unsigned int | location, | ||
| void * | value ) |
Read from PCI configuration space.
| pci | PCI device |
| location | Offset and length within PCI configuration space |
| value | Value read |
| rc | Return status code |
Definition at line 190 of file ecam.c.
References addr, assert, pci_device::busdevfn, ecam, ecam_access(), ECAM_LEN, ECAM_SIZE, ECAM_WHERE, index, len, memset(), rc, readb, readl, readw, value, and where.
Referenced by ecam_write(), PCIAPI_INLINE(), and PCIAPI_INLINE().
| int ecam_write | ( | struct pci_device * | pci, |
| unsigned int | location, | ||
| unsigned long | value ) |
Write to PCI configuration space.
| pci | PCI device |
| location | Offset and length within PCI configuration space |
| value | Value to write |
| rc | Return status code |
Definition at line 232 of file ecam.c.
References addr, assert, pci_device::busdevfn, ecam, ecam_access(), ECAM_LEN, ecam_read(), ECAM_SIZE, ECAM_WHERE, index, len, mb(), rc, value, where, writeb, writel, and writew.
Referenced by PCIAPI_INLINE(), PCIAPI_INLINE(), and PCIAPI_INLINE().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_can_probe | ) |
References ecam, and pci_can_probe().
| PROVIDE_PCIAPI | ( | ecam | , |
| pci_discover | , | ||
| ecam_discover | ) |
References ecam, ecam_discover(), and pci_discover().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_read_config_byte | ) |
References ecam, and pci_read_config_byte().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_read_config_word | ) |
References ecam, and pci_read_config_word().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_read_config_dword | ) |
References ecam, and pci_read_config_dword().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_write_config_byte | ) |
References ecam, and pci_write_config_byte().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_write_config_word | ) |
References ecam, and pci_write_config_word().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_write_config_dword | ) |
References ecam, and pci_write_config_dword().
| PROVIDE_PCIAPI_INLINE | ( | ecam | , |
| pci_ioremap | ) |
References ecam, and pci_ioremap().
| PROVIDE_PCIAPI_RUNTIME | ( | ecam | , |
| PCIAPI_PRIORITY_ECAM | ) |
References ecam, and PCIAPI_PRIORITY_ECAM.
|
static |
Cached mapped ECAM allocation.
Definition at line 37 of file ecam.c.
Referenced by ecam_access(), ecam_find(), ecam_read(), ecam_write(), PCIAPI_INLINE(), PCIAPI_INLINE(), PCIAPI_INLINE(), PCIAPI_INLINE(), PCIAPI_INLINE(), PCIAPI_INLINE(), PCIAPI_INLINE(), PCIAPI_INLINE(), PROVIDE_PCIAPI(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_INLINE(), PROVIDE_PCIAPI_RUNTIME(), and PROVIDE_REQUIRING_SYMBOL().