History log of /haiku/src/add-ons/kernel/bus_managers/pci/pci.cpp
Revision Date Author Comments
# 629f071b 27-Feb-2024 X512 <danger_mail@list.ru>

pci: extend MSI interrupt vector number to 32 bits

Also increase MSI message data size to 32 bits according to PCIe spec.

Remove 0xff check for MSI interrupts because it is potentially valid
interrupt vector number. Reject 0xff only for legacy pin interrupts.

- MSI-X supports up to 2048 interrupts per device that do not fit to
`uint8`.

- Non-x86 systems may use separate interrupt vector ranges for
hard-wired interrupts and MSI interrupts so `uint8` is not enough to
represent all of them.

Change-Id: Iaf9ffb197ec23db0f97ffe3ea756d28d7bfc8705
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7433
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# fabb71cc 15-Jan-2024 Augustin Cavalier <waddlesplash@gmail.com>

PCI: Support more than 6 PCI memory ranges.

Also use the standard kernel-wide constants for IO or memory space
rather than defining new ones, as well as the PCI constants for
address types.

Change-Id: Iad03f7666ad5121a5c9a398339aa1a191339a1d1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7336
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 81c282f4 30-Sep-2023 X512 <danger_mail@list.ru>

bus_managers/pci: dynamically register host controllers

Fixes handling of multiple PCI host controllers.

Change-Id: Iba79f2aa51b88d37bb6f5ec02d5cd3f470284ddb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6958
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# a23ac85f 19-Mar-2023 X512 <danger_mail@list.ru>

bus_managers/pci: split PCI controller to separate add-on

busses/pci/x86: add
Other add-ons are in following commits.

Change-Id: I7a77bfaef0e8995917b4b54c8369d7075533ec26
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6220
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 97b7c771 19-Mar-2023 X512 <danger_mail@list.ru>

bus_managers/pci: move MSI handling to generic code

Change-Id: I6194838b7b46222f720fc328bb4512fdb88a9c8a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6222
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# e942269a 12-Dec-2022 X512 <danger_mail@list.ru>

pci: generic MSI interrupts support

Change-Id: Ib4fd23f6bca867a2b428bf2651234d719ee08672
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6221
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 215b685f 11-Dec-2022 X512 <danger_mail@list.ru>

kernel: Drop non-standard GNU inline assignment syntax

* We needed this previously due to our gcc2 compiled kernel.
* Now that our kernel is always latest gcc, we can move to the
c++20 syntax for inline assignment.
* Improves compatibility with clang, less GNU-specific stuff

Change-Id: Ib7272a0a52554a31e9a0e788fd3f031db9049795
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5898
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 70bf9257 23-Oct-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

pci: print PCI info in case of deferred init.

This is normally done just after init, but in the case of deferred init,
there will be nothing to print at that point.

Currently, there is no way to access that info after the system has
booted. listdev should be extended, or the info should be published in
PCI device nodes to view in the Devices app.

Change-Id: Id89377ccf8bb967abae96194e503fffc06477acf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5758
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 22cfe80c 10-Apr-2022 milek7 <me@milek7.pl>

arm64: Use ACPI for PCI interrupt routing.

Change-Id: I4bf578aacda1be44cf5b8f95681a57ab5eabda23
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5278
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: David Karoly <karolyd577@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# 26a39bed 06-Apr-2022 milek7 <me@milek7.pl>

PCI: Allow initialization to be deferred.

This is for platforms where information from parsed ACPI namespace
is necessary to fully configure PCI subsystem.

Change-Id: I8bdcfab6b99cbe7fdbc902b9fc13b44133325961
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5273
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# cba67843 18-Feb-2022 Jérôme Duval <jerome.duval@gmail.com>

pci: add set_powerstate and get_powerstate legacy hooks

Change-Id: I827112ffb1a65ada99605671b112d8fd0e6db4b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4976
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 2e8ad9a7 18-Sep-2021 Alexander von Gluck IV <kallisti5@unixzen.com>

bus_managers/pci: Init controller before io regs

* For riscv64,arm,etc, the controller init is used to
parse the fdt to detect the PCI controller.
* Without the controller being init'ed, we don't yet know
the base registers of the PCI controller for io activity
on a lot of architectures / platforms
* x86 doesn't seem to use the io regs until well after
controller init

Change-Id: I2a04e30e4dc675657b5cd9183240dafd35473998
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4484
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 97207829 25-Jul-2021 X512 <danger_mail@list.ru>

bus_managers/pci: add riscv64 support v2

* Refactored version of X512's original work to split out
the ecam and fu740 PCI Controllers

Change-Id: I631885af03b0118fb0084ed7aa4a5aa0a355b0fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4435
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 1aef13ad 10-Nov-2020 X512 <danger_mail@list.ru>

bus_managers/pci: set legacy device name to driver name

Change-Id: Idf14da8f105ab7ed6ac78053acb344045d97306a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3388
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 74c9e88b 09-Jul-2020 Michael Lotz <mmlr@mlotz.ch>

pci: Cleanup, no functional change intended.

Make mandatory argument of _GetRomBarInfo a reference too and use NULL
instead of 0 for pointer argument default value.

Some line length cleanup.

Change-Id: I1bdb59eeae4496b75fd4a1b8c5b305283da266f9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3023
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 0615a177 09-Jul-2020 Michael Lotz <mmlr@mlotz.ch>

pci: Rework 64 bit base address register handling.

This moves the entire 64 bit handling into _GetBarInfo() and applies it
to the PCI address and size too. Previously only the RAM address was
handled for the 64 bit case.

Also fixes the 64 bit check to be done after the type determination.
Previously it would theoretically be possible for an IO BAR with the
lowest address bit set for that type (bit 3) to be mistaken to be 64 bit
and then skipping/mishandling the next BAR. Due to alignment this would
have needed to be a 4 byte IO BAR though.

This also corrects the limit for 64 bit BARs of type 1 devices. As there
are only two slots, only slot 0 can be 64 bit.

Also removes a copy&paste error that would lead to the high address of
64 bit BARs of type 1 devices to get taken from the h0 instead of h1
struct, corrupting its value.

Make the mandatory arguments to _GetBarInfo() references to make the
distinction more obvious and replace 0 with NULL in the default values.

Change-Id: Iae59f2875c93f15411a4d9791e71e69ba7a42287
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3022
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# c4f5ebc3 21-Mar-2020 Jérôme Duval <jerome.duval@gmail.com>

PCI: add set_powerstate and get_powerstate hooks

Change-Id: I8e32b5fccba3461cdb1b0c6e81b15705b2be1c57
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2447
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# c1908640 01-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

bus_managers/pci: Properly handle 64-bit BAR addresses.

We need to call pci_ram_address() on the whole address, not just the
lower 32 bits, and then store both components inside the PCI info
(previously we were leaving the high bits unset.)

Very few drivers bother to check if the address is 64-bit or not,
and for the most part they don't need to care, since the PCI bus
is at 0x0 physically and will pretty much never get anywhere near
4GB in size. But the XHCI driver read these, and so would get
bogus values for the high 32 bits, as we were never setting those.

Probably fixes #15040.


# 5ffbe7d7 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change all references to "__INTEL__" to "__i386__".

They are functionally identical, but the former is a BeOS/Haiku-specfic
macro that we include in the compiler specs, and the latter is defined
by GCC.


# 16bb99fd 21-Nov-2017 François Revol <revol@free.fr>

PCI: fix ram_address() to use phys_addr_t

Since it handles physical address it should really be this.

It's not like many drivers actually used it anyway. It shouldn't harm
compatibility, drivers calling it with only 32bit would leave garbage in
the higher bits but since on x86 it's a noop anyway, it would end up in
the MSB register tha's ignored because it expects a 32bit result.


# 8986cafc 10-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI: added some missing subclasses definitions

* also renamed the HT capability mask


# ca5654d8 10-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI: added FindHTCapability() for HyperTransport capabilities.

* untested.
* as it's possible to have several HyperTransport capability blocks, the offset parameter
is used as the start pointer for the search in case it's non zero.


# b027a0a2 24-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: change offset type to uint16 in config space API.

* The config space is larger than 255, we need to use an uint16 to access
offsets superior or equal to 256. The current API only proposes an uint8 for this.
This change switches the offset parameter to the uint16 type. Axel hinted that
the used values are the same with such a change (the doc says sign extended to 2 or
4 bytes).
I checked with GCC2 and it's indeed the case when inspecting the memory.
With GCC4, instructions are the same on function call.
* prints info about extended capabilities.
* struct pci_module_info and struct pci_device_module_info are extended with
pci_find_extended_capability().


# 26a4510e 22-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: added pci_find_extended_capability().

* added PCI Extended Capabilities definitions.
* pci_find_capability() parameter offset is now optional.


# e1c44764 22-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: switched PCI::[Read|Write]Config to type uint16 for the offset.


# 343751a9 19-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: takes into account the 64bit address type

* when the 64bit address type is used, it means a BAR takes the size of two.
For the moment we just set the next base_registers to the high address
and skip to the next valid BAR. The struct is now zeroed on creation.
* the pci device information is more correct now, though it would be easier
to have BAR address and size with a 64bit types in the struct pci_info.


# e2a87aca 18-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: for io address use the corresponding mask for flags.


# 8b9c0710 26-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI bus manager: changed the type of domain from int to uint8.

* fixed narrowing conversion problem found by GCC 4.7.


# 4a9b48c1 18-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

ps2 and pci: remove debugger commands on uninit of modules


# 53eb64dd 23-Dec-2012 François Revol <revol@free.fr>

PCI: Work around devices wrongly set as bridge class by buggy BIOS

This is a proper fix for the issue I tried to fix with hrev43552.
Previous fix only fixed the stack overflow caused by it but still
generated ghost devices due to the duplicated enumeration.

Affected motherboards include FIC PA-2013 (mine), and FIC VA503+
as mentionned on:
http://lkml.indiana.edu/hypermail/linux/kernel/9912.0/0539.html

We now check the header type for bridge devices and just ignore
wrong ones.


# 12bd7812 19-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Ported PCI module to x86_64.

Uses the x86 architecture code, made fixes to printf formats and a
couple of 64-bit fixes. Only potentially intrusive change is that I've
changed PCI.h to use uint32 rather than ulong. I don't see any way
this would cause any issues, though.


# 25d6ff13 27-Feb-2012 Jérôme Duval <jerome.duval@gmail.com>

PCI: use definitions for PCI status.


# 9f6b2d77 27-Feb-2012 Jérôme Duval <jerome.duval@gmail.com>

PCI: add bridge control flags and use them.


# 781fd135 23-Dec-2011 François Revol <revol@free.fr>

Style fixes.


# a90b9b02 23-Dec-2011 François Revol <revol@free.fr>

Guard against buggy PCI bridges

* panic on pci controller init failure. No reason to continue just to crash later on.
* guard against buggy or misconfigured bridges (like the VIA Apollo MVP3 in my K6-2)
by limiting the recursion depth in FixupDevices and DiscoverBus.


# 03e3327d 18-Aug-2011 François Revol <revol@free.fr>

Add some tracing of PCI device reservations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42642 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63cffb7e 07-May-2011 Michael Lotz <mmlr@mlotz.ch>

Add a way to store a new interrupt_line value to the PCI module. It both updates
the cached pci_info and writes the new value into PCI config space. Drivers
using either mechanism to enumerate devices will therefore get the updated
value.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8dac47a 07-May-2011 Michael Lotz <mmlr@mlotz.ch>

Add a debugger command to refresh the cached pci_infos from PCI config space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2548ea21 13-Apr-2010 Michael Lotz <mmlr@mlotz.ch>

* Add the framework for adding an arch specific module to the PCI bus_manager.
* Implement such a module for x86 which currently exports only an MSI API.
* Implement the PCI part for configuring and enabling MSIs.
* Some automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36223 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e26ad5a 01-Sep-2009 François Revol <revol@free.fr>

Add functions to the old-style PCI bus manager to reserve a device from an old-style driver for exclusive use. This should help making OSS and native audio drivers mutually exclusive. Used in es1370 and hda drivers as examples. OSS must still be fixed to use it too though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32899 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ad71ed0 21-Sep-2008 Rene Gollent <anevilyak@gmail.com>

Fix a couple of broken FLOW traces.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27683 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c6bb6dfc 19-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Remove the explicit PCI interrupt configuration. Not yet sure it will be required later on anyway. Should fix the build of non-x86 targets.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26503 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69dddbde 18-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Initial work towards supporting IO APICs. This cannot work for PCI interrupts
though until we use ACPI for proper PCI IRQ routing through the IO APIC.
Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used.
ISA interrupts would work though, as would PCI interrupts if you'd hardcode
them for your specific configuration.
Note that this change also modifies some parts in the bootloader and in the PIC
setup to make local APICs available even on non-SMP systems. This causes APIC
timers to be used instead the normal PIT if it is available (also on non-SMP
configurations).
Also fixes some general errors in SMP and PIC code as well as some code cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9079144a 08-Jun-2008 Michael Lotz <mmlr@mlotz.ch>

* The bus value of child devices are not necessarily the same as the one of
the parent bus. It is possible that there are other busses below the root
bus and we must therefore always iterate through the child devices when
searching for a device with a bus unequal to our own. Otherwise devices for
non-null busses could not be found which would lead to crashes in operations
involving them.
* Adding a panic in case finding a device failed as this should clearly not
happen.

This probably fixes bug #2293 and might affect #2284 too.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25867 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 368167ed 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 705263f5 20-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Some preparations for the new driver architecture: added FindCapability(),
and {Read|Write}Config() that get a PCIDev structure, added a FindDevice()
method.
* Made sPCI a global gPCI, since the new PCI root/device modules will be using
it directly.
* Moved the functionality of pci_find_capability() into a new
PCI::FindCapability() method.
* Removed the redundant "Pci" from PCI::{Read|Write}PciConfig(), and
GetNthPciInfo().
* Added PCI::_NumFunctions() that returns the number of functions instead of
doing it manually every time.
* Tried to honour the 80 character limit, as well as other coding style things
a bit more.
* Added '_' prefix for private method names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25575 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce45f422 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

nicer formatting of the output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25552 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 694c3b75 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

fix bridge control register size


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25551 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63f68729 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Configure all PCI-PCI bridges to report errors rather than masquerade
them, which would lead to undetected data corruption.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f5831806 16-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a "pcistatus" command to KDL that prints and clears the PCI device status register.
Also clear the status register during init.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25523 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6af5db20 17-Feb-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Reuse virtual bus numbers when a mapping already exists.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23981 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc3318b6 10-Feb-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Rewrote mapping of domains and busses into a virtual bus number to
allow arbitrary bus numbers. Disabled domain support for __INTEL__.
This should fix bug #1774


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edfb3c00 23-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

disabled some debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35f6af03 16-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

PCI bus enumeration shouldn't be required on x86, thus enable it only for PPC an M68k


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65621982 10-Nov-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

New PCI quirk/fixup support.
The Jmicron AHCI controller has a mode that combines IDE and AHCI functionality
into a single PCI device at function 0. This happens when the controller is set
in the BIOS to "basic" or "IDE" mode (but not in "RAID" or "AHCI" mode).
To avoid needing two drivers to handle a single PCI device, we switch to the
multifunction (split device) AHCI mode. This will set PCI device at function 0
to AHCI, and PCI device at function 1 to IDE controller.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22868 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d5ab5bb 01-Nov-2007 François Revol <revol@free.fr>

Fixed the in8/16/32 command.
Added out8/16/32 commands.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22796 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5461952d 27-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

improved debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22085 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efd21849 02-Aug-2007 François Revol <revol@free.fr>

Add kdl commands (inb,ins,inw) to dump pci io ports (untested).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21807 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13dbe1c7 17-Feb-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Added support function to find a PCI capability offset in the configuration data, needed for SATA support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e651d817 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# badb1d4b 30-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

optimized debug output, and enabled PCI bus (re-)enumeration


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9797f71b 30-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added PCI bus (re-)enumeration for all domains, but disabled by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16158 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0827e900 25-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed unused spinlock


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d366c9e 25-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added support for multiple PCI host controllers and allow multiple PCI domains (needed for PPC).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16086 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 583578c5 23-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added experimental support for CardBus<->PCI bridges


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 948d1276 07-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed typo. Marcus, I know you are working on this, I hope you don't mind.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6094d89f 11-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12638 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e29ee2b 27-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

Made it possible to disable PCI module debug output.
This speeds up boottime with serial debug enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f7e65c7 29-Dec-2004 beveloper <beveloper@nowhere.fake>

Disable PCI device address decoding before writing to BARs.
Make header_type behave like in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10544 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66e3d451 22-Jan-2004 beveloper <beveloper@nowhere.fake>

fixed PCI device ROM detection


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1989667e 29-Sep-2003 beveloper <beveloper@nowhere.fake>

added output of pci device info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4874 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d262ee9 29-Sep-2003 beveloper <beveloper@nowhere.fake>

added reading of configuration


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4873 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9b4ce42b 29-Sep-2003 beveloper <beveloper@nowhere.fake>

new PCI bus scanning & configuration code as C++ class


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4856 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8986cafc46105dea6cdce87f2b43ddd3f536c1e5 10-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI: added some missing subclasses definitions

* also renamed the HT capability mask


# ca5654d898780fc4ac7ebf462e425dcab776d755 10-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI: added FindHTCapability() for HyperTransport capabilities.

* untested.
* as it's possible to have several HyperTransport capability blocks, the offset parameter
is used as the start pointer for the search in case it's non zero.


# b027a0a2f750e957f109e9e872662aca67b4336f 24-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: change offset type to uint16 in config space API.

* The config space is larger than 255, we need to use an uint16 to access
offsets superior or equal to 256. The current API only proposes an uint8 for this.
This change switches the offset parameter to the uint16 type. Axel hinted that
the used values are the same with such a change (the doc says sign extended to 2 or
4 bytes).
I checked with GCC2 and it's indeed the case when inspecting the memory.
With GCC4, instructions are the same on function call.
* prints info about extended capabilities.
* struct pci_module_info and struct pci_device_module_info are extended with
pci_find_extended_capability().


# 26a4510e591b2d12b5191918ca4e92a5f94b2bd5 22-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: added pci_find_extended_capability().

* added PCI Extended Capabilities definitions.
* pci_find_capability() parameter offset is now optional.


# e1c44764ef30ce2fd53219561bd3c2d582334882 22-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: switched PCI::[Read|Write]Config to type uint16 for the offset.


# 343751a96c43a0c3074d6f1d5526ff3ae80fb267 19-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: takes into account the 64bit address type

* when the 64bit address type is used, it means a BAR takes the size of two.
For the moment we just set the next base_registers to the high address
and skip to the next valid BAR. The struct is now zeroed on creation.
* the pci device information is more correct now, though it would be easier
to have BAR address and size with a 64bit types in the struct pci_info.


# e2a87acacdba3d08deae06280d4d75ecab8d89b6 18-Jun-2013 Jérôme Duval <jerome.duval@gmail.com>

pci: for io address use the corresponding mask for flags.


# 8b9c0710cd302a4fe5a4920792fbc5659fe85b6c 26-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI bus manager: changed the type of domain from int to uint8.

* fixed narrowing conversion problem found by GCC 4.7.


# 4a9b48c1c5178fd1e5b64e0494971c4fd900b89f 18-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

ps2 and pci: remove debugger commands on uninit of modules


# 53eb64dd71b843957962959403e6fb27c99bc871 23-Dec-2012 François Revol <revol@free.fr>

PCI: Work around devices wrongly set as bridge class by buggy BIOS

This is a proper fix for the issue I tried to fix with hrev43552.
Previous fix only fixed the stack overflow caused by it but still
generated ghost devices due to the duplicated enumeration.

Affected motherboards include FIC PA-2013 (mine), and FIC VA503+
as mentionned on:
http://lkml.indiana.edu/hypermail/linux/kernel/9912.0/0539.html

We now check the header type for bridge devices and just ignore
wrong ones.


# 12bd7812dd6b6eadb65789ca9fc2e270d7d66fd4 19-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Ported PCI module to x86_64.

Uses the x86 architecture code, made fixes to printf formats and a
couple of 64-bit fixes. Only potentially intrusive change is that I've
changed PCI.h to use uint32 rather than ulong. I don't see any way
this would cause any issues, though.


# 25d6ff130c5fcc0d7a4f4e9f185ee94abbd26af7 27-Feb-2012 Jérôme Duval <jerome.duval@gmail.com>

PCI: use definitions for PCI status.


# 9f6b2d77b7ce3a223064362640f15689f3fa92ff 27-Feb-2012 Jérôme Duval <jerome.duval@gmail.com>

PCI: add bridge control flags and use them.


# 781fd13550641d94097d981d93c0b2800f550032 23-Dec-2011 François Revol <revol@free.fr>

Style fixes.


# a90b9b0221951bdc75d261200046eb62b5344b6f 23-Dec-2011 François Revol <revol@free.fr>

Guard against buggy PCI bridges

* panic on pci controller init failure. No reason to continue just to crash later on.
* guard against buggy or misconfigured bridges (like the VIA Apollo MVP3 in my K6-2)
by limiting the recursion depth in FixupDevices and DiscoverBus.


# 03e3327d33bef1f1ed3160b8da7df20630412317 18-Aug-2011 François Revol <revol@free.fr>

Add some tracing of PCI device reservations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42642 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63cffb7ee364813e37e50b40444a2c071952f92d 07-May-2011 Michael Lotz <mmlr@mlotz.ch>

Add a way to store a new interrupt_line value to the PCI module. It both updates
the cached pci_info and writes the new value into PCI config space. Drivers
using either mechanism to enumerate devices will therefore get the updated
value.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8dac47aab28e727fdf644079ec1e7cc381adf70 07-May-2011 Michael Lotz <mmlr@mlotz.ch>

Add a debugger command to refresh the cached pci_infos from PCI config space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2548ea219a5c97355b49de1523c8158887937220 13-Apr-2010 Michael Lotz <mmlr@mlotz.ch>

* Add the framework for adding an arch specific module to the PCI bus_manager.
* Implement such a module for x86 which currently exports only an MSI API.
* Implement the PCI part for configuring and enabling MSIs.
* Some automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36223 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e26ad5af7cb5f8308f6fb9688b2e8b49ad290cb 01-Sep-2009 François Revol <revol@free.fr>

Add functions to the old-style PCI bus manager to reserve a device from an old-style driver for exclusive use. This should help making OSS and native audio drivers mutually exclusive. Used in es1370 and hda drivers as examples. OSS must still be fixed to use it too though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32899 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ad71ed0a032b30fd3356149fad398106c6b493b 21-Sep-2008 Rene Gollent <anevilyak@gmail.com>

Fix a couple of broken FLOW traces.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27683 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c6bb6dfcf0dd51d677a2aec0f9a90d70e57f3712 19-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Remove the explicit PCI interrupt configuration. Not yet sure it will be required later on anyway. Should fix the build of non-x86 targets.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26503 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69dddbdea163b79cfb464b4a1bc18e6533ab06ff 18-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Initial work towards supporting IO APICs. This cannot work for PCI interrupts
though until we use ACPI for proper PCI IRQ routing through the IO APIC.
Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used.
ISA interrupts would work though, as would PCI interrupts if you'd hardcode
them for your specific configuration.
Note that this change also modifies some parts in the bootloader and in the PIC
setup to make local APICs available even on non-SMP systems. This causes APIC
timers to be used instead the normal PIT if it is available (also on non-SMP
configurations).
Also fixes some general errors in SMP and PIC code as well as some code cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9079144ace00c939e2fb92a3bfd1c119e1b66b74 08-Jun-2008 Michael Lotz <mmlr@mlotz.ch>

* The bus value of child devices are not necessarily the same as the one of
the parent bus. It is possible that there are other busses below the root
bus and we must therefore always iterate through the child devices when
searching for a device with a bus unequal to our own. Otherwise devices for
non-null busses could not be found which would lead to crashes in operations
involving them.
* Adding a panic in case finding a device failed as this should clearly not
happen.

This probably fixes bug #2293 and might affect #2284 too.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25867 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 368167ede8118f72da8c9ac5bb98ce9b46a8a639 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 705263f5b30e9f6df57140be66bb1613c6e4ad1c 20-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Some preparations for the new driver architecture: added FindCapability(),
and {Read|Write}Config() that get a PCIDev structure, added a FindDevice()
method.
* Made sPCI a global gPCI, since the new PCI root/device modules will be using
it directly.
* Moved the functionality of pci_find_capability() into a new
PCI::FindCapability() method.
* Removed the redundant "Pci" from PCI::{Read|Write}PciConfig(), and
GetNthPciInfo().
* Added PCI::_NumFunctions() that returns the number of functions instead of
doing it manually every time.
* Tried to honour the 80 character limit, as well as other coding style things
a bit more.
* Added '_' prefix for private method names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25575 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce45f422182b3e4ab572b15b66a14810edcfe8e0 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

nicer formatting of the output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25552 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 694c3b75f4a0c0b3d41bf98f2543ff207d58a37e 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

fix bridge control register size


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25551 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63f68729a83ffa7931cba237d0ba5601f77f5434 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Configure all PCI-PCI bridges to report errors rather than masquerade
them, which would lead to undetected data corruption.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f5831806ff93ba5970ba4b96e8a4cb5a38116bcc 16-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a "pcistatus" command to KDL that prints and clears the PCI device status register.
Also clear the status register during init.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25523 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6af5db20f4a932cc256d39f2a0bf769ef9e4dc72 17-Feb-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Reuse virtual bus numbers when a mapping already exists.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23981 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc3318b640828c3d923b1b4a90eb68f2f71d4075 10-Feb-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Rewrote mapping of domains and busses into a virtual bus number to
allow arbitrary bus numbers. Disabled domain support for __INTEL__.
This should fix bug #1774


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edfb3c00bcdc240de61227bbb35e73d228c6019a 23-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

disabled some debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35f6af0388812fb8b50d0d38555d58014d20e41f 16-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

PCI bus enumeration shouldn't be required on x86, thus enable it only for PPC an M68k


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65621982c96e3b6f3fddb26ab2776fa75ce0535b 10-Nov-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

New PCI quirk/fixup support.
The Jmicron AHCI controller has a mode that combines IDE and AHCI functionality
into a single PCI device at function 0. This happens when the controller is set
in the BIOS to "basic" or "IDE" mode (but not in "RAID" or "AHCI" mode).
To avoid needing two drivers to handle a single PCI device, we switch to the
multifunction (split device) AHCI mode. This will set PCI device at function 0
to AHCI, and PCI device at function 1 to IDE controller.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22868 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d5ab5bb5e9b91142c2200f5a9fbce01c1b3edca 01-Nov-2007 François Revol <revol@free.fr>

Fixed the in8/16/32 command.
Added out8/16/32 commands.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22796 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5461952df610d0c3496d2b514f034b1cec0e87ae 27-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

improved debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22085 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efd218492294161bd4e1be0db79e703266fbac37 02-Aug-2007 François Revol <revol@free.fr>

Add kdl commands (inb,ins,inw) to dump pci io ports (untested).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21807 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13dbe1c7fffb30b6b56bdb30f26108783d32edac 17-Feb-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Added support function to find a PCI capability offset in the configuration data, needed for SATA support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e651d817a79c7efc651a637f91a30a316d54a3a4 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# badb1d4be6efa056197bc47949ba5e14f29c9413 30-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

optimized debug output, and enabled PCI bus (re-)enumeration


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9797f71b2370aa648a3cdb6496d39bd0702cad75 30-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added PCI bus (re-)enumeration for all domains, but disabled by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16158 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0827e900cd7b89384d90b2d31c5d67dec1cd740c 25-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed unused spinlock


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d366c9e007778e48337deadfdd421b2ca50b991 25-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added support for multiple PCI host controllers and allow multiple PCI domains (needed for PPC).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16086 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 583578c55737f388b2991c00ce4f415e3f688979 23-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added experimental support for CardBus<->PCI bridges


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 948d1276e657d1afba092dc3c7fa1b6f0e4ed6a7 07-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed typo. Marcus, I know you are working on this, I hope you don't mind.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6094d89f2f0db00588b30428810e3cddc6b22731 11-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12638 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e29ee2b74680c70c3fcb87069cbcad5525df1a6 27-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

Made it possible to disable PCI module debug output.
This speeds up boottime with serial debug enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f7e65c79a8990783cf2c2d4caccc05d92adbee4 29-Dec-2004 beveloper <beveloper@nowhere.fake>

Disable PCI device address decoding before writing to BARs.
Make header_type behave like in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10544 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66e3d4510e52c4a8e580343953114c169ff18d88 22-Jan-2004 beveloper <beveloper@nowhere.fake>

fixed PCI device ROM detection


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1989667e2eca38d5d534f172acdbb37d49630f00 29-Sep-2003 beveloper <beveloper@nowhere.fake>

added output of pci device info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4874 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d262ee9fbf286a4ef229240f38d599726b3a410 29-Sep-2003 beveloper <beveloper@nowhere.fake>

added reading of configuration


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4873 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9b4ce42bf23d79a23bef0ee596484e7e15ebaea0 29-Sep-2003 beveloper <beveloper@nowhere.fake>

new PCI bus scanning & configuration code as C++ class


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4856 a95241bf-73f2-0310-859d-f6bbb57e9c96