soc/intel/{adl,mtl,ptl,tgl}: Make IOM ACPI device visibility configurable

Coolstar's Windows drivers require the IOM device to be visible to the
OS, so add a Kconfig to control this, which mainboards will select in
subsequent patches.

TEST=build/boot Win11 on rex/screebo, verify USB4 drivers functional.

Change-Id: I00ef9703179d87b7b476ef18d8d02fcafa9e14ab
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86792
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Matt DeVillier 2025-03-08 09:24:26 -06:00
commit 3dd72a36e8
5 changed files with 32 additions and 2 deletions

View file

@ -331,8 +331,13 @@ Scope (\_SB)
Name (_CRS, ResourceTemplate () {
Memory32Fixed (ReadWrite, IOM_BASE_ADDRESS, IOM_BASE_SIZE)
})
#if CONFIG(IOM_ACPI_DEVICE_VISIBLE)
/* ACPI_STATUS_DEVICE_ALL_ON */
Name (_STA, 0xF)
#else
/* ACPI_STATUS_DEVICE_HIDDEN_ON */
Name (_STA, 0xB)
#endif
}
}

View file

@ -58,3 +58,13 @@ config SOFTWARE_CONNECTION_MANAGER
help
Enable SCM so it's used instead of FCM.
endchoice
config IOM_ACPI_DEVICE_VISIBLE
bool
depends on SOC_INTEL_COMMON_BLOCK_USB4
default n
help
Select this config if the mainboard needs the IOM ACPI device
visible to the OS. This is needed for ChromeOS devices for
which ChromeEC acts as the TCPC, otherwise should be left
unselected.

View file

@ -334,8 +334,13 @@ Scope (\_SB.PCI0)
IOM_BASE_ADDR, IOM_BASE_ADDR_MAX, 0x0,
IOM_BASE_SIZE,,,)
})
/* Hide the device so that Windows does not complain on missing driver */
#if CONFIG(IOM_ACPI_DEVICE_VISIBLE)
/* ACPI_STATUS_DEVICE_ALL_ON */
Name (_STA, 0xF)
#else
/* ACPI_STATUS_DEVICE_HIDDEN_ON */
Name (_STA, 0xB)
#endif
}
/*

View file

@ -334,8 +334,13 @@ Scope (\_SB.PCI0)
IOM_BASE_ADDR, IOM_BASE_ADDR_MAX, 0x0,
IOM_BASE_SIZE,,,)
})
/* Hide the device so that Windows does not complain on missing driver */
#if CONFIG(IOM_ACPI_DEVICE_VISIBLE)
/* ACPI_STATUS_DEVICE_ALL_ON */
Name (_STA, 0xF)
#else
/* ACPI_STATUS_DEVICE_HIDDEN_ON */
Name (_STA, 0xB)
#endif
}
/*

View file

@ -331,8 +331,13 @@ Scope (\_SB)
Name (_CRS, ResourceTemplate () {
Memory32Fixed (ReadWrite, IOM_BASE_ADDRESS, IOM_BASE_SIZE)
})
#if CONFIG(IOM_ACPI_DEVICE_VISIBLE)
/* ACPI_STATUS_DEVICE_ALL_ON */
Name (_STA, 0xF)
#else
/* ACPI_STATUS_DEVICE_HIDDEN_ON */
Name (_STA, 0xB)
#endif
}
}