From a31845f7f9b4770cf9ddd8b6820641d2f4f4c1da Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Mon, 28 Nov 2011 10:11:10 +0100 Subject: LIBPCI: added PCI layer to cpukit/libpci --- doc/user/conf.t | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'doc/user/conf.t') 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 @@ -5272,6 +5272,59 @@ uses the Ada run-time. @subheading NOTES: 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 -- cgit v1.2.3