[coreboot-gerrit] Patch set updated for coreboot: soc/intel/skylake: Perform early chipset programming

Subrata Banik (subrata.banik@intel.com) gerrit at coreboot.org
Mon Jul 25 08:23:13 CEST 2016


Subrata Banik (subrata.banik at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15819

-gerrit

commit 282d52d13c02c063d91a40d8ea3f0aa37b6f0e77
Author: Subrata Banik <subrata.banik at intel.com>
Date:   Fri Jul 22 21:51:42 2016 +0530

    soc/intel/skylake: Perform early chipset programming
    
    Move PCH programming from verstage to early romstage.
    
    BUG=chrome-os-partner:55357
    BRANCH=none
    TEST=Built and booted kunimitsu
    
    Change-Id: Ie763f3a73e0a76817dd682adfd9fe3c7c11207cf
    Signed-off-by: Barnali Sarkar <barnali.sarkar at intel.com>
    Signed-off-by: Shirish S <shirish.s at intel.com>
    Signed-off-by: Subrata Banik <subrata.banik at intel.com>
---
 src/drivers/intel/fsp1_1/romstage.c  |  6 ++++++
 src/soc/intel/skylake/romstage/pch.c | 38 ------------------------------------
 2 files changed, 6 insertions(+), 38 deletions(-)

diff --git a/src/drivers/intel/fsp1_1/romstage.c b/src/drivers/intel/fsp1_1/romstage.c
index c1b1ca5..559f084 100644
--- a/src/drivers/intel/fsp1_1/romstage.c
+++ b/src/drivers/intel/fsp1_1/romstage.c
@@ -38,6 +38,9 @@
 #include <tpm.h>
 #include <vendorcode/google/chromeos/chromeos.h>
 
+/* Perform early chipset initialization before fsp memory init */
+__attribute__((weak)) void soc_early_pch_init(void) { /* no-op */ }
+
 asmlinkage void *romstage_main(FSP_INFO_HEADER *fih)
 {
 	void *top_of_stack;
@@ -55,6 +58,9 @@ asmlinkage void *romstage_main(FSP_INFO_HEADER *fih)
 	if (IS_ENABLED(CONFIG_SUPPORT_CPU_UCODE_IN_CBFS))
 		intel_update_microcode_from_cbfs();
 
+	/* Early pch chipset init */
+	soc_early_pch_init();
+
 	memset(&pei_data, 0, sizeof(pei_data));
 
 	/* Display parameters */
diff --git a/src/soc/intel/skylake/romstage/pch.c b/src/soc/intel/skylake/romstage/pch.c
index 1196c5e..ea0bd85 100644
--- a/src/soc/intel/skylake/romstage/pch.c
+++ b/src/soc/intel/skylake/romstage/pch.c
@@ -44,42 +44,6 @@ static const u8 pch_interrupt_routing[] = {
 		11	/* PHRC: PIRQH -> IRQ11 */
 };
 
-static void pch_enable_lpc(void)
-{
-	/* Lookup device tree in romstage */
-	const struct device *dev;
-	const config_t *config;
-	u16 lpc_en;
-
-	/* IO Decode Range */
-	lpc_en = COMA_RANGE | (COMB_RANGE << 4);
-	pci_write_config16(PCH_DEV_LPC, LPC_IO_DEC, lpc_en);
-	pcr_write16(PID_DMI, R_PCH_PCR_DMI_LPCIOD, lpc_en);
-
-	/* IO Decode Enable */
-	lpc_en = CNF1_LPC_EN | CNF2_LPC_EN | GAMEL_LPC_EN | GAMEH_LPC_EN |
-		COMA_LPC_EN | KBC_LPC_EN | MC_LPC_EN;
-	pci_write_config16(PCH_DEV_LPC, LPC_EN, lpc_en);
-	pcr_write16(PID_DMI, R_PCH_PCR_DMI_LPCIOE, lpc_en);
-
-	dev = dev_find_slot(0, PCI_DEVFN(PCH_DEV_SLOT_LPC, 0));
-	if (!dev || !dev->chip_info)
-		return;
-	config = dev->chip_info;
-
-	/* Set in PCI generic decode range registers */
-	pci_write_config32(PCH_DEV_LPC, LPC_GEN1_DEC, config->gen1_dec);
-	pci_write_config32(PCH_DEV_LPC, LPC_GEN2_DEC, config->gen2_dec);
-	pci_write_config32(PCH_DEV_LPC, LPC_GEN3_DEC, config->gen3_dec);
-	pci_write_config32(PCH_DEV_LPC, LPC_GEN4_DEC, config->gen4_dec);
-
-	/* Mirror these same settings in DMI PCR */
-	pcr_write32(PID_DMI, R_PCH_PCR_DMI_LPCLGIR1, config->gen1_dec);
-	pcr_write32(PID_DMI, R_PCH_PCR_DMI_LPCLGIR2, config->gen2_dec);
-	pcr_write32(PID_DMI, R_PCH_PCR_DMI_LPCLGIR3, config->gen3_dec);
-	pcr_write32(PID_DMI, R_PCH_PCR_DMI_LPCLGIR4, config->gen4_dec);
-}
-
 static void pch_device_init(void)
 {
 	device_t dev;
@@ -127,7 +91,5 @@ void pch_early_init(void)
 
 	pch_interrupt_init();
 
-	pch_enable_lpc();
-
 	enable_smbus();
 }



More information about the coreboot-gerrit mailing list