History log of /openbsd-src/sys/dev/pci/pci.c (Results 1 – 25 of 129)
Revision Date Author Comments
# 5c961518 10-Aug-2024 kettenis <kettenis@openbsd.org>

Some AMD Ryzen xHCI controllers need a bit more time to transition from D3
into D0. Fixes xhci(4) issues after resume.

ok deraadt@


# e3d50907 18-Mar-2024 kettenis <kettenis@openbsd.org>

Reduce dmesg spam and only print about resource conflicts for resources
that are actually enabled.

ok dlg@, deraadt@


# 70806531 13-Apr-2023 miod <miod@openbsd.org>

Grammar fixes in comments.


# c7f2c3aa 27-Nov-2022 kn <kn@openbsd.org>

Remove last queue(3) *_END() usage from tree

queue(3) NOTES says they're deprecated and expand to NULL; indeed.

No object change.
OK kettenis mvs


# 377b8a5e 17-Jun-2022 kettenis <kettenis@openbsd.org>

Only probe device 0 on PCI busses corresponding to a PCIe root port or a
PCIe switch/bridge downstream port. This fixes an issue where a device would
show up 32 times if the PCIe port does not termi

Only probe device 0 on PCI busses corresponding to a PCIe root port or a
PCIe switch/bridge downstream port. This fixes an issue where a device would
show up 32 times if the PCIe port does not terminate configuration requests
targeted at device numbers 1-31 as required by the spec and the PCIe device
does not filter requests based on its own device number. Linux, NetBSD and
FreeBSD (to some extent) already do this.

This should fix an issue seen on Ampere Altra where the BMC's PCI bridge
and USB controller would show up multiple times.

ok jsg@

show more ...


# 8d2c75e4 11-Mar-2022 mpi <mpi@openbsd.org>

Constify struct cfattach.


# 22060bbf 05-Jan-2022 deraadt <deraadt@openbsd.org>

Compensate for i386 pcitag_t union
ok jsg kettenis


# fae5bdc0 04-Jan-2022 kettenis <kettenis@openbsd.org>

Restrict the pci(4) ioctl interface to devices detected by the kernel.
This fixes issues on the M1 Macs where the PCI probe done by Xorg
breaks the WiFi chip.

ok patrick@


# a7c97ccf 02-Jan-2022 jsg <jsg@openbsd.org>

addres -> address


# bc8858ce 23-Jul-2021 jmatthew <jmatthew@openbsd.org>

pci_intr_msix_count() is the function that drivers using multiple MSI-X
vectors use to decide whether to use MSI-X, so make it return 0 if MSI
is not enabled for the device.

fixes problems with ix(4

pci_intr_msix_count() is the function that drivers using multiple MSI-X
vectors use to decide whether to use MSI-X, so make it return 0 if MSI
is not enabled for the device.

fixes problems with ix(4) on older amd64 hardware and current riscv64
ok kettenis@ dlg@

show more ...


# 2a0e15d2 08-Sep-2020 kettenis <kettenis@openbsd.org>

Add a function to scan for PCI Express extended capabilities.

From jordan@, with a few more tweaks by myself.


# d8c65c0d 26-Jun-2020 dlg <dlg@openbsd.org>

byteswap vpd data going out to userland.

makes pcidump output look more plausible on big endian boxes.

ok jmatthew@


# 530b71a3 22-Jun-2020 dlg <dlg@openbsd.org>

let userland read vpd info from a pci device.

reading vpd stuff is useful when you're trying to get support
information about a pci device, eg, if you want a serial number,
or firmware versions, or

let userland read vpd info from a pci device.

reading vpd stuff is useful when you're trying to get support
information about a pci device, eg, if you want a serial number,
or firmware versions, or specific part name or number, it's likely
available via vpd. also, im sick of having the diff in my tree.

the vpd info is not accessed as bytes read from a capability, but
is read via a register in the capability. the same register also
supports updating or writing vpd info, which sounds like a bad idea
to let userland have raw access to.

this adds an ioctl so that userland can ask the kernel to read via
the vpd register on its behalf. this ensures that the only access
is read access, and it's sanity checked.

tested by hrvoje popovski on many devices.
ok jmatthew@

show more ...


# 0647bbab 17-Jun-2020 dlg <dlg@openbsd.org>

add pci_intr_msix_count(), to get the msi-x table size for a device.

this basically tells us the number of interrupt vectors a pci device
is able to support. it relies on the arch having __HAVE_PCI_

add pci_intr_msix_count(), to get the msi-x table size for a device.

this basically tells us the number of interrupt vectors a pci device
is able to support. it relies on the arch having __HAVE_PCI_MSIX
defined. without that define it always returns 0.

i think this originally came from haesbart via patrick@ as amd64
md code in the middle of a diff from 2018(!), but i've tweaked it
to make it MI.

tested on sparc64 and amd64 with various drivers.

show more ...


# c7616f37 15-Jan-2020 cheloha <cheloha@openbsd.org>

pci(4): PCIOCSETVGA: tsleep(9) -> tsleep_nsec(9); ok mpi@


# 4211e504 25-Jun-2019 kettenis <kettenis@openbsd.org>

Implement suspend/resume support for MSI-X interrupts. Loosely based on
an earlier diff from sf@.

ok jmatthew@, also ok mlarkin@, sf@ for a slightly different earlier version


# 9864457b 08-Jun-2019 dlg <dlg@openbsd.org>

disambiguate memory extent conflicts for membars and rom addresses

there's some more work to do in this space, but this helps us start.

ok kettenis@


# cf3c8ce0 28-Jul-2018 kettenis <kettenis@openbsd.org>

Add function to convert a PCI device "tag" into a PCIe requester ID.

ok patrick@, mlarkin@, deraadt@


# 05dd25e5 27-Nov-2015 kettenis <kettenis@openbsd.org>

Don't report a bus conflict for bridges that are left (partly) unconfigured by
the system firmware.


# 5bebef64 10-Sep-2015 deraadt <deraadt@openbsd.org>

simple size for free()


# edb40e46 27-Nov-2014 kettenis <kettenis@openbsd.org>

Previous change wasn't quite right and broke "classic' PCI sparc64 machines.
Undo the code rearrangement in rev. 1.108 but keep the sparc64-specific code
dealing with non-prefetchable 64-bit BARs.

F

Previous change wasn't quite right and broke "classic' PCI sparc64 machines.
Undo the code rearrangement in rev. 1.108 but keep the sparc64-specific code
dealing with non-prefetchable 64-bit BARs.

Found out the hard way by stsp@

show more ...


# 3251a194 26-Nov-2014 kettenis <kettenis@openbsd.org>

Seems Sun^H^H^HOracle is doing something naughty and (deliberately) puts
non-prefetchable BARs of the onboard mpii(4) behind a prefetchable memory
range on the bridge it sists behind. Since we rely

Seems Sun^H^H^HOracle is doing something naughty and (deliberately) puts
non-prefetchable BARs of the onboard mpii(4) behind a prefetchable memory
range on the bridge it sists behind. Since we rely on the formware to program
BARs for us on sparc64, add a workaround to avoid whacking these BARs and
make the machine panic later when it tries to access the registers.

ok miod@, deraadt@

show more ...


# 30394c80 24-Nov-2014 kettenis <kettenis@openbsd.org>

Fix some issues with 64-bit BARs behind PCI-PCI bridges.
Actual BARs that have the upper 32-bits set seen in the wild now on a
SPARC T5-2 system.

Tested by many.


# 03ad23dd 26-Oct-2014 kettenis <kettenis@openbsd.org>

Add resource tracking for PCI ROMs.

ok deraadt@


# 7f58a11f 14-Sep-2014 jsg <jsg@openbsd.org>

remove uneeded proc.h includes
ok mpi@ kspillner@


123456