<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/pci, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-08-07T17:32:53Z</updated>
<entry>
<title>MFC r362661: Add mostly dummy hw.pci.enable_aspm tunable.</title>
<updated>2020-08-07T17:32:53Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-08-07T17:32:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1c8b137a50b2b1ed7e12f644548d372ec636d6ad'/>
<id>urn:sha1:1c8b137a50b2b1ed7e12f644548d372ec636d6ad</id>
<content type='text'>
The only thing this tunable enables now is reporting to ACPI _OSC that
Active State Power Management and Clock Power Management Capability are
"supported" by the OS.

I've found that at least some Supermicro server boards do not allow OS
to support native PCIe hot-plug unless it reports those capabilities.
After spending significant time in PCIe specs I have found very little
motivation for that, and none of it applies to those motherboards, not
enabling ASPM themselves.  So unless OS explicitly wants to save power,
I see nothing for it to do there actually.

I guess it may get sense to support ASPM when we get Thunderbolt support.
Otherwise I have no system with PCIe hot-plug where power saving matters.

It would be nice to enable this by default, but I worry that it affect
power saving of some laptops, even though I haven't noticed that myself.
</content>
</entry>
<entry>
<title>MFC r363624: Add initial driver for ACPI Platform Error Interfaces.</title>
<updated>2020-08-07T01:05:10Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-08-07T01:05:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0b2364fc7f48780aae36a93a9a0e327cd794cf58'/>
<id>urn:sha1:0b2364fc7f48780aae36a93a9a0e327cd794cf58</id>
<content type='text'>
APEI allows platform to report different kinds of errors to OS in several
ways.  We've found that Supermicro X10/X11 motherboards report PCIe errors
appearing on hot-unplug via this interface using NMI.  Without respective
driver it ended up in kernel panic without any additional information.

This driver introduces support for the APEI Generic Hardware Error Source
reporting via NMI, SCI or polling.  It decodes the reported errors and
either pass them to pci(4) for processing or just logs otherwise.  Errors
marked as fatal still end up in kernel panic, but some more informative.

When somebody get to native PCIe AER support implementation both of the
reporting mechanisms should get common error recovery code.  Since in our
case errors happen when the device is already gone, there is nothing to
recover, so the code just clears the error statuses, practically ignoring
the otherwise destructive NMIs in nicer way.

Relnotes:	yes
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>MFC r362027 pci: loosen PCIe hot-plug requirements</title>
<updated>2020-07-19T22:23:54Z</updated>
<author>
<name>Chuck Tuffli</name>
<email>chuck@FreeBSD.org</email>
</author>
<published>2020-07-19T22:23:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6156813ec368a5a9760fb7643132a884078d4f28'/>
<id>urn:sha1:6156813ec368a5a9760fb7643132a884078d4f28</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r346386, r347890, r347896, r349895:</title>
<updated>2020-07-08T17:59:00Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-07-08T17:59:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=125f85efa9729ec2ae2f208c23b860976360cbbd'/>
<id>urn:sha1:125f85efa9729ec2ae2f208c23b860976360cbbd</id>
<content type='text'>
remove the 4GB boundary requirement on PCI DMA segments
</content>
</entry>
<entry>
<title>MFC r347440, r347929-r347930, r349588</title>
<updated>2020-06-16T20:35:01Z</updated>
<author>
<name>Emmanuel Vadot</name>
<email>manu@FreeBSD.org</email>
</author>
<published>2020-06-16T20:35:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a5bd46772016c1ec8be88487bd0e3260b6278f33'/>
<id>urn:sha1:a5bd46772016c1ec8be88487bd0e3260b6278f33</id>
<content type='text'>
r347440:
ahci: Check if bus is cache-coherent

We do this for FDT systems but not for ACPI ones.
Check the presence of the _CCA attribute.

Sponsored by: Ampere Computing, LLC
Reviewed by:	andrew
Differential Revision:	https://reviews.freebsd.org/D20144

r347929:
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

r347930:
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 &lt;tphan@amperecomputing.com&gt; (Original Version)
Sponsored by:	Ampere Computing, LLC
Differential Revision:	https://reviews.freebsd.org/D20214

r349588:
arm64: efi: Map memory IO region as device

Reviewed by:	andrew
Sponsored by:	Ampere Computing, LLC
</content>
</entry>
<entry>
<title>MFC r361621: do not enable pci bridge decoding on resume until I/O windows are restored</title>
<updated>2020-06-12T07:25:40Z</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2020-06-12T07:25:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b9a703227bc1ae48a0747c58f4cc5c936dd47724'/>
<id>urn:sha1:b9a703227bc1ae48a0747c58f4cc5c936dd47724</id>
<content type='text'>
PCI bus driver restores most but not all of a child PCI-PCI bridge
configuration.  The bridge's I/O windows are restored by pcib driver and
that happens later in time.  This can be problematic because the Command
register is restored before the windows are restored.  If the firmware
programs the windows incorrectly or even does not program them at all,
then the bridge can start claiming I/O cycles that are not intended for
it.  This will continue until the correct windows are restored.

I have observed this problem with a buggy BIOS where after resuming from
S3 an I/O port window of a PCI-PCI bridge was configured with zero base
and limit causing the bridge to claim 0x0 - 0xFFF port range.  That
interfered with ACPI port access including ACPI PM Timer at port 0x808,
thus wreaking havoc in the time keeping.

The solution is to restore the Command register of PCI-PCI bridges after
the windows are restored in pcib driver.  While here, I decided that for
other PCI device types (normal and cardbus) it's better to restore the
Command register after their BARs are restored.
</content>
</entry>
<entry>
<title>MFC r350571:</title>
<updated>2020-05-11T20:10:01Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2020-05-11T20:10:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e7badaca3a5e85a05b0ba314b8737d504e1b6ba4'/>
<id>urn:sha1:e7badaca3a5e85a05b0ba314b8737d504e1b6ba4</id>
<content type='text'>
Fix the build after r350570.

Signed char cannot compare to values above 0x7f.  Use unsigned instead.
</content>
</entry>
<entry>
<title>MFC r346645, r346664, r346687, r347387, r347836, r347088, 347089, r346956,</title>
<updated>2020-05-01T09:46:27Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2020-05-01T09:46:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2789d203141bfe46fd279bd2e0807c087375a9d3'/>
<id>urn:sha1:2789d203141bfe46fd279bd2e0807c087375a9d3</id>
<content type='text'>
    r346957, r346958, r347088, r347089, r347385, r353938, r350570,
    r350572 and r350573:

Implement full bus_dma(9) support in the LinuxKPI and pull in all dependencies.

Bump FreeBSD version to force recompilation of external modules.

Sponsored by:	Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r351514: Don't consider PCIe hot-plug command timeout fatal.</title>
<updated>2020-04-24T16:39:34Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-04-24T16:39:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4e74c5ab9c1081008cd945e5622c31061734fb72'/>
<id>urn:sha1:4e74c5ab9c1081008cd945e5622c31061734fb72</id>
<content type='text'>
According to my tests and errata to several generations of Intel CPUs,
PCIe hot-plug command completion reporting is not very reliable thing.
At least on my Supermicro X11DPi-NT board I never saw it reported.
Before this change timeout code detached devices and tried to disable
the slot, that in my case resulted in hot-plugged device being detached
just a second after it was successfully detected and attached.  This
change removes that, so in case of timeout it just prints the error and
continue operation.  Linux does the same.
</content>
</entry>
<entry>
<title>MFC r359057:</title>
<updated>2020-03-26T00:39:36Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-03-26T00:39:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=89fa6575cf9bcf4240e995bdbba05c8a566e6126'/>
<id>urn:sha1:89fa6575cf9bcf4240e995bdbba05c8a566e6126</id>
<content type='text'>
Remove spurious warning about invalid VPD data.

The warning used to be displayed for valid VPDs about 512B or above in
size.  Fix the size check and add a break while here so that the routine
stops if if detects any problem.

Tested with "pciconf -lV"

Reviewed by:	kib@, jhb@
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D23679
</content>
</entry>
</feed>
