diff options
Diffstat (limited to 'doc/user/conf.t')
-rw-r--r-- | doc/user/conf.t | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/user/conf.t b/doc/user/conf.t index fe714b42d4..ae2d9668ea 100644 --- a/doc/user/conf.t +++ b/doc/user/conf.t @@ -5273,6 +5273,59 @@ uses the Ada run-time. None. @c +@c === PCI Library === +@c +@section PCI Library + +This section defines the system configuration paramters supported +by @code{rtems/confdefs.h} related to configuring the PCI Library +for RTEMS. + +The PCI Library startup behaviour can be configured in four diffent +ways depending on how @code{CONFIGURE_PCI_CONFIG_LIB} is defined: + +@itemize @bullet +@findex PCI_LIB_AUTO +@item @code{PCI_LIB_AUTO} is used to enable the PCI auto configuration +software. PCI will be automatically probed, PCI buses enumerated, all +devices and bridges will be initialized using Plug & Play software +routines. The PCI device tree will be populated based on the PCI devices +found in the system, PCI devices will be configured by allocating address +region resources automatically in PCI space according to the BSP or host +bridge driver set up. + +@findex PCI_LIB_READ +@item @code{PCI_LIB_READ} is used to enable the PCI read configuration +software. The current PCI configuration is read to create the RAM +representation (the PCI device tree) of the PCI devices present. PCI devices +are assumed to already have been initialized and PCI buses enumrated, it is +therefore required that a BIOS or a boot loader has set up configuration space +prior to booting into RTEMS. + +@findex PCI_LIB_STATIC +@item @code{PCI_LIB_STATIC} is used to enable the PCI static configuration +software. The user provides a PCI tree with information how all PCI devices +are to be configured at compile time by linking in a custom +@code{struct pci_bus pci_hb} tree. The static PCI library will not probe PCI +for devices, instead it will assume that all devices defined by the user is +present, it will enumerate the PCI buses and configure all PCI devices in +static configuration accordingly. Since probe and allocation software is not +needed the startup is faster, have smaller footprint and does not require +dynamic memory allocation. + +@findex PCI_LIB_PERIPHERAL +@item @code{PCI_LIB_PERIPHERAL} is used to enable the PCI peripheral +configuration. It is similar to @code{PCI_LIB_STATIC}, but is will never write +the configuration to the PCI devices since PCI peripherals are not allowed to +access PCI configuration space. + +@end itemize + +Note that selecting PCI_LIB_STATIC or PCI_LIB_PERIPHERAL but not defining +@code{pci_hb} will reuslt in link errors. Note also that in these modes +Plug & Play is not performed. + +@c @c === Go Tasks === @c @section Go Tasks |