History log of /openbsd/sys/dev/fdt/dwpcie.c (Results 1 – 25 of 53)
Revision Date Author Comments
# 4bc9c22f 29-Mar-2024 kettenis <kettenis@openbsd.org>

Fix writing the prefetchable mmio window base/limit.

ok patrick@


# edf526fe 26-Feb-2024 kettenis <kettenis@openbsd.org>

Enable MSIs on RK3588. We have a U-Boot package with device trees that
work now.

ok patrick@


# 56d02c00 03-Feb-2024 kettenis <kettenis@openbsd.org>

Implement Multiple Message MSI support on arm64. As on amd64 this is
experimental code to assis qwx(4) development. Currently this only works
on systems that use agintcmsi(4) as the MSI controller

Implement Multiple Message MSI support on arm64. As on amd64 this is
experimental code to assis qwx(4) development. Currently this only works
on systems that use agintcmsi(4) as the MSI controller combined with the
dwpcie(4) Hots/PCIe bridge.

ok patrick@

show more ...


# e1e95ce2 21-Sep-2023 patrick <patrick@openbsd.org>

Encode the device tree node in the pci tag like we do in aplpcie(4) so that
PCI device drivers can have access to device tree properties, e.g. to allow
qwx(4) to retrieve the calibration variant.

ok

Encode the device tree node in the pci tag like we do in aplpcie(4) so that
PCI device drivers can have access to device tree properties, e.g. to allow
qwx(4) to retrieve the calibration variant.

ok kettenis@

show more ...


# 5045af7f 03-May-2023 jsg <jsg@openbsd.org>

avoid use after free
ok miod@ millert@


# 5f800b9b 27-Apr-2023 kettenis <kettenis@openbsd.org>

Add support for (one of) the PCIe controllers on the RK3588 SoC. Since
MSIs don't work (yet) on this SoC, implement support for legacy interrupts
for the Rockchip SoCs. Also drop the restrictions o

Add support for (one of) the PCIe controllers on the RK3588 SoC. Since
MSIs don't work (yet) on this SoC, implement support for legacy interrupts
for the Rockchip SoCs. Also drop the restrictions on the bus number range
as the device tree I'm using has bus numbers start at 64 for the controller
in question.

ok patrick@, dlg@`

show more ...


# f6d21d67 27-Apr-2023 kettenis <kettenis@openbsd.org>

Fix config space access for the root bus of a dwpcie(4) controller when
the root bus number isn't zero.

ok patrick@, dlg@


# f02e807f 25-Apr-2023 patrick <patrick@openbsd.org>

Enable power management for PCI devices.

ok kettenis@


# d0adc912 24-Apr-2023 patrick <patrick@openbsd.org>

Enable MSI if the node contains an msi-map, like we already do in pciecam(4).
This will make MSIs work on the Lenovo x13s as soon as an updated device tree
is installed.

Discussed with kettenis@


# a14a93a7 05-Apr-2023 kettenis <kettenis@openbsd.org>

Call dwpcie_link_config() when initializing the RK3568 PCIe controllers.
This makes sure the PCIe link runs at the maximum possible speed.

Prompted by a diff from dlg@, who also tested this alternat

Call dwpcie_link_config() when initializing the RK3568 PCIe controllers.
This makes sure the PCIe link runs at the maximum possible speed.

Prompted by a diff from dlg@, who also tested this alternative diff.

ok dlg@

show more ...


# 08f55413 30-Mar-2023 kn <kn@openbsd.org>

keep match strings sorted


# 094225fe 30-Mar-2023 kn <kn@openbsd.org>

Attach Baikal-M PCIe

https://github.com/Elpitech/baikal-m-linux-kernel/search?q=bm1000-pcie
Tested on ET-101-MB

Initial diff from Slava Voronzoff
Feedback OK kettenis patrick


# f98fd054 16-Mar-2023 kettenis <kettenis@openbsd.org>

Add code to bring up the PCIe controller on the RK356x.

ok dlg@


# 1140f82a 07-Mar-2023 kettenis <kettenis@openbsd.org>

Add some minimal initialization code for rk356x such that the kernel
doesn't hang.

ok millert@, dlg@


# d5dfbc11 27-Nov-2022 kettenis <kettenis@openbsd.org>

Implement support for the (optional) MSI controller of Synopsys Designware
PCIe host bridge. This MSI controller is quite retarded since it maps all
MSIs to a single hardware interrupt. So it doesn

Implement support for the (optional) MSI controller of Synopsys Designware
PCIe host bridge. This MSI controller is quite retarded since it maps all
MSIs to a single hardware interrupt. So it doesn't really offer any
benefit over using classic INTx interrupts. Unfortunately we need to use
it on Amlogic SoCs since the PCIe device interrupt doesn't seem to work
correctly when configured as a level triggered interrupt and the workaround
of configuring it as an edge triggered interrupt causes problems when using
multiple disks connected to ahci(4) on the ODROID-HC4.

ok patrick@

show more ...


# a848a3cb 07-Nov-2022 patrick <patrick@openbsd.org>

Add support for the PCIe controller on the Qualcomm SC8280XP. Thankfully
UEFI already initializes those, so we can simply just make use of that.

That said, the ctrl/dbi region isn't the first in th

Add support for the PCIe controller on the Qualcomm SC8280XP. Thankfully
UEFI already initializes those, so we can simply just make use of that.

That said, the ctrl/dbi region isn't the first in the register list, so
instead try and look it up first and use it if available. Furthermore,
the ATU region isn't part of the ctrl/dbi region, so if we are able to
retrieve a separate reg for the ATU, use that instead. Some reshuffling
is necessary to make that work.

Tested on my Lenovo x13s and the MacchiatoBin
ok kettenis@

show more ...


# 5f3e3118 13-Oct-2022 kettenis <kettenis@openbsd.org>

Add (minimal) support for the RK3568 PCIe controller. This relies on
the firmware to do most of the hardware initialization; the driver
basically only sets up the address translation unit to match t

Add (minimal) support for the RK3568 PCIe controller. This relies on
the firmware to do most of the hardware initialization; the driver
basically only sets up the address translation unit to match the
configuration specified in the device tree.

ok patrick@

show more ...


# 9fdf0c62 24-Oct-2021 mpi <mpi@openbsd.org>

Constify struct cfattach.

ok visa@ a long time ago, ok patrick@


# 254dd109 25-Jun-2021 kettenis <kettenis@openbsd.org>

Make sure we translate prefetchable mmio space as well.

From Mickael Torres.


# 415019ce 25-Jun-2021 patrick <patrick@openbsd.org>

While it seems like we can choose any I/O virtual address for peripheral
devices, this isn't really the case. It depends on the bus topology of
how devices are connected. In the case of PCIe, devic

While it seems like we can choose any I/O virtual address for peripheral
devices, this isn't really the case. It depends on the bus topology of
how devices are connected. In the case of PCIe, devices are assigned
addresses (in PCI BARs) from the PCI address spaces. Now if we take an
address from one of these address spaces for our IOVA, transfers from
from a PCI device to that address will terminate inside of the PCI bus.
This is because from the PCI buses' point-of-view, the address we chose
is part of its address space. To make sure we don't allocate addresses
from there, reserve the PCI addresses in the IOVA.

Note that smmu(4) currently gives each device its own IOVA. So the PCI
addresses will be reserved only in IOVA from PCI devices, and only the
addresses concerning the PCI bus it is connected to will be reserved.
All other devices behind an smmu(4) will not have any changes to their
IOVA.

ok kettenis@

show more ...


# d2397242 24-Jun-2021 kettenis <kettenis@openbsd.org>

Add support for the 64-bit prefetchable memory window.

ok patrick@


# 7385e486 18-Jun-2021 kettenis <kettenis@openbsd.org>

Enable 32-bit I/O addressing. This gets rid of the io address conflict
messages on the HiFive Unmatched.

ok patrick@


# 01dd2b7c 14-Jun-2021 kettenis <kettenis@openbsd.org>

Simplify the way we handle PCI configuration space access. Instead of
splitting the configuration space access window in a part for type 0 and
a part for type 1 commands, use a single window. The c

Simplify the way we handle PCI configuration space access. Instead of
splitting the configuration space access window in a part for type 0 and
a part for type 1 commands, use a single window. The code already flips
between type 0 and type 1 so there is no benefit in having this complication.

Fixes the PCIe host bridge on the SiFive FU740 SoC.

ok drahn@, patrick@

show more ...


# 919f025a 12-Jun-2021 kettenis <kettenis@openbsd.org>

Enable dwpcie(4) and add support for the PCIe host bridge found on the
SiFive FU740 SoC.

ok drahn@


# 2b0be198 17-May-2021 kettenis <kettenis@openbsd.org>

Rename some MD structs by giving them an architecture-neutral name in
preparation for sharing PCIe host bridge drivers between arm64 and riscv64.

ok mpi@, mlarkin@, patrick@


123