[coreboot-gerrit] New patch to review for coreboot: soc/intel/skylake: Perform early chipset programming

Subrata Banik (subrata.banik@intel.com) gerrit at coreboot.org
Sat Jul 23 23:28:58 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 b54432f1c7117136a0d5affa3e9181cb45d441e9
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/include/fsp/romstage.h |  3 ++
 src/drivers/intel/fsp1_1/romstage.c             |  4 +++
 src/soc/intel/skylake/romstage/pch.c            | 38 -------------------------
 src/soc/intel/skylake/romstage/romstage.c       |  2 +-
 4 files changed, 8 insertions(+), 39 deletions(-)

diff --git a/src/drivers/intel/fsp1_1/include/fsp/romstage.h b/src/drivers/intel/fsp1_1/include/fsp/romstage.h
index d07dc37..89f2842 100644
--- a/src/drivers/intel/fsp1_1/include/fsp/romstage.h
+++ b/src/drivers/intel/fsp1_1/include/fsp/romstage.h
@@ -82,6 +82,9 @@ void romstage_common(struct romstage_params *params);
 asmlinkage void *romstage_main(FSP_INFO_HEADER *fih);
 void *setup_stack_and_mtrrs(void);
 void soc_after_ram_init(struct romstage_params *params);
+#if IS_ENABLED(CONFIG_C_ENVIRONMENT_BOOTBLOCK)
+void soc_early_pch_init(void);
+#endif
 void soc_display_memory_init_params(const MEMORY_INIT_UPD *old,
 	MEMORY_INIT_UPD *new);
 void soc_memory_init_params(struct romstage_params *params,
diff --git a/src/drivers/intel/fsp1_1/romstage.c b/src/drivers/intel/fsp1_1/romstage.c
index c1b1ca5..b6cbdc7 100644
--- a/src/drivers/intel/fsp1_1/romstage.c
+++ b/src/drivers/intel/fsp1_1/romstage.c
@@ -55,6 +55,10 @@ 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 */
+	if (IS_ENABLED(CONFIG_C_ENVIRONMENT_BOOTBLOCK))
+		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();
 }
diff --git a/src/soc/intel/skylake/romstage/romstage.c b/src/soc/intel/skylake/romstage/romstage.c
index 9f46fd9..ac5d0e9 100644
--- a/src/soc/intel/skylake/romstage/romstage.c
+++ b/src/soc/intel/skylake/romstage/romstage.c
@@ -49,7 +49,7 @@ void soc_pre_ram_init(struct romstage_params *params)
 	soc_fill_pei_data(params->pei_data);
 }
 
-void car_soc_post_console_init(void)
+void soc_early_pch_init(void)
 {
 	report_platform_info();
 	set_max_freq();



More information about the coreboot-gerrit mailing list