History log of /haiku/src/add-ons/kernel/bus_managers/pci/pci_info.cpp
Revision Date Author Comments
# f193f67f 05-Oct-2022 Jérôme Duval <jerome.duval@gmail.com>

pci_utils: get_class_info() needs at least 70 chars, make it 128.

seen on https://dev.haiku-os.org/attachment/ticket/17970/syslog_timestamp_hrev56511.txt#L131

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


# a191388e 23-Mar-2022 Jérôme Duval <jerome.duval@gmail.com>

pci: add some pcie extensions labels

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


# 7f5e1044 26-Mar-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

pci_info: print 64bit BARs in a more readable way

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


# 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.


# 0c0f333a 09-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI: added MSI-X and HyperTransport definitions

* renamed PCI_cap_id_ldt to PCI_cap_id_ht


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

pci: memory behind bridge wasn't padded correctly.


# 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().


# 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.


# 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.


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

PCI: print human readable ranges for PCI-PCI bridge.

* pci_info: computes I/O, memory and prefetchable memory windows
and displays them instead of raw register values.


# 30fc876c 04-Dec-2011 François Revol <revol@free.fr>

Only use PCI strings for x86 for now. On m68k at least those make the boot tgz exceed the floppy image size.
Maybe this should be moved to BuildSetup, or just discarded, they are only used for printing vendor names at boot...


# da3e6946 03-Nov-2011 François Revol <revol@free.fr>

Fix building without USE_PCI_HEADER defined.
Btw, do we *really* need this ? removing it saved 1MB in the pci bus_manager binary,
and makes it possible again to use 1.44MB floppy images...
Besides the only people who woul'd ever see the output (in syslog) are those who know
how to look the IDs up anyway. listdev and Devices have their own copy of those strings.


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


# 27e6c57b 12-Jun-2009 Jérôme Duval <korli@users.berlios.de>

added some PCI capabilities, wireless class values


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31020 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


# 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


# 996f75ab 12-May-2008 Jérôme Duval <korli@users.berlios.de>

* the Chip field is currently unused in our pci ids list, so we prefer to provide the subsystem name when it is found as a second device description
* adjusted pci device dump


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25472 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


# 9e8dd0a7 22-Feb-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added PCI express capability


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


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

added SATA capability to debug output


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


# 07d5767d 14-Nov-2006 Jérôme Duval <korli@users.berlios.de>

get_class_info takes a size argument
listdev displays scsi devices


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


# 91b1b84a 13-Nov-2006 Jérôme Duval <korli@users.berlios.de>

factorized pcihdr.h search code


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


# ed67ddb8 11-Sep-2006 Jérôme Duval <korli@users.berlios.de>

break the loop when a device/vendor is found


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


# 2634e48f 11-Sep-2006 Jérôme Duval <korli@users.berlios.de>

try at taking into account the subvendor id and the subsystem id for device info


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


# d940ea11 12-Feb-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed space


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


# 79ea00d6 25-Jan-2006 Jérôme Duval <korli@users.berlios.de>

added checks for null pointers in pcihdr.h structs


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16092 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


# 6337bf06 23-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

improved text layout


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16054 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


# 3100a10a 28-May-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

fixed "unknown header type" problem


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


# 6c21f091 28-May-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

Added debug output of PCI capabilites.
Watch out for DebugPort on USB2 devices.
I didn't find one so far.
Changed from OpenBeOS to MIT license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12873 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


# fb86eb2c 26-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed all warnings, added license.


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


# 209d9675 30-Sep-2003 beveloper <beveloper@nowhere.fake>

added decoding of PCI class
included use of PCI Header file with vendor/device information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4876 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


# 51e44e6e 29-Sep-2003 beveloper <beveloper@nowhere.fake>

added missing include file


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


# 3348f6b7 29-Sep-2003 beveloper <beveloper@nowhere.fake>

basic pci information


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


# 0c0f333a67770cd68b21d906ec97f2f5d127d162 09-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

PCI: added MSI-X and HyperTransport definitions

* renamed PCI_cap_id_ldt to PCI_cap_id_ht


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

pci: memory behind bridge wasn't padded correctly.


# 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().


# 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.


# 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.


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

PCI: print human readable ranges for PCI-PCI bridge.

* pci_info: computes I/O, memory and prefetchable memory windows
and displays them instead of raw register values.


# 30fc876c38311e105d5fb731f0beae06c2f28c1d 04-Dec-2011 François Revol <revol@free.fr>

Only use PCI strings for x86 for now. On m68k at least those make the boot tgz exceed the floppy image size.
Maybe this should be moved to BuildSetup, or just discarded, they are only used for printing vendor names at boot...


# da3e69467908d8b8c425cf548c0d162462c46e0e 03-Nov-2011 François Revol <revol@free.fr>

Fix building without USE_PCI_HEADER defined.
Btw, do we *really* need this ? removing it saved 1MB in the pci bus_manager binary,
and makes it possible again to use 1.44MB floppy images...
Besides the only people who woul'd ever see the output (in syslog) are those who know
how to look the IDs up anyway. listdev and Devices have their own copy of those strings.


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


# 27e6c57b6a0644077e133849ee3b4ae3aeac5485 12-Jun-2009 Jérôme Duval <korli@users.berlios.de>

added some PCI capabilities, wireless class values


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31020 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


# 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


# 996f75abbb0b2257b43a224995c932ca92d70418 12-May-2008 Jérôme Duval <korli@users.berlios.de>

* the Chip field is currently unused in our pci ids list, so we prefer to provide the subsystem name when it is found as a second device description
* adjusted pci device dump


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25472 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


# 9e8dd0a7132f00ba9f27b5f373768704017f70c7 22-Feb-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added PCI express capability


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


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

added SATA capability to debug output


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


# 07d5767deceb837edeef126c7266e3b109b3ec1e 14-Nov-2006 Jérôme Duval <korli@users.berlios.de>

get_class_info takes a size argument
listdev displays scsi devices


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


# 91b1b84abd5d9c575e85d0d25c1a7515f5214e5c 13-Nov-2006 Jérôme Duval <korli@users.berlios.de>

factorized pcihdr.h search code


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


# ed67ddb83de341e7252bb1347927e3e73949d4a0 11-Sep-2006 Jérôme Duval <korli@users.berlios.de>

break the loop when a device/vendor is found


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


# 2634e48f59847661ffe036dd9b411262c195704a 11-Sep-2006 Jérôme Duval <korli@users.berlios.de>

try at taking into account the subvendor id and the subsystem id for device info


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


# d940ea1189287a7f4173784c0c150c2132d16371 12-Feb-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed space


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


# 79ea00d63e5dcd775eb087af97cafb278dbbf924 25-Jan-2006 Jérôme Duval <korli@users.berlios.de>

added checks for null pointers in pcihdr.h structs


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16092 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


# 6337bf06a047b2bc6952149d845f3f0d66e593c8 23-Jan-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

improved text layout


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16054 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


# 3100a10aa17bbfeb6f12c6c73b820e8b95498de1 28-May-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

fixed "unknown header type" problem


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


# 6c21f09133fe3d531095a39a3aafed00c3b48993 28-May-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

Added debug output of PCI capabilites.
Watch out for DebugPort on USB2 devices.
I didn't find one so far.
Changed from OpenBeOS to MIT license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12873 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


# fb86eb2c0037e43934acffd334649f2086a02b7a 26-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed all warnings, added license.


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


# 209d9675086fcc86ae89c2b93b6ba45b7038d7d3 30-Sep-2003 beveloper <beveloper@nowhere.fake>

added decoding of PCI class
included use of PCI Header file with vendor/device information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4876 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


# 51e44e6ee4191f87557d12a412dbd9a498732394 29-Sep-2003 beveloper <beveloper@nowhere.fake>

added missing include file


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


# 3348f6b7fadb9040873c5fb9f85981c7fd869bfc 29-Sep-2003 beveloper <beveloper@nowhere.fake>

basic pci information


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