Page MenuHomeFreeBSD

pci: Only claim to support PCI ASPM on x86
ClosedPublic

Authored by andrew on Fri, Jan 3, 2:37 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jan 10, 3:17 PM
Unknown Object (File)
Thu, Jan 9, 6:31 PM
Unknown Object (File)
Thu, Jan 9, 2:05 AM
Unknown Object (File)
Thu, Jan 9, 12:37 AM
Unknown Object (File)
Wed, Jan 8, 10:49 PM
Unknown Object (File)
Wed, Jan 8, 9:25 PM
Unknown Object (File)
Mon, Jan 6, 2:20 PM
Unknown Object (File)
Fri, Jan 3, 10:41 PM
Subscribers

Details

Summary

We claim to support Active State Power Management, but don't appear to
do anything different in the kernel when it's enabled other than tell
the firmware we do.

This breaks VMware Fusion on Apple Silicon when it's enabled as it
expects the kernel to enable the ports. As it is reported to be needed
on some x86 servers keep it enabled there, but disable on non-x86
architectures.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

andrew requested review of this revision.Fri, Jan 3, 2:37 PM
andrew created this revision.

I don't remember whether ASPM has anything to do with enabling ports, so wonder if it is a curios case of opposite bugs, but if it helps, I see no problem.

This revision is now accepted and ready to land.Fri, Jan 3, 2:45 PM

This allows me to boot FreeBSD on VMWare Fusion on arm64 again.

The ASPM hack is because some x86 firmware won't enable PCI-e hot plug unless this is enabled. Longer term we should eventually just implement support for ASPM. I don't think it will be very hard to do? This is fine for now, but maybe ASPM support is something we should track as a TODO item.

I have reservations about this, but I think it's fine.

My reservations are around a hot-plug chassis I have setting on my bench that has 20 slots, but only 4 show up when I put NVMe cards in it. It's arm64 based.

This revision was automatically updated to reflect the committed changes.

Would it make more sense to invert the conditional to aarch64? I would assume that future implementations would support ASPM as do past ones i.e. for sure PHB4 on POWER9.