From d1e1d36fff09b5242246d183bf8f745fcebeb35e Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Sun, 25 Jan 2026 19:08:51 -0600 Subject: [PATCH] soc/intel: Use chipset.cb for UART device ops linking Move UART device operations linking from PCI Device ID matching to chipset.cb files for all Intel SoCs that have them, matching the approach used by Skylake. Remove corresponding DIDs from uart.c for these SoCs; keep DID matching only for SoCs without chipset.cb files. This standardizes the approach across Intel SoCs and makes the UART controller configuration explicit in devicetree, and prevents the endless proliferation of DIDs in the common driver code. Change-Id: Id26dad7997d64bcaad53fa39be23e52cb47dcc1d Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/90916 Reviewed-by: Jakub "Kuba" Czapiga Tested-by: build bot (Jenkins) --- src/soc/intel/alderlake/chipset.cb | 6 +- src/soc/intel/alderlake/chipset_pch_s.cb | 8 +-- src/soc/intel/apollolake/chipset_apl.cb | 8 +-- src/soc/intel/apollolake/chipset_glk.cb | 8 +-- src/soc/intel/cannonlake/chipset.cb | 6 +- src/soc/intel/cannonlake/chipset_pch_h.cb | 4 +- src/soc/intel/common/block/uart/uart.c | 71 ----------------------- src/soc/intel/jasperlake/chipset.cb | 6 +- src/soc/intel/meteorlake/chipset.cb | 6 +- src/soc/intel/pantherlake/chipset_ptl.cb | 6 +- src/soc/intel/pantherlake/chipset_wcl.cb | 6 +- src/soc/intel/tigerlake/chipset.cb | 6 +- src/soc/intel/tigerlake/chipset_pch_h.cb | 8 +-- 13 files changed, 39 insertions(+), 110 deletions(-) diff --git a/src/soc/intel/alderlake/chipset.cb b/src/soc/intel/alderlake/chipset.cb index 1758d9df74..4c925b4677 100644 --- a/src/soc/intel/alderlake/chipset.cb +++ b/src/soc/intel/alderlake/chipset.cb @@ -245,7 +245,7 @@ chip soc/intel/alderlake device pci 17.0 alias sata off ops sata_ops end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end # eMMC device is applicable only for ADL-N device pci 1a.0 alias emmc off end device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end @@ -260,8 +260,8 @@ chip soc/intel/alderlake device pci 1d.1 alias pcie_rp10 off ops pcie_rp_ops end device pci 1d.2 alias pcie_rp11 off ops pcie_rp_ops end device pci 1d.3 alias pcie_rp12 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias pch_espi on end diff --git a/src/soc/intel/alderlake/chipset_pch_s.cb b/src/soc/intel/alderlake/chipset_pch_s.cb index 28dbc9e458..90395a9cf6 100644 --- a/src/soc/intel/alderlake/chipset_pch_s.cb +++ b/src/soc/intel/alderlake/chipset_pch_s.cb @@ -277,7 +277,7 @@ chip soc/intel/alderlake device pci 09.0 alias north_tracehub off end device pci 0a.0 alias crashlog on end device pci 0e.0 alias vmd off end - device pci 11.0 alias uart3 off end + device pci 11.0 alias uart3 off ops uart_ops end device pci 12.0 alias ish off end device pci 12.6 alias gspi2 off end device pci 13.0 alias gspi3 off end @@ -376,7 +376,7 @@ chip soc/intel/alderlake device pci 17.0 alias sata off ops sata_ops end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1a.0 alias pcie_rp25 off ops pcie_rp_ops end device pci 1a.1 alias pcie_rp26 off ops pcie_rp_ops end device pci 1a.2 alias pcie_rp27 off ops pcie_rp_ops end @@ -405,8 +405,8 @@ chip soc/intel/alderlake device pci 1d.5 alias pcie_rp14 off ops pcie_rp_ops end device pci 1d.6 alias pcie_rp15 off ops pcie_rp_ops end device pci 1d.7 alias pcie_rp16 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias pch_espi on end diff --git a/src/soc/intel/apollolake/chipset_apl.cb b/src/soc/intel/apollolake/chipset_apl.cb index 10d2b04cfe..f0ffffc269 100644 --- a/src/soc/intel/apollolake/chipset_apl.cb +++ b/src/soc/intel/apollolake/chipset_apl.cb @@ -32,10 +32,10 @@ chip soc/intel/apollolake device pci 17.1 alias i2c5 off ops i2c_dev_ops end # I2C5 device pci 17.2 alias i2c6 off ops i2c_dev_ops end # I2C6 device pci 17.3 alias i2c7 off ops i2c_dev_ops end # I2C7 - device pci 18.0 alias uart0 off end # UART0 - device pci 18.1 alias uart1 off end # UART1 - device pci 18.2 alias uart2 off end # UART2 - device pci 18.3 alias uart3 off end # UART3 + device pci 18.0 alias uart0 off ops uart_ops end # UART0 + device pci 18.1 alias uart1 off ops uart_ops end # UART1 + device pci 18.2 alias uart2 off ops uart_ops end # UART2 + device pci 18.3 alias uart3 off ops uart_ops end # UART3 device pci 19.0 alias spi0 off end # SPI0 device pci 19.1 alias spi1 off end # SPI1 device pci 19.2 alias spi2 off end # SPI3 diff --git a/src/soc/intel/apollolake/chipset_glk.cb b/src/soc/intel/apollolake/chipset_glk.cb index 7d1bb35ba4..8e534e4e2f 100644 --- a/src/soc/intel/apollolake/chipset_glk.cb +++ b/src/soc/intel/apollolake/chipset_glk.cb @@ -33,10 +33,10 @@ chip soc/intel/apollolake device pci 17.1 alias i2c5 off ops i2c_dev_ops end # I2C5 device pci 17.2 alias i2c6 off ops i2c_dev_ops end # I2C6 device pci 17.3 alias i2c7 off ops i2c_dev_ops end # I2C7 - device pci 18.0 alias uart0 off end # UART0 - device pci 18.1 alias uart1 off end # UART1 - device pci 18.2 alias uart2 off end # UART2 - device pci 18.3 alias uart3 off end # UART3 + device pci 18.0 alias uart0 off ops uart_ops end # UART0 + device pci 18.1 alias uart1 off ops uart_ops end # UART1 + device pci 18.2 alias uart2 off ops uart_ops end # UART2 + device pci 18.3 alias uart3 off ops uart_ops end # UART3 device pci 19.0 alias spi0 off end # SPI0 device pci 19.1 alias spi1 off end # SPI1 device pci 19.2 alias spi2 off end # SPI3 diff --git a/src/soc/intel/cannonlake/chipset.cb b/src/soc/intel/cannonlake/chipset.cb index d55036e7fa..20a7250794 100644 --- a/src/soc/intel/cannonlake/chipset.cb +++ b/src/soc/intel/cannonlake/chipset.cb @@ -95,7 +95,7 @@ chip soc/intel/cannonlake device pci 17.0 alias sata off ops sata_ops end # SATA device pci 19.0 alias i2c4 off ops i2c_dev_ops end # I2C #4 device pci 19.1 alias i2c5 off ops i2c_dev_ops end # I2C #5 - device pci 19.2 alias uart2 off end # UART #2 + device pci 19.2 alias uart2 off ops uart_ops end # UART #2 device pci 1a.0 alias emmc off end # eMMC device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end # PCI Express Port 1 device pci 1c.1 alias pcie_rp2 off ops pcie_rp_ops end # PCI Express Port 2 @@ -113,8 +113,8 @@ chip soc/intel/cannonlake device pci 1d.5 alias pcie_rp14 off ops pcie_rp_ops end # PCI Express Port 14 device pci 1d.6 alias pcie_rp15 off ops pcie_rp_ops end # PCI Express Port 15 device pci 1d.7 alias pcie_rp16 off ops pcie_rp_ops end # PCI Express Port 16 - device pci 1e.0 alias uart0 off end # UART #0 - device pci 1e.1 alias uart1 off end # UART #1 + device pci 1e.0 alias uart0 off ops uart_ops end # UART #0 + device pci 1e.1 alias uart1 off ops uart_ops end # UART #1 device pci 1e.2 alias gspi0 off end # GSPI #0 device pci 1e.3 alias gspi1 off end # GSPI #1 device pci 1f.0 alias lpc_espi on end # LPC Interface diff --git a/src/soc/intel/cannonlake/chipset_pch_h.cb b/src/soc/intel/cannonlake/chipset_pch_h.cb index fb9c67ca46..76648c0ca0 100644 --- a/src/soc/intel/cannonlake/chipset_pch_h.cb +++ b/src/soc/intel/cannonlake/chipset_pch_h.cb @@ -147,8 +147,8 @@ chip soc/intel/cannonlake device pci 1d.5 alias pcie_rp14 off ops pcie_rp_ops end # PCI Express Port 14 device pci 1d.6 alias pcie_rp15 off ops pcie_rp_ops end # PCI Express Port 15 device pci 1d.7 alias pcie_rp16 off ops pcie_rp_ops end # PCI Express Port 16 - device pci 1e.0 alias uart0 off end # UART #0 - device pci 1e.1 alias uart1 off end # UART #1 + device pci 1e.0 alias uart0 off ops uart_ops end # UART #0 + device pci 1e.1 alias uart1 off ops uart_ops end # UART #1 device pci 1e.2 alias gspi0 off end # GSPI #0 device pci 1e.3 alias gspi1 off end # GSPI #1 device pci 1f.0 alias lpc_espi on end # LPC Interface diff --git a/src/soc/intel/common/block/uart/uart.c b/src/soc/intel/common/block/uart/uart.c index 2b2c8c28fc..f16d337e64 100644 --- a/src/soc/intel/common/block/uart/uart.c +++ b/src/soc/intel/common/block/uart/uart.c @@ -366,83 +366,12 @@ static const unsigned short pci_device_ids[] = { PCI_DID_INTEL_NVL_UART0, PCI_DID_INTEL_NVL_UART1, PCI_DID_INTEL_NVL_UART2, - PCI_DID_INTEL_WCL_UART0, - PCI_DID_INTEL_WCL_UART1, - PCI_DID_INTEL_WCL_UART2, - PCI_DID_INTEL_PTL_H_UART0, - PCI_DID_INTEL_PTL_H_UART1, - PCI_DID_INTEL_PTL_H_UART2, - PCI_DID_INTEL_PTL_U_H_UART0, - PCI_DID_INTEL_PTL_U_H_UART1, - PCI_DID_INTEL_PTL_U_H_UART2, PCI_DID_INTEL_LNL_UART0, PCI_DID_INTEL_LNL_UART1, PCI_DID_INTEL_LNL_UART2, - PCI_DID_INTEL_MTL_UART0, - PCI_DID_INTEL_MTL_UART1, - PCI_DID_INTEL_MTL_UART2, - PCI_DID_INTEL_ARL_UART0, - PCI_DID_INTEL_ARL_UART1, - PCI_DID_INTEL_ARL_UART2, - PCI_DID_INTEL_ARP_S_UART0, - PCI_DID_INTEL_ARP_S_UART1, - PCI_DID_INTEL_ARP_S_UART2, - PCI_DID_INTEL_ARP_S_UART3, - PCI_DID_INTEL_APL_UART0, - PCI_DID_INTEL_APL_UART1, - PCI_DID_INTEL_APL_UART2, - PCI_DID_INTEL_APL_UART3, - PCI_DID_INTEL_CNL_UART0, - PCI_DID_INTEL_CNL_UART1, - PCI_DID_INTEL_CNL_UART2, - PCI_DID_INTEL_GLK_UART0, - PCI_DID_INTEL_GLK_UART1, - PCI_DID_INTEL_GLK_UART2, - PCI_DID_INTEL_GLK_UART3, - PCI_DID_INTEL_CNP_H_UART0, - PCI_DID_INTEL_CNP_H_UART1, - PCI_DID_INTEL_CNP_H_UART2, - PCI_DID_INTEL_CMP_UART0, - PCI_DID_INTEL_CMP_UART1, - PCI_DID_INTEL_CMP_UART2, - PCI_DID_INTEL_CMP_H_UART0, - PCI_DID_INTEL_CMP_H_UART1, - PCI_DID_INTEL_CMP_H_UART2, - PCI_DID_INTEL_TGP_UART0, - PCI_DID_INTEL_TGP_UART1, - PCI_DID_INTEL_TGP_UART2, - PCI_DID_INTEL_TGP_H_UART0, - PCI_DID_INTEL_TGP_H_UART1, - PCI_DID_INTEL_TGP_H_UART2, - PCI_DID_INTEL_TGP_H_UART3, PCI_DID_INTEL_MCC_UART0, PCI_DID_INTEL_MCC_UART1, PCI_DID_INTEL_MCC_UART2, - PCI_DID_INTEL_JSP_UART0, - PCI_DID_INTEL_JSP_UART1, - PCI_DID_INTEL_JSP_UART2, - PCI_DID_INTEL_ADP_S_UART0, - PCI_DID_INTEL_ADP_S_UART1, - PCI_DID_INTEL_ADP_S_UART2, - PCI_DID_INTEL_ADP_S_UART3, - PCI_DID_INTEL_ADP_S_UART4, - PCI_DID_INTEL_ADP_S_UART5, - PCI_DID_INTEL_ADP_S_UART6, - PCI_DID_INTEL_ADP_P_UART0, - PCI_DID_INTEL_ADP_P_UART1, - PCI_DID_INTEL_ADP_P_UART2, - PCI_DID_INTEL_ADP_P_UART3, - PCI_DID_INTEL_ADP_P_UART4, - PCI_DID_INTEL_ADP_P_UART5, - PCI_DID_INTEL_ADP_P_UART6, - PCI_DID_INTEL_ADP_M_N_UART0, - PCI_DID_INTEL_ADP_M_N_UART1, - PCI_DID_INTEL_ADP_M_N_UART2, - PCI_DID_INTEL_ADP_M_N_UART3, - PCI_DID_INTEL_RPP_S_UART0, - PCI_DID_INTEL_RPP_S_UART1, - PCI_DID_INTEL_RPP_S_UART2, - PCI_DID_INTEL_RPP_S_UART3, 0, }; diff --git a/src/soc/intel/jasperlake/chipset.cb b/src/soc/intel/jasperlake/chipset.cb index 4c7b8e8cd6..49cb3d2e98 100644 --- a/src/soc/intel/jasperlake/chipset.cb +++ b/src/soc/intel/jasperlake/chipset.cb @@ -75,7 +75,7 @@ chip soc/intel/jasperlake device pci 17.0 alias sata off ops sata_ops end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1a.0 alias emmc off end device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end device pci 1c.1 alias pcie_rp2 off ops pcie_rp_ops end @@ -85,8 +85,8 @@ chip soc/intel/jasperlake device pci 1c.5 alias pcie_rp6 off ops pcie_rp_ops end device pci 1c.6 alias pcie_rp7 off ops pcie_rp_ops end device pci 1c.7 alias pcie_rp8 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias pch_espi on end diff --git a/src/soc/intel/meteorlake/chipset.cb b/src/soc/intel/meteorlake/chipset.cb index 01ab3c134f..8abfa1261d 100644 --- a/src/soc/intel/meteorlake/chipset.cb +++ b/src/soc/intel/meteorlake/chipset.cb @@ -168,7 +168,7 @@ chip soc/intel/meteorlake device pci 18.2 alias eheci3 off end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end device pci 1c.1 alias pcie_rp2 off ops pcie_rp_ops end device pci 1c.2 alias pcie_rp3 off ops pcie_rp_ops end @@ -177,8 +177,8 @@ chip soc/intel/meteorlake device pci 1c.5 alias pcie_rp6 off ops pcie_rp_ops end device pci 1c.6 alias pcie_rp7 off ops pcie_rp_ops end device pci 1c.7 alias pcie_rp8 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1e.4 alias tsn_gbe1 off end diff --git a/src/soc/intel/pantherlake/chipset_ptl.cb b/src/soc/intel/pantherlake/chipset_ptl.cb index e45558b4ec..4540ce7a08 100644 --- a/src/soc/intel/pantherlake/chipset_ptl.cb +++ b/src/soc/intel/pantherlake/chipset_ptl.cb @@ -228,7 +228,7 @@ chip soc/intel/pantherlake device pci 18.2 alias eheci3 off end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end device pci 1c.1 alias pcie_rp2 off ops pcie_rp_ops end device pci 1c.2 alias pcie_rp3 off ops pcie_rp_ops end @@ -237,8 +237,8 @@ chip soc/intel/pantherlake device pci 1c.5 alias pcie_rp6 off ops pcie_rp_ops end device pci 1c.6 alias pcie_rp7 off ops pcie_rp_ops end device pci 1c.7 alias pcie_rp8 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias soc_espi on end diff --git a/src/soc/intel/pantherlake/chipset_wcl.cb b/src/soc/intel/pantherlake/chipset_wcl.cb index 3d4f641260..b2ec967c75 100644 --- a/src/soc/intel/pantherlake/chipset_wcl.cb +++ b/src/soc/intel/pantherlake/chipset_wcl.cb @@ -115,13 +115,13 @@ chip soc/intel/pantherlake device pci 18.2 alias eheci3 off end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end device pci 1c.1 alias pcie_rp2 off ops pcie_rp_ops end device pci 1c.2 alias pcie_rp3 off ops pcie_rp_ops end device pci 1c.3 alias pcie_rp4 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias soc_espi on end diff --git a/src/soc/intel/tigerlake/chipset.cb b/src/soc/intel/tigerlake/chipset.cb index a75057a4e9..4258988603 100644 --- a/src/soc/intel/tigerlake/chipset.cb +++ b/src/soc/intel/tigerlake/chipset.cb @@ -128,7 +128,7 @@ chip soc/intel/tigerlake device pci 17.0 alias sata off ops sata_ops end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1c.0 alias pcie_rp1 off ops pcie_rp_ops end device pci 1c.1 alias pcie_rp2 off ops pcie_rp_ops end device pci 1c.2 alias pcie_rp3 off ops pcie_rp_ops end @@ -141,8 +141,8 @@ chip soc/intel/tigerlake device pci 1d.1 alias pcie_rp10 off ops pcie_rp_ops end device pci 1d.2 alias pcie_rp11 off ops pcie_rp_ops end device pci 1d.3 alias pcie_rp12 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias pch_espi on end diff --git a/src/soc/intel/tigerlake/chipset_pch_h.cb b/src/soc/intel/tigerlake/chipset_pch_h.cb index 45fd63403c..c980f62f1c 100644 --- a/src/soc/intel/tigerlake/chipset_pch_h.cb +++ b/src/soc/intel/tigerlake/chipset_pch_h.cb @@ -62,7 +62,7 @@ chip soc/intel/tigerlake device pci 0e.0 alias vmd off end device pci 10.6 alias thc0 off end device pci 10.7 alias thc1 off end - device pci 11.0 alias uart3 off end + device pci 11.0 alias uart3 off ops uart_ops end device pci 11.3 alias i2c6 off ops i2c_dev_ops end device pci 12.0 alias ish off end device pci 12.6 alias gspi2 off end @@ -150,7 +150,7 @@ chip soc/intel/tigerlake device pci 17.0 alias sata off ops sata_ops end device pci 19.0 alias i2c4 off ops i2c_dev_ops end device pci 19.1 alias i2c5 off ops i2c_dev_ops end - device pci 19.2 alias uart2 off end + device pci 19.2 alias uart2 off ops uart_ops end device pci 1b.0 alias pcie_rp17 off ops pcie_rp_ops end device pci 1b.1 alias pcie_rp18 off ops pcie_rp_ops end device pci 1b.2 alias pcie_rp19 off ops pcie_rp_ops end @@ -175,8 +175,8 @@ chip soc/intel/tigerlake device pci 1d.5 alias pcie_rp14 off ops pcie_rp_ops end device pci 1d.6 alias pcie_rp15 off ops pcie_rp_ops end device pci 1d.7 alias pcie_rp16 off ops pcie_rp_ops end - device pci 1e.0 alias uart0 off end - device pci 1e.1 alias uart1 off end + device pci 1e.0 alias uart0 off ops uart_ops end + device pci 1e.1 alias uart1 off ops uart_ops end device pci 1e.2 alias gspi0 off end device pci 1e.3 alias gspi1 off end device pci 1f.0 alias pch_espi on end