#
1.5 |
|
03-Feb-2024 |
kettenis |
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@
|
Revision tags: OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
|
#
1.4 |
|
06-Apr-2022 |
naddy |
constify struct cfattach
|
Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
|
#
1.3 |
|
25-Jun-2021 |
patrick |
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@
|
#
1.2 |
|
19-May-2021 |
kettenis |
Only advertise MSI support if there is an MSI controller of some sort.
ok patrick@
|
#
1.1 |
|
17-May-2021 |
kettenis |
Move pciecam.c to dev/fdt/.
ok deraadt@
|
#
1.4 |
|
06-Apr-2022 |
naddy |
constify struct cfattach
|
Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
|
#
1.3 |
|
25-Jun-2021 |
patrick |
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@
|
#
1.2 |
|
19-May-2021 |
kettenis |
Only advertise MSI support if there is an MSI controller of some sort.
ok patrick@
|
#
1.1 |
|
17-May-2021 |
kettenis |
Move pciecam.c to dev/fdt/.
ok deraadt@
|
#
1.3 |
|
25-Jun-2021 |
patrick |
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@
|
#
1.2 |
|
19-May-2021 |
kettenis |
Only advertise MSI support if there is an MSI controller of some sort.
ok patrick@
|
#
1.1 |
|
17-May-2021 |
kettenis |
Move pciecam.c to dev/fdt/.
ok deraadt@
|
#
1.2 |
|
19-May-2021 |
kettenis |
Only advertise MSI support if there is an MSI controller of some sort.
ok patrick@
|
#
1.1 |
|
17-May-2021 |
kettenis |
Move pciecam.c to dev/fdt/.
ok deraadt@
|
#
1.1 |
|
17-May-2021 |
kettenis |
Move pciecam.c to dev/fdt/.
ok deraadt@
|