#
f55e8664 |
|
22-May-2024 |
Andrew Turner <andrew@FreeBSD.org> |
pci: Fix pci_host_generic_acpi with gcc In pci_host_generic_acpi.c we loop over pci_acpi_quirks to check if we need to handle any quirks. GCC doesn't like the terminatin as it sets a fixed width string to 0. As this the array is only ever used in this file change to use nitems to find when to stop the loop. Reviewed by: brooks, imp, jhb, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45265
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
913d04de |
|
23-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add PCI_ID_OFW_IOMMU to the pci ecam ACPI driver Teach the pci host generic ACPI attachment about PCI_ID_OFW_IOMMU. This will be used by the arm64 smmu IOMMU driver to read the xref and ID this interface provides in a bus-agnostic way. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39182
|
#
896f5562 |
|
18-Jan-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add the fixed memory type to the pci ecam driver Add ACPI_RESOURCE_TYPE_FIXED_MEMORY32 to the PCI ECAM driver. This is used on the Microsoft Dev Kit 2023 and reportedly the Lenovo x13s. Reviewed by: Robert Clausecker <fuz@fuz.su> (Earlier version) Tested by: Robert Clausecker <fuz@fuz.su> (Earlier version) Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D38031
|
#
97a41013 |
|
06-May-2022 |
John Baldwin <jhb@FreeBSD.org> |
pci: Remove unused devclass arguments to DRIVER_MODULE.
|
#
6f1fe2a0 |
|
08-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
pci_host_generic_acpi: Remove unused variable.
|
#
e8a87253 |
|
16-Sep-2021 |
Marcin Wojtas <mw@FreeBSD.org> |
pci_host_generic: update Synopsys device description for ACPI The recent addition of Synopsys ECAM quirk set the device description only for the DT variant. Do the same in ACPI case. Reported by: jrtc27
|
#
2de4c7f6 |
|
13-Sep-2021 |
Pawel Anikiel <pan@semihalf.com> |
pci_host_generic: Add Synopsys Designware PCIe controller quirk Due to the quirky nature of the Synopsys Designware PCIe IP, the type 0 configuration is broadcast and whatever device is plugged into slot, will appear at each 32 device positions of bus0. Mitigate the issue by filtering out duplicated devices on this bus for both DT and ACPI cases. Reviewed by: mw Sponsored by: Semihalf MFC: after 3 weeks Differential revision: https://reviews.freebsd.org/D31887
|
#
e0870cd4 |
|
29-Nov-2020 |
Andrew Turner <andrew@FreeBSD.org> |
Only set the PCI bus end when we are reducing it We read the bus end value from the _CRS method. On some systems we need to further limit it based on the MCFG table. Support this by setting a default value, then update it if needed in the _CRS table, and finally reduce it if it is past the end of the MCFG tabel. This will allow for both systems that use either method to encode this value. This partially reverts r347929, removing the error printf. Reviewed by: philip Tested by: philip, Andrey Fesenko <f0andrey_gmail.com> MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D27274
|
#
9a7053ce |
|
17-Jun-2020 |
Andrew Turner <andrew@FreeBSD.org> |
Clean up the pci host generic driver - Support Prefetchable Memory. - Use the correct rman when allocating memory and ioports. - Translate PCI addresses in bus_alloc_resource to allow physical addresses that are different than pci addresses. Reviewed by: Robert Crowston <crowston_protonmail.com> Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D25121
|
#
667c3fc0 |
|
11-Feb-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Add PCI Express driver for the ARM Neoverse N1 System Development Platform (N1SDP). Neoverse N1 is a high-performance ARM microarchitecture designed by the ARM Holdings for the server market. The PCI part on N1SDP was shipped untested and suffers from some integration issues. For instance accessing to not existing BDFs causes System Error (SError) exception. To mitigate this, the firmware scans the bus, catches SErrors and creates a table with valid BDFs. That allows us to filter-out accesses to invalid BDFs in this driver. Also the root complex config space (BDF == 0) has an unusual location in memory map, so remapping accesses to it is required. Finally, the config space is restricted to 32-bit accesses only. This was tested on the ARM boxes kindly provided by the ARM Ltd to the DARPA CHERI Project. In collaboration with: andrew Reviewed by: andrew Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D23349
|
#
c344a951 |
|
24-Jan-2020 |
Ruslan Bukin <br@FreeBSD.org> |
o Move the software context struct to a header file. o Make the pci_host_generic_acpi_attach() globally visible. o Declare a new driver class. These will be used by a new PCI root complex driver. Sponsored by: DARPA, AFRL
|
#
ec55b6c5 |
|
17-May-2019 |
Emmanuel Vadot <manu@FreeBSD.org> |
pci: ecam: Correctly parse memory and IO region When activating a resource do not compare the resource id to the adress. Treat IO region as MEMORY region too. Submitted by: Tuan Phan <tphan@amperecomputing.com> (Original Version) Sponsored by: Ampere Computing, LLC Differential Revision: https://reviews.freebsd.org/D20214
|
#
aa95512f |
|
17-May-2019 |
Emmanuel Vadot <manu@FreeBSD.org> |
pci: ecam: Do not warn on mismatch of bus_end We cannot know the bus end number before parsing the MCFG table so don't set the bus_end before that. If the MCFG table doesn't exist we will set the configuration base address based on the _CBA value and set the bus_end to the maximal number allowed by PCI. Sponsored by: Ampere Computing, LLC Differential Revision: https://reviews.freebsd.org/D20213
|
#
13607f6d |
|
06-Feb-2019 |
Jayachandran C. <jchandra@FreeBSD.org> |
pci_host_generic_acpi: use IORT data for MSI/MSI-X Use the information from IORT parsing to translate the PCI RID to GIC ITS device ID. And similarly, use the information to find the PIC XREF identifier to be used for PCI devices. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D18004
|
#
bd158cdd |
|
18-Nov-2018 |
Jayachandran C. <jchandra@FreeBSD.org> |
pci_host_generic : move activate/release to generic code Now that the ACPI and FDT implementations for activating and deactivating resources are the same, we can move it to pci_host_generic.c. No functional changes. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D17793
|
#
185c34f7 |
|
18-Nov-2018 |
Jayachandran C. <jchandra@FreeBSD.org> |
acpica, pci_host_generic_acpi: redo pci_host_generic_acpi.c This is a major update for pci_host_generic_acpi.c, the current implementation has some gaps that are better fixed up in one go. The changes are to: * Follow x86 method of not adding PCI resources to PCI host bridge in ACPI code. This has been moved to pci_host_generic_acpi.c, where we walk thru its resources of the host bridge and add them. * Fixup code in pci_host_generic_acpi.c to read all decoded ranges and update the 'ranges' property. This allows us to share most of the code with generic implementation (and the FDT one). * Parse and setup IO ranges and bus ranges when walking the resources above. Drop most of the changes related to this from acpica code. * Add the ECAM memory area as mem resource 0. Implement the logic to get the ECAM area from MCFG (using bus range which we now decode), or from _CBA (using _BBN/bus range). Drop aarch64 ifdefs from acpica code which did part of this. * Switch resource activation to similar code as FDT implementation, this can be moved into generic implementation in a later pass. * Drop the mechanism of using the 7th bit of bus number as the domain, this is not correct and will work only in very specific cases. Use _SEG as PCI domain and use the bus ranges of the host bridge to provide start bus number. This commit should not make any functional change to dev/acpica/acpi.c for other architectures, almost all the changes there are to revert earlier additions in this file done for aarch64. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D17791
|
#
697c57e5 |
|
18-Nov-2018 |
Jayachandran C. <jchandra@FreeBSD.org> |
pci_host_generic*: basic implementation of bus range Both ACPI and FDT support bus ranges for pci host bridges. Update pci_host_generic*.[ch] with a default implementation to support this. This will be used in the next set of changes for ACPI based host bridge. No functional changes in this commit. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D17657
|
#
db2156bc |
|
09-Jul-2018 |
Wojciech Macek <wma@FreeBSD.org> |
ARM64: Add support for ThunderX2 PCIe Submitted by: Patryk Duda <pdk@semihalf.com> Obtained from: Semihalf Sponsored by: Cavium Differential revision: https://reviews.freebsd.org/D15141
|
#
e0fe1060 |
|
07-Mar-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Create macros for the ACPI interrupt cross references. This is considered a band aid until a better solution to find the correct interrupt controller can be found. While here fix one place in the GICv3 ITS driver where the offset wasn't correctly applied. Sponsored by: DARPA, AFRL Sponsored by: Cavium (Hardware)
|
#
08fdb4ce |
|
07-Mar-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Add an acpi attachment to the pci_host_generic driver and have the ACPI bus provide it with its needed memory resources. This allows us to use PCIe on the ThunderX2 and, with a previous version of the patch, on the SoftIron 3000 with ACPI. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation Sponsored by: DARPA, AFRL Sponsored by: Cavium (Hardware) Differential Revision: https://reviews.freebsd.org/D8767
|