History log of /openbsd-src/sys/dev/pci/files.pci (Results 1 – 25 of 369)
Revision Date Author Comments
# 2f9cdd12 08-Nov-2024 stsp <stsp@openbsd.org>

Add a work-in-progress version of ice(4), a driver for Intel E810 devices.
Ported from FreeBSD.

This driver does not pass packets yet, lots of code is still missing.
The driver will remain disabled

Add a work-in-progress version of ice(4), a driver for Intel E810 devices.
Ported from FreeBSD.

This driver does not pass packets yet, lots of code is still missing.
The driver will remain disabled in kernel configs until it is ready.

At this stage, code for device initialization should be fairly complete.
Some hardware features will require additional firmware packages to be
loaded. My plan is to get things working in the basic "safe mode" first,
which does not require external firmware.

I will continue working on this driver in-tree, with funding from genua.
Help is welcome.

ok dlg@

show more ...


# e6ed55bd 02-Nov-2024 yasuoka <yasuoka@openbsd.org>

Add ixv(4), a driver for virtual functions of Intel 82598EB, 82559,
and X540. The driver was originally written by Intel and released as
ixv driver version 1.5.32 and ported to OpenBSD by Yuichiro N

Add ixv(4), a driver for virtual functions of Intel 82598EB, 82559,
and X540. The driver was originally written by Intel and released as
ixv driver version 1.5.32 and ported to OpenBSD by Yuichiro NAITO,
naito.yuichiro at gmail.com. tested by henson at acm.org and many
others.

ok jmatthew

show more ...


# 38923a19 24-Oct-2024 bluhm <bluhm@openbsd.org>

Attach psp(4) version 1.

Some AMD CPUs come with an older platform security processor. It
is detectet by PCI Id and has different register offsets. Move the
dynamic register offsets into psp_softc

Attach psp(4) version 1.

Some AMD CPUs come with an older platform security processor. It
is detectet by PCI Id and has different register offsets. Move the
dynamic register offsets into psp_softc. The PCI attach code is
now in a separate psp_pci.c file and detects the version of the psp
along with the ccp. The attach code is more verbose to display
where problems might occur. Now the ccp_wait() has 2 seconds
timeout, both for polling and interrupt. Also prevent a useless
bus_space_read_4().

OK hshoexer@

show more ...


# 4bba8532 14-Aug-2024 patrick <patrick@openbsd.org>

Introduce qwz(4), a work-in-progress port of the Linux ath12k driver.

This driver is not working yet, it's a copy of qwx(4) which bit-by-bit will be
adjusted to work on the newer generation of chips

Introduce qwz(4), a work-in-progress port of the Linux ath12k driver.

This driver is not working yet, it's a copy of qwx(4) which bit-by-bit will be
adjusted to work on the newer generation of chips. Even though this is only a
minor bump over the previous generation, the changes are large enough that
bringup, debugging and long-term maintenance would suffer trying to squash them
into a single driver. This can be reconsidered once we have reached a stable
state.

show more ...


# c8363668 09-Apr-2024 mglocker <mglocker@openbsd.org>

Add PCI support for ufshci(4). Tested on the Microsoft Surface Go 4.

CAVEATS:
The ufshci(4) openings need to be limited to 1 currently, otherwise
file system corruptions have been identified using

Add PCI support for ufshci(4). Tested on the Microsoft Surface Go 4.

CAVEATS:
The ufshci(4) openings need to be limited to 1 currently, otherwise
file system corruptions have been identified using PCI. I hope this
can be fixed soon.

Help and ok jsg@, kettenis@

show more ...


# 23e5cf25 21-Feb-2024 claudio <claudio@openbsd.org>

Import mwx(4) a driver for Mediatek MT7921 and MT7922 802.11ax devices

This is work in progress. Scan works, RX of packets is more or less there
but TX does not work yet. The packets are passed to t

Import mwx(4) a driver for Mediatek MT7921 and MT7922 802.11ax devices

This is work in progress. Scan works, RX of packets is more or less there
but TX does not work yet. The packets are passed to the chip but get stuck
or ignored there. It is easy to hang the device or the system since device
reset is not quite right (like many other bits).

Also this is only for MT7921 right now since I have no access to a MT7922
device.

Lots of pushing from deraadt@ to commit this now.

show more ...


# c2498839 28-Dec-2023 stsp <stsp@openbsd.org>

Introduce qwx(4), a work-in-progress port of the Linux ath11k driver.

This driver is not working yet. Scanning almost works but a lot more
work remains to be done. So far most of the porting work wa

Introduce qwx(4), a work-in-progress port of the Linux ath11k driver.

This driver is not working yet. Scanning almost works but a lot more
work remains to be done. So far most of the porting work was done by
myself, with some help from mpi, patrick, and kettenis.

Obviously this driver remains disabled for now. Enable relevant lines
in the kernel config if you want to help out with development.

At present firmware files must be obtained manually and placed
in the directory /etc/firmware/qwx/WCN6855/hw2.1/
This will be improved later.

Thanks to the OpenBSD Foundation for supporting this effort.

show more ...


# 6e9149a4 11-Oct-2023 stsp <stsp@openbsd.org>

Add initial support for Elkhart Lake ethernet to dwqe(4).

For now, only attach to PSE0/RGMII (device ID 0x4ba0) which is the
only device I have access to for testing.

There is a known problem where

Add initial support for Elkhart Lake ethernet to dwqe(4).

For now, only attach to PSE0/RGMII (device ID 0x4ba0) which is the
only device I have access to for testing.

There is a known problem where Tx throughput is lower than expected.
This is being looked into.

ok kettenis@

show more ...


# a72a7a26 23-Apr-2023 dlg <dlg@openbsd.org>

add iosf(4), a driver for the Intel OnChip System Fabric

The OnChip System Fabric is mostly an implementation detail on a
bunch of Intel SoC platforms we usually don't care about, except
on some of

add iosf(4), a driver for the Intel OnChip System Fabric

The OnChip System Fabric is mostly an implementation detail on a
bunch of Intel SoC platforms we usually don't care about, except
on some of these machines there are devices shared between the
kernel and the platform that need to coordinate. The iosf(4) driver
allows the kernel to talk via a mailbox interface to take and
release a semaphore that the hardware also uses to lock around
accesses to some components.

There are two ways to talk to the mailbox interface, one via mmio
ops on an INT33BD acpi device. The other is via magic pci conf space
operations on the pci host device. This provides a generic iosf
driver with attachment glue for both acpi and pci so either can be
used. According to linux, the pci ops are a lot more reliable and
less buggy, so if both acpi and pci are available we will prefer
the pci ops after they attach.

I found this because I got a Dell Wyse 3040, which is a cherry
trail/braswell system that has an acpitz(4) which talks to a tipmic(4)
device attached to dwiic(4) on acpi. This box almost always locked
up by the time it got to showing the console login prompt, and it
turns out one of the reasons for this is because acpitz was touching
the tipmic device at the same time the powerunit on the platform
was also trying to use it. The tipmic device lists the iosf mailbox
as a dependency, and the dwiic controller has a _SEM property, both
of which indicate we should use an iosf device to coordinate iic
ops when talking to the tipmic.

This adds the code, but doesn't wire it into dwiic or the build yet.

help from patrick@ jsg@ kettenis@
ok kettenis@ patrick@

show more ...


# 5cd48f1e 31-Mar-2023 kevlo <kevlo@openbsd.org>

ngbe(4), a driver for Wangxun WX1860 series Gigabit Ethernet devices.
Written based on the vendor driver for Linux.
Thanks to WangXun for relicensing their vendor driver to ISC.

Special thanks to mi

ngbe(4), a driver for Wangxun WX1860 series Gigabit Ethernet devices.
Written based on the vendor driver for Linux.
Thanks to WangXun for relicensing their vendor driver to ISC.

Special thanks to miod@ for reviewing and providing valuable input.

ok miod@

show more ...


# 190bcc8e 31-Mar-2022 jmatthew <jmatthew@openbsd.org>

If we've created multiple queues, set up an RSS key and indirection table
to distribute received packets across the queues.

ok dlg@


# 1d7ac227 30-Mar-2022 jmatthew <jmatthew@openbsd.org>

If enough MSI-X vectors are available, set up multiple tx and rx queues.
In multi-vector mode, the MSI-X vector number is the same as the irq number
on the nic, so use vector/irq 0 for link interrupt

If enough MSI-X vectors are available, set up multiple tx and rx queues.
In multi-vector mode, the MSI-X vector number is the same as the irq number
on the nic, so use vector/irq 0 for link interrupts, then assign one to
each pair of rx and tx queues. We don't configure RSS yet, so packets
will only be received on the first queue, but they can be transmitted on
any queue.

ok dlg@

show more ...


# 83306792 31-Oct-2021 patrick <patrick@openbsd.org>

Add igc(4), a driver for the Intel 2.5Gb Ethernet controllers.

Ported by kevlo@
ok jmatthew@


# 0a828ff4 21-Oct-2021 bluhm <bluhm@openbsd.org>

Remove hifn(4), safe(4), and ubsec(4) crypto drivers. They require
the asynchronous crypto API which makes progress in MP difficult.
The hardware is rarely available. They support only obsolete cry

Remove hifn(4), safe(4), and ubsec(4) crypto drivers. They require
the asynchronous crypto API which makes progress in MP difficult.
The hardware is rarely available. They support only obsolete crypto
algorithms. Scheduling crypto tasks via PCI is probably slower
than the CPU, especailly as modern CPUs have their own accelerators.

show more ...


# bccaee56 02-Sep-2021 mlarkin <mlarkin@openbsd.org>

aq(4) driver for Aquantia 1/2.5/5/10Gb/s PCIe ethernet adapters

Adds support for Aquantia AQC1xx family of PCIe ethernet adapters. This
driver supports 1Gbps through 10Gbps modes of operation based

aq(4) driver for Aquantia 1/2.5/5/10Gb/s PCIe ethernet adapters

Adds support for Aquantia AQC1xx family of PCIe ethernet adapters. This
driver supports 1Gbps through 10Gbps modes of operation based on the
hardware and media/switch capabilities.

The initial code was ported from NetBSD, with jmatthew@ finishing up
the Tx/Rx ring support and interrupt handler routine.

The driver only supports devices using firmware V2.

This diff enables aq(4) on riscv64 and amd64, the only platforms where
I have tested the driver, but it likely works on other architectures
as well.

show more ...


# d160d8f0 24-Apr-2021 jmatthew <jmatthew@openbsd.org>

If MSI-X vectors are available, create multiple tx/rx queues, configure
RSS, and use the RSS hash value as a flow ID for received packets.

ok dlg@


# bd467c01 26-Jan-2021 deraadt <deraadt@openbsd.org>

intrmap attribute missing from mcx; ok dlg


# a522f7e1 17-Jul-2020 dlg <dlg@openbsd.org>

use the system stoeplitz key instead of a random one.

while here, stash the rss hash value from rx descriptors in the
mbuf as a flow id.


# a4cd2d76 17-Jul-2020 dlg <dlg@openbsd.org>

enable multiq support for ix.

this is an updated version of a diff from christiano haesbaert by way of
mpi@ to enable the use of multiple tx and rx rings with msi-x. now
that patrick@ got interrupts

enable multiq support for ix.

this is an updated version of a diff from christiano haesbaert by way of
mpi@ to enable the use of multiple tx and rx rings with msi-x. now
that patrick@ got interrupts on multiple cpus working on arm64, i
can commit this.

the main changes are to use an intrmap pointer as the flag for
whether msix has been enabled or not, and to use the intrmap to
establish vectors on multiple cpus.

tested by hrvoje popovski

show more ...


# 07af7ebb 14-Jul-2020 jmatthew <jmatthew@openbsd.org>

Set up a second level flow table for RSS and switch the root flow table
entries to forwarding packets to it. The RSS flow table contains flow
table entries that match specific types of traffic and s

Set up a second level flow table for RSS and switch the root flow table
entries to forwarding packets to it. The RSS flow table contains flow
table entries that match specific types of traffic and send them to TIRs
set up to hash on the appropriate fields, then deliver packets through an
RQT to all our rx queues. We still only have one queue, but now all we
need to do is plug in an intrmap to add more.

ok dlg@

show more ...


# 819ac441 25-Jun-2020 dlg <dlg@openbsd.org>

add rss/toeplitz support for 710 chips.

this basically distributes incoming packets over the rx rings, where
without this they would all land on ring 0.

note that the 722 stuff is stubbed out at th

add rss/toeplitz support for 710 chips.

this basically distributes incoming packets over the rx rings, where
without this they would all land on ring 0.

note that the 722 stuff is stubbed out at the moment. i don't have
an x722 to test with, so it's hard to get motivated to write the
code for it.

this is based on stuff supplied by christiano haesbaert.

show more ...


# e01adc04 25-Jun-2020 dlg <dlg@openbsd.org>

use intrmap to set up multiple queues across multiple cpus.

ixl(4) is only enabled on amd64 and sparc64, and both of them now
support pci_intr_establish_cpu(), so it is safe to apply this.

a few th

use intrmap to set up multiple queues across multiple cpus.

ixl(4) is only enabled on amd64 and sparc64, and both of them now
support pci_intr_establish_cpu(), so it is safe to apply this.

a few things to note:

- the chip only supports a power of 2 number of queues, (ie, 1, 2,
4, 8, etc), so this also tests the INTRMAP_POWEROF2 flag to
intrmap_create. i tested this on a box with 6 cpus and it did the
right thing.
- the chip can support a lot of vectors, but we're limiting it to
8 for now.
- rss with toeplitz is not implemented yet, so all rxed packets end
up on the 0th queue for now.

jmatthew@ had done most of the work already, and christiano haesbaert
provided some hints to motivate me to work on this bit of it.

tested by jmatthew@ on sparc64
ok jmatthew@

show more ...


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

enable multiple queues (and interrupts on multiple cpus) on vmx(4).

im doing this with vmx(4) because it only exists on two archs (well,
one and a half archs really) so any impact is localised. most

enable multiple queues (and interrupts on multiple cpus) on vmx(4).

im doing this with vmx(4) because it only exists on two archs (well,
one and a half archs really) so any impact is localised. most other
drivers i'm working on are enabled on 3 or 4 archs, and we're still
working on the interrupt code on those archs.

in the meantime vmx(4) can be used as a reference driver on how to
implement multiq. it shows the use of rss, toeplitz, intrmap, and
interrupts on multiple cpus. it's also a relatively simple device,
which makes it easier to understand the above features.

note that vmx(4) seems to advertise 25 msi-x vectors. it appears
that the intention is that 16 of these vectors are supposed to be
used for rx, 8 for tx, and 1 for events (eg, link up and down).
we're keeping things simple for now and using a maximum of 8 vectors
for both tx and rx, and one for events.

this is mostly based on work that jmatthew@ did, but it's simplified
now cos intrmap makes things easier.

show more ...


# 461894dd 16-Jun-2020 dlg <dlg@openbsd.org>

configure toeplitz using the kernel stoeplitz key if needed.

"if needed" basically means if more than 1 queue is set up, then
set up rss.

again, i think jmatthew@ wrote most of this, but im sniping

configure toeplitz using the kernel stoeplitz key if needed.

"if needed" basically means if more than 1 queue is set up, then
set up rss.

again, i think jmatthew@ wrote most of this, but im sniping it cos
of the stoeplitz integration.

show more ...


# 6dedc15d 06-Mar-2020 patrick <patrick@openbsd.org>

Add a PCI attachment driver for com(4). Intel has been removing legacy
I/O-Ports on recent machines. Instead the UARTs are memory mapped PCI-
devices, as part of a so-called Low Power Subsystem (LP

Add a PCI attachment driver for com(4). Intel has been removing legacy
I/O-Ports on recent machines. Instead the UARTs are memory mapped PCI-
devices, as part of a so-called Low Power Subsystem (LPSS).

Such an LPSS is also used for I2C and SPI, though they use different PCI
device ids. Each LPSS contains the actual device, and some registers to
control clocks, resets, etc. These private registers need to be saved
and restored upon suspend/resume. Also we should read the current clock
settings to calculate the frequency supplied to the device.

The UART controller itself is based on Synopsys DesignWare IP, like
we're used to from various ARM-based machines

ok kettenis@

show more ...


12345678910>>...15