|
Revision tags: v3.14.0 |
|
| #
021d41cf |
| 28-Nov-2024 |
GuEe-GUI <[email protected]> |
Port to RT-Thread Smart DM PCI
Signed-off-by: GuEe-GUI <[email protected]>
|
|
Revision tags: v3.13.0, v3.12.0, v3.11.1 |
|
| #
45152bc3 |
| 24-Feb-2024 |
Martin Mares <[email protected]> |
lib/init.c: Fixed a typo causing compilation on Windows to fail
The typo was introduced by merging the AmigaOS back-end.
|
|
Revision tags: v3.11.0 |
|
| #
f022f467 |
| 18-Feb-2024 |
Martin Mares <[email protected]> |
Location of name cache now follows XDG base dir specification
We also create parent directories of net.cache_name automatically.
Tilde expansion is performed internally and it does not change user-
Location of name cache now follows XDG base dir specification
We also create parent directories of net.cache_name automatically.
Tilde expansion is performed internally and it does not change user-specified net.cache_name any longer.
show more ...
|
| #
5b52ae79 |
| 22-Jan-2024 |
Agg242 <[email protected]> |
New back-end for AmigaOS on PowerPC
|
| #
61829219 |
| 18-Jun-2023 |
Martin Mares <[email protected]> |
Update license comments and added SPDX license identifiers
Previously, the only information about the specific version of GPL was present in the README and individual source files mentioned only GPL
Update license comments and added SPDX license identifiers
Previously, the only information about the specific version of GPL was present in the README and individual source files mentioned only GPL alone.
Let us update all copyright comments to explicitly say "GPL v2+" and also include the machine readable SPDX license identifier.
show more ...
|
|
Revision tags: v3.10.0 |
|
| #
2ba0f6f4 |
| 29-Jan-2023 |
Pali Rohár <[email protected]> |
libpci: Add PCIe ECAM access method
This is a new direct hardware access method via PCIe ECAM (Enhanced Configuration Access Mechanism). It is available on all PCIe-compliant hardware. Requires root
libpci: Add PCIe ECAM access method
This is a new direct hardware access method via PCIe ECAM (Enhanced Configuration Access Mechanism). It is available on all PCIe-compliant hardware. Requires root privileges and access to physical memory.
ECAM mapping can be specified manually via a new ecam.addrs parameter or can be read from ACPI MCFG table. ACPI MCFG table can be located in the system or read from x86 BIOS memory.
show more ...
|
| #
1249c980 |
| 04-Mar-2023 |
Martin Mares <[email protected]> |
Fix bug in previous commit
|
| #
ea404c2a |
| 04-Mar-2023 |
Martin Mares <[email protected]> |
win32-cfgmgr32: Clean up initialization
|
| #
848123eb |
| 30-Dec-2022 |
Pali Rohár <[email protected]> |
libpci: win32-cfgmgr32: Add support for accessing config space via other backend
Extend win32-cfgmgr32 backend and add a new option win32.cfgmethod for specifying other backend for accessing PCI con
libpci: win32-cfgmgr32: Add support for accessing config space via other backend
Extend win32-cfgmgr32 backend and add a new option win32.cfgmethod for specifying other backend for accessing PCI config space. There are more config space access methods available on Windows and each is working only sometimes (either requires special privileges or special setup).
So by default try to choose the first working one via order defined in pci probe_sequence[] array. If none is available then emulate PCI config space like before this change.
Function pci_init_v35() is extended and renamed to pci_init_internal() to optionally do not throw errors and allow to specify one access method which will be skipped in AUTO mode. This is used to prevent choosing win32-cfgmgr32 as config space access method for win32-cfgmgr32.
show more ...
|
|
Revision tags: v3.9.0 |
|
| #
64d7bab6 |
| 18-Nov-2022 |
Pali Rohár <[email protected]> |
libpci: windows: Handle long paths generated by GetModuleFileName()
C function fopen() implemented by msvcrt.dll requires special prefix "\\\\?\\" for paths longer than 260 bytes. Because GetModuleF
libpci: windows: Handle long paths generated by GetModuleFileName()
C function fopen() implemented by msvcrt.dll requires special prefix "\\\\?\\" for paths longer than 260 bytes. Because GetModuleFileName() returns absolute path, it may be longer than 260 bytes. Add fixup to handle long paths.
show more ...
|
| #
6cf9052e |
| 18-Nov-2022 |
Pali Rohár <[email protected]> |
libpci: windows: Fix path returned by GetModuleFileName()
GetModuleFileName() on Windows 10 has bugs and returns bogus path. Implement fixups to make path usable for later fopen() call.
|
| #
43fd29c7 |
| 18-Nov-2022 |
Pali Rohár <[email protected]> |
libpci: djgpp: Allow to specify empty IDSDIR=
Like for windows builds this will cause to load pci.ids file from the same directory where is stored application binary. Code is same as for Windows, ju
libpci: djgpp: Allow to specify empty IDSDIR=
Like for windows builds this will cause to load pci.ids file from the same directory where is stored application binary. Code is same as for Windows, just djgpp uses global symbol __dos_argv0 instead of _pgmptr.
Tested with following compile command: make CROSS_COMPILE=i586-pc-msdosdjgpp- HOST=i586-djgpp ZLIB=no DNS=no IDSDIR=
show more ...
|
| #
a7a7aaea |
| 18-Nov-2022 |
Pali Rohár <[email protected]> |
libpci: windows: Fix locating path to pci.ids file for DLL builds
When using shared libpci DLL library, it is expected that pci.ids file is stored in directory where is also libpci DLL library and n
libpci: windows: Fix locating path to pci.ids file for DLL builds
When using shared libpci DLL library, it is expected that pci.ids file is stored in directory where is also libpci DLL library and not in directory where is application executable.
Based on the build mode and compile options, choose the appropriate function for retrieving path to the libpci DLL library or application executable. Also pass correct module argument to GetModuleFileName() call.
show more ...
|
| #
03829658 |
| 18-Nov-2022 |
Pali Rohár <[email protected]> |
libpci: windows: Fix usage of GetModuleFileName()
Module file name can have arbitrary length despite all MS examples say about MAX_PATH upper limit. This limit does not apply for example when execut
libpci: windows: Fix usage of GetModuleFileName()
Module file name can have arbitrary length despite all MS examples say about MAX_PATH upper limit. This limit does not apply for example when executable is running from network disk with very long UNC paths or when using "\\??\\" prefix for specifying executable binary path.
So handle buffer truncatenation by retrying GetModuleFileName() call with larger buffer.
Fixes loading of pci.ids file when lspci.exe binary is running from network drive with path longer than 260 bytes.
show more ...
|
|
Revision tags: v3.8.0 |
|
| #
e2d9340b |
| 02-Jan-2022 |
Pali Rohár <[email protected]> |
libpci: mmio-ports: Add Extended PCIe Intel Type 1 access method
Extended method allows to access all PCIe registers, including extended registers starting at 0x100 offset. This method uses 4 reserv
libpci: mmio-ports: Add Extended PCIe Intel Type 1 access method
Extended method allows to access all PCIe registers, including extended registers starting at 0x100 offset. This method uses 4 reserved buts above bus bits for PCIe registers. On ARM platforms it is very common for PCIe controllers. Like standard method, it needs to be properly configured.
show more ...
|
| #
aa5a16ef |
| 04-Mar-2022 |
Pali Rohár <[email protected]> |
libpci: Add new windows kldbgdrv.sys implementation
Microsoft Kernel Local Debugging Driver (kldbgdrv.sys) allow access for userspace processes to the PCI config space. It supports access up to 6553
libpci: Add new windows kldbgdrv.sys implementation
Microsoft Kernel Local Debugging Driver (kldbgdrv.sys) allow access for userspace processes to the PCI config space. It supports access up to 65536 domains and whole 4096 bytes long extended PCIe config space. Driver is signed by Microsoft and is available for both 32-bit and 64-bit systems.
Driver is not part of Windows system and has to be installed via WinDbg installation package. Standalone installers for WinDbg 6.12.2.633 version: https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools_amd64/dbg_amd64.msi https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools/dbg_x86.msi
This kldbgdrv.sys API is used by the !pci command of new WinDbg kernel debugger for displaying PCI config space.
API of this driver is available only for processes with Debug privilege and only if system was booted with Debugging option.
show more ...
|
| #
0a7350fb |
| 02-Jan-2022 |
Pali Rohár <[email protected]> |
libpci: Add Intel Type 1 implementation for memory mapped systems
Lot of non-x86 platforms also support Intel Type 1 mechanism. x86 IO ports CF8 and CFC are on these platforms mapped into standard m
libpci: Add Intel Type 1 implementation for memory mapped systems
Lot of non-x86 platforms also support Intel Type 1 mechanism. x86 IO ports CF8 and CFC are on these platforms mapped into standard memory space. Address mapping itself is platform or board specific and there is no default value.
Lot of ARM boards with multiple PCIe controllers are multi-domain and each PCI domain has its own CF8/CFC (address/data) registers mapped into memory space.
Add new mmio-conf1 backend which access CF8/CFC ports via MMIO and define new config option mmio-conf1.addrs which specify list of address/data register pairs in memory space for each PCI domain. Format of this option is: 0xaddr1/0xdata1,0xaddr2/0xdata2,...
show more ...
|
| #
2d0af6fc |
| 02-Jan-2022 |
Pali Rohár <[email protected]> |
libpci: Add new windows NT sysdbg implementation
NT SysDbg interface allow access to the PCI config space. Only devices on the first domain are available and only first 256 bytes of the PCI config s
libpci: Add new windows NT sysdbg implementation
NT SysDbg interface allow access to the PCI config space. Only devices on the first domain are available and only first 256 bytes of the PCI config space can be accessed. Compared to intel-conf1 access, this API is race free as NT kernel serialize access to PCI I/O ports. This NT SysDbg API is used by the !pci command of 32-bit WinDbg kernel debugger for displaying PCI config space. Debug privilege is required to use this NT interface.
show more ...
|
| #
5f93596f |
| 27-Feb-2022 |
Pali Rohár <[email protected]> |
libpci: Always call pci_set_name_list_path() in pci_init_name_list_path()
If pci_init_name_list_path() does not call pci_set_name_list_path() then a->id_file_name variable is NULL and pci_load_name_
libpci: Always call pci_set_name_list_path() in pci_init_name_list_path()
If pci_init_name_list_path() does not call pci_set_name_list_path() then a->id_file_name variable is NULL and pci_load_name_list() would crash as it tries to do fopen(NULL, ...).
If libpci was configured at compile time to use current executable path for locating pci.ids file and it is not possible to determinate current executable path then call pci_set_name_list_path() with just filename without path (this would fallback to the current working directory).
show more ...
|
| #
26c8b543 |
| 31-Dec-2021 |
Pali Rohár <[email protected]> |
libpci: Add windows cfgmgr32 implementation
Access via cfgmgr32.dll library allows to list PCI devices and retrieve their basic properties and system resource configuration. Access is available to a
libpci: Add windows cfgmgr32 implementation
Access via cfgmgr32.dll library allows to list PCI devices and retrieve their basic properties and system resource configuration. Access is available to all users and should not require special privileges, access tokens, rights or permissions.
This cfgmgr32.dll library does not provide access to PCI config space.
show more ...
|
| #
eeef8fed |
| 21-Jan-2022 |
Martin Mares <[email protected]> |
pci.h: The error callback is now declared with PCI_NONRET
Users of the repeatedly complain that the library crashes, which is usually caused by providing an error hook which returns to the library.
pci.h: The error callback is now declared with PCI_NONRET
Users of the repeatedly complain that the library crashes, which is usually caused by providing an error hook which returns to the library. Let's try warning them more explicitly.
show more ...
|
| #
79978004 |
| 26-Dec-2021 |
Martin Mares <[email protected]> |
Factored out initialization of name list path
|
| #
2608d8f7 |
| 26-Dec-2021 |
Pali Rohár <[email protected]> |
libpci: For PCI_OS_WINDOWS allows to load pci.ids from executable directory
For Windows applications it is common to have all support data files in the same directory where is stored executable itse
libpci: For PCI_OS_WINDOWS allows to load pci.ids from executable directory
For Windows applications it is common to have all support data files in the same directory where is stored executable itself, instead of in directory hardcoded at compile time.
When PCI_PATH_IDS_DIR is set to "." it means that pci.ids file is located in the current working directory. This is also unsuitable for Windows command line applications stored in %PATH% because cmd.exe starts in some default user or system location.
Adds a new option to allow specifying PCI_PATH_IDS_DIR to empty string "" and for PCI_OS_WINDOWS platform it would mean to locate pci.ids file in the same directory where is stored currently running executable. On Windows it is always possible to detected this directory.
show more ...
|
| #
b9927f14 |
| 26-Dec-2021 |
Martin Mares <[email protected]> |
Fix malloc error handling when pci_access is not fully initialized
There were multiple cases, in which malloc failure was either unchecked, or a->error was called even though it was NULL.
|
|
Revision tags: v3.7.0, v3.6.4, v3.6.3 |
|
| #
0a913370 |
| 30-Nov-2019 |
Joan Lledó <[email protected]> |
New access method: Hurd via RPCs
A new module for the Hurd that accesses PCI bus using available RPCs.
|