coreboot/src/device
Matt DeVillier a2a868f199 device/pciexp: Enable ASPM on root ports without endpoints
Program ASPM on PCIe root ports when no endpoint device is connected
at boot. This ensures proper power management for TBT ports that often
do not have devices connected at boot.

Add pciexp_enable_aspm_root_port_only() to program ASPM based on the
root port's Link Capabilities, and call it from pciexp_scan_bus() when
no children are detected on a root port.

TEST=build/boot Starlabs Starfighter MTL, verify ASPM enabled on TBT
ports even when no devices attached via lspci:
  LnkCtrl: ASPM L1 Enabled

Change-Id: I1da6d36afcbe18411c01ceabf8b903c4ae13cd73
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90913
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:31:02 +00:00
..
dram device/dram/ddr3: Fill in voltage fields for SMBIOS type 17 2025-12-08 02:36:00 +00:00
oprom arch/x86: Unify GDT entries 2025-05-08 12:29:24 +00:00
azalia_device.c device/azalia: Drop spurious read-back of STATESTS 2025-12-17 18:15:10 +00:00
cardbus_device.c device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
cpu_device.c cpu/x86/topology: Add code to fill in topology on struct path 2023-04-06 15:27:23 +00:00
device.c device/device.h: Fix spelling mistake 2024-01-31 10:36:49 +00:00
device_const.c arch/x86: Enable support for IOAPIC devices 2024-12-06 20:57:44 +00:00
device_util.c device/device_util: Fix format specifier for DEVICE_PATH_GICC_V3 2025-08-15 19:00:14 +00:00
gpio.c
i2c.c
i2c_bus.c device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
Kconfig device/Kconfig: Gate early libgfxinit default on ChromeOS 2026-01-01 17:14:14 +00:00
Makefile.mk device, security: Rename Makefiles from .inc to .mk 2024-01-24 10:13:21 +00:00
mdio.c device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
mmio.c tree: Remove blank lines before '}' and after '{' 2024-04-11 19:19:08 +00:00
pci_class.c arch to drivers/intel: Fix misspellings & capitalization issues 2023-09-08 00:53:57 +00:00
pci_device.c device/pci_device: Fix typo in comments 2025-09-26 19:04:54 +00:00
pci_early.c
pci_ops.c
pci_rom.c device/pci_device: Move PCI Option ROM code into pci_rom.c 2025-03-10 11:35:57 +00:00
pciexp_device.c device/pciexp: Enable ASPM on root ports without endpoints 2026-01-28 13:31:02 +00:00
pcix_device.c device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
pnp_device.c device/pnp_device: fix log levels for unassigned resource messages 2024-02-29 21:40:49 +00:00
resource_allocator_common.c
resource_allocator_v4.c tree: Remove blank lines before '}' and after '{' 2024-04-11 19:19:08 +00:00
root_device.c device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
smbus_ops.c console: Add format-checking __printf() to die() 2023-05-17 11:23:59 +00:00
software_i2c.c
xhci.c device/xhci: Add functions to work with resource pointers 2023-03-05 15:32:34 +00:00
xhci_resource.c device/xhci: Add functions to work with resource pointers 2023-03-05 15:32:34 +00:00