mirror of
https://git.rtems.org/rtems-docs/
synced 2025-05-14 14:10:27 +08:00
parent
088a1f856f
commit
b71fb436fd
@ -26,58 +26,7 @@ Configuring a System
|
||||
scheduler-clustered
|
||||
device-driver
|
||||
mpci
|
||||
|
||||
PCI Library Configuration
|
||||
=========================
|
||||
|
||||
This section defines the system configuration parameters supported by
|
||||
``rtems/confdefs.h`` related to configuring the PCI Library for RTEMS.
|
||||
|
||||
The PCI Library startup behaviour can be configured in four different ways
|
||||
depending on how ``CONFIGURE_PCI_CONFIG_LIB`` is defined:
|
||||
|
||||
.. index:: PCI_LIB_AUTO
|
||||
|
||||
``PCI_LIB_AUTO``
|
||||
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.
|
||||
|
||||
.. index:: PCI_LIB_READ
|
||||
|
||||
``PCI_LIB_READ``
|
||||
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 enumerated, it is therefore required that a BIOS or
|
||||
a boot loader has set up configuration space prior to booting into RTEMS.
|
||||
|
||||
.. index:: PCI_LIB_STATIC
|
||||
|
||||
``PCI_LIB_STATIC``
|
||||
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 ``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 are 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, has smaller
|
||||
footprint and does not require dynamic memory allocation.
|
||||
|
||||
.. index:: PCI_LIB_PERIPHERAL
|
||||
|
||||
``PCI_LIB_PERIPHERAL``
|
||||
Used to enable the PCI peripheral configuration. It is similar to
|
||||
``PCI_LIB_STATIC``, but it will never write the configuration to the PCI
|
||||
devices since PCI peripherals are not allowed to access PCI configuration
|
||||
space.
|
||||
|
||||
Note that selecting ``PCI_LIB_STATIC`` or ``PCI_LIB_PERIPHERAL`` but not
|
||||
defining ``pci_hb`` will reuslt in link errors. Note also that in these modes
|
||||
Plug & Play is not performed.
|
||||
libpci
|
||||
|
||||
Event Recording Configuration
|
||||
=============================
|
||||
|
55
c-user/config/libpci.rst
Normal file
55
c-user/config/libpci.rst
Normal file
@ -0,0 +1,55 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
PCI Library Configuration
|
||||
=========================
|
||||
|
||||
This section defines the system configuration parameters supported by
|
||||
``rtems/confdefs.h`` related to configuring the PCI Library for RTEMS.
|
||||
|
||||
The PCI Library startup behaviour can be configured in four different ways
|
||||
depending on how ``CONFIGURE_PCI_CONFIG_LIB`` is defined:
|
||||
|
||||
.. index:: PCI_LIB_AUTO
|
||||
|
||||
``PCI_LIB_AUTO``
|
||||
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.
|
||||
|
||||
.. index:: PCI_LIB_READ
|
||||
|
||||
``PCI_LIB_READ``
|
||||
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 enumerated, it is therefore required that a BIOS or
|
||||
a boot loader has set up configuration space prior to booting into RTEMS.
|
||||
|
||||
.. index:: PCI_LIB_STATIC
|
||||
|
||||
``PCI_LIB_STATIC``
|
||||
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 ``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 are 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, has smaller
|
||||
footprint and does not require dynamic memory allocation.
|
||||
|
||||
.. index:: PCI_LIB_PERIPHERAL
|
||||
|
||||
``PCI_LIB_PERIPHERAL``
|
||||
Used to enable the PCI peripheral configuration. It is similar to
|
||||
``PCI_LIB_STATIC``, but it will never write the configuration to the PCI
|
||||
devices since PCI peripherals are not allowed to access PCI configuration
|
||||
space.
|
||||
|
||||
Note that selecting ``PCI_LIB_STATIC`` or ``PCI_LIB_PERIPHERAL`` but not
|
||||
defining ``pci_hb`` will reuslt in link errors. Note also that in these modes
|
||||
Plug & Play is not performed.
|
Loading…
x
Reference in New Issue
Block a user