[coreboot-gerrit] New patch to review for coreboot: asrock/e350m1: disable unconnected GPP PCIe clocks

Felix Held (felix-coreboot@felixheld.de) gerrit at coreboot.org
Sun Oct 11 13:25:41 CEST 2015


Felix Held (felix-coreboot at felixheld.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/11866

-gerrit

commit 1c29554660dc3597af7d93bc8045e01b7a815a68
Author: Felix Held <felix-coreboot at felixheld.de>
Date:   Sun Oct 11 13:24:40 2015 +0200

    asrock/e350m1: disable unconnected GPP PCIe clocks
    
    checked on real hardware by desoldering the FCH and looking at the PCB
    
    this lowers the power consuption by about 150-200mW
    
    rebased version of change #5397
    
    Change-Id: I986c4cc73a247994f2a47fdfd03f585069ca9385
    Signed-off-by: Felix Held <felix-coreboot at felixheld.de>
---
 src/mainboard/asrock/e350m1/mainboard.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/mainboard/asrock/e350m1/mainboard.c b/src/mainboard/asrock/e350m1/mainboard.c
index ef9b5e9..3b6f951 100644
--- a/src/mainboard/asrock/e350m1/mainboard.c
+++ b/src/mainboard/asrock/e350m1/mainboard.c
@@ -25,6 +25,8 @@
 #include <cpu/amd/mtrr.h>
 #include <device/pci_def.h>
 #include <southbridge/amd/cimx/cimx_util.h>
+#include <agesawrapper.h>
+#include "SBPLATFORM.h"
 
 //#define SMBUS_IO_BASE 0x6000
 void set_pcie_reset(void);
@@ -54,6 +56,21 @@ static void mainboard_enable(device_t dev)
 {
 	printk(BIOS_INFO, "Mainboard " CONFIG_MAINBOARD_PART_NUMBER " Enable.\n");
 
+	/* Power off unused clock pins of GPP PCIe devices */
+	u8 *misc_mem_clk_cntrl = (u8 *)(ACPI_MMIO_BASE + MISC_BASE);
+
+	/*
+	 * GPP CLK0 connected to unpopulated mini PCIe slot
+	 * GPP CLK1 connected to ethernet chip
+	 */
+	*(misc_mem_clk_cntrl + 0) = 0xFF;
+	/* GPP CLK2 connected to the external USB3 controller */
+	*(misc_mem_clk_cntrl + 1) = 0x0F;
+	*(misc_mem_clk_cntrl + 2) = 0x00;
+	*(misc_mem_clk_cntrl + 3) = 0x00;
+	/* SLT_GFX_CLK connected to PCIe slot */
+	*(misc_mem_clk_cntrl + 4) = 0xF0;
+
 	/*
 	 * Initialize ASF registers to an arbitrary address because someone
 	 * long ago set things up this way inside the SPD read code.  The



More information about the coreboot-gerrit mailing list