Werner Zeh (werner.zeh(a)siemens.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8399
-gerrit
commit 5309f187ea0d1a8e0d05ee3a806eadaed3cd7161
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Tue Feb 10 10:16:12 2015 +0100
fsp_baytrail: Add new microcode for Bay Trail M
Add a new microcode for Bay Trail M D0 stepping used
in cpu N2807 silicon.
In addition, a selection of the used CPU type has
been added (I or M/D) which allows to use only the
really needed microcode for a given CPU type.
Change-Id: I373fc9b535f1dc97eaa9f76ae46f0b69b247a8a0
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
---
src/soc/intel/fsp_baytrail/Kconfig | 4 ++++
src/soc/intel/fsp_baytrail/microcode/microcode_blob.c | 15 ++++++++++-----
src/soc/intel/fsp_baytrail/microcode/microcode_size.h | 6 +++++-
3 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/soc/intel/fsp_baytrail/Kconfig b/src/soc/intel/fsp_baytrail/Kconfig
index 639071a..e873450 100644
--- a/src/soc/intel/fsp_baytrail/Kconfig
+++ b/src/soc/intel/fsp_baytrail/Kconfig
@@ -51,6 +51,10 @@ config CPU_SPECIFIC_OPTIONS
select CPU_MICROCODE_ADDED_DURING_BUILD if INCLUDE_MICROCODE_IN_BUILD
select ROMSTAGE_RTC_INIT
+config SOC_INTEL_FSP_BAYTRAIL_MD
+ bool
+ default n
+
config BOOTBLOCK_CPU_INIT
string
default "soc/intel/fsp_baytrail/bootblock/bootblock.c"
diff --git a/src/soc/intel/fsp_baytrail/microcode/microcode_blob.c b/src/soc/intel/fsp_baytrail/microcode/microcode_blob.c
index 709ff92..cda9e26 100644
--- a/src/soc/intel/fsp_baytrail/microcode/microcode_blob.c
+++ b/src/soc/intel/fsp_baytrail/microcode/microcode_blob.c
@@ -19,12 +19,17 @@
unsigned microcode[] = {
-/* Region size is 0x30000 - update in microcode_size.h if it gets larger. */
-#include "M0230672228.h" // M0230672: Baytrail "Super SKU" B0/B1
-#include "M0130673322.h" // M0130673: Baytrail I B2 / B3
-#include "M0130679901.h" // M0130679: Baytrail I D0
+#if !IS_ENABLED(CONFIG_SOC_INTEL_FSP_BAYTRAIL_MD)
+ /* Region size is 0x30000 - update in microcode_size.h if it gets larger. */
+ #include "M0230672228.h" // M0230672: Bay Trail "Super SKU" B0/B1
+ #include "M0130673322.h" // M0130673: Bay Trail I B2 / B3
+ #include "M0130679901.h" // M0130679: Bay Trail I D0
+#else
+ /* Region size is 0x10000 - update in microcode_size.h if it gets larger. */
+ #include "M0C30678829.h" // M0C30678: Bay Trail M D Stepping
+#endif
- /* Dummy terminator */
+ /* Dummy terminator */
0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
diff --git a/src/soc/intel/fsp_baytrail/microcode/microcode_size.h b/src/soc/intel/fsp_baytrail/microcode/microcode_size.h
index ec55314..2af2201 100644
--- a/src/soc/intel/fsp_baytrail/microcode/microcode_size.h
+++ b/src/soc/intel/fsp_baytrail/microcode/microcode_size.h
@@ -1,2 +1,6 @@
/* Maximum size of the area that the FSP will search for the correct microcode */
-#define MICROCODE_REGION_LENGTH 0x30000
+#if !IS_ENABLED(CONFIG_SOC_INTEL_FSP_BAYTRAIL_MD)
+ #define MICROCODE_REGION_LENGTH 0x30000
+#else
+ #define MICROCODE_REGION_LENGTH 0x10000
+#endif
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8503
-gerrit
commit 75426a53b72aa8a0bdf39bd851daa7b9d4856f69
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Sat Feb 21 01:46:20 2015 -0600
mainboard/asus/kfsn4-dre: Enable W83793 fan controller
The Winbond W83793 fan controller is not automatically
configured correctly on power application, leading to
abnormal, and in some cases random, fan behaviour.
This commit enables the controller and sets sane default
values.
TEST: Booted mainboard and verified that the correct number
of fan speed sensors were visible from hwmon under Linux.
Also verified that, unlike before, the CPU fans were running
at a high enough speed to properly cool the CPUs. Verified
the 8 fan outputs under direct control of the W83793 device.
Verified voltage and temperature sensors and limits via output
of the 'sensors' command.
Change-Id: Ie3753bd3111d9d9eb46826da410c132caec4d9fe
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/mainboard/asus/kfsn4-dre/Kconfig | 1 +
src/mainboard/asus/kfsn4-dre/devicetree.cb | 72 ++++++++++++++++++++++++++++++
src/mainboard/asus/kfsn4-dre/spd_notes.txt | 16 +++++++
3 files changed, 89 insertions(+)
diff --git a/src/mainboard/asus/kfsn4-dre/Kconfig b/src/mainboard/asus/kfsn4-dre/Kconfig
index 20ff380..03f3b7c 100644
--- a/src/mainboard/asus/kfsn4-dre/Kconfig
+++ b/src/mainboard/asus/kfsn4-dre/Kconfig
@@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select ENABLE_APIC_EXT_ID
select AMDMCT
select MMCONF_SUPPORT_DEFAULT
+ select DRIVERS_I2C_W83793
select DRIVERS_XGI_Z9S
select MAINBOARD_HAS_NATIVE_VGA_INIT
select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
diff --git a/src/mainboard/asus/kfsn4-dre/devicetree.cb b/src/mainboard/asus/kfsn4-dre/devicetree.cb
index 3e0e41e..928790b 100644
--- a/src/mainboard/asus/kfsn4-dre/devicetree.cb
+++ b/src/mainboard/asus/kfsn4-dre/devicetree.cb
@@ -75,6 +75,78 @@ chip northbridge/amd/amdfam10/root_complex # Root complex
chip drivers/generic/generic # DIMM n-1-1-1
device i2c 57 on end
end
+ chip drivers/i2c/w83793
+ register "mfc" = "0x29" # Enable FANIN1/FANIN12, FANIN9/FANIN10, and FANIN8/FANCTRL8 inputs
+ register "fanin" = "0x7f" # Enable monitoring of FANIN6 - FANIN12
+ register "fanin_sel" = "0x0f" # Connect FANIN9 - FANIN12 to pins 37 - 40
+ register "peci_agent_conf" = "0x33" # Set Intel CPU PECI agent domain (not used by AMD but may affect chip operation)
+ register "tcase0" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
+ register "tcase1" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
+ register "tcase2" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
+ register "tcase3" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
+ register "tr_enable" = "0x03" # Enable montoring of TR1 and TR2
+ register "td_mode_select" = "0x05" # Use internal temperature sensors and disable unconnected TD3/TD4
+ register "td1_critical_temperature" = "85" # Set TD1 (CPU0) critical temperature to 85°C
+ register "td1_critical_hysteresis" = "80" # Set TD1 (CPU0) critical hysteresis temperature to 80°C
+ register "td1_warning_temperature" = "70" # Set TD1 (CPU0) warning temperature to 70°C
+ register "td1_warning_hysteresis" = "65" # Set TD1 (CPU0) warning hysteresis temperature to 65°C
+ register "td2_critical_temperature" = "85" # Set TD2 (CPU1) critical temperature to 85°C
+ register "td2_critical_hysteresis" = "80" # Set TD2 (CPU1) critical hysteresis temperature to 80°C
+ register "td2_warning_temperature" = "70" # Set TD2 (CPU1) warning temperature to 70°C
+ register "td2_warning_hysteresis" = "65" # Set TD2 (CPU1) warning hysteresis temperature to 65°C
+ register "tr1_critical_temperature" = "60" # Set TR1 (mainboard) critical temperature to 60°C
+ register "tr1_critical_hysteresis" = "55" # Set TR1 (mainboard) critical hysteresis temperature to 55°C
+ register "tr1_warning_temperature" = "50" # Set TR1 (mainboard) warning temperature to 50°C
+ register "tr1_warning_hysteresis" = "45" # Set TR1 (mainboard) warning hysteresis temperature to 45°C
+ register "critical_temperature" = "80" # Set critical temperature to 80°C
+ register "fanctrl1" = "0x48" # Set Fan 4 and Fan 7 to output buffer mode, all others to open drain
+ register "fanctrl2" = "0x01" # Set Fan 4 to Fan 7 to output buffer mode, Fan 1 to DC mode
+ register "first_valid_fan_number" = "2" # Fan 1/Fan 2 controls and sensors are not connected to anything
+ register "td1_fan_select" = "0x00" # All fans to manual mode (no dependence on TD1)
+ register "td2_fan_select" = "0x00" # All fans to manual mode (no dependence on TD2)
+ register "td3_fan_select" = "0x00" # All fans to manual mode (no dependence on TD3)
+ register "td4_fan_select" = "0x00" # All fans to manual mode (no dependence on TD4)
+ register "tr1_fan_select" = "0x00" # All fans to manual mode (no dependence on TR1)
+ register "tr2_fan_select" = "0x00" # All fans to manual mode (no dependence on TR2)
+ register "fan1_nonstop" = "7" # Set Fan 1 minimum speed
+ register "fan2_nonstop" = "7" # Set Fan 2 minimum speed
+ register "fan3_nonstop" = "7" # Set Fan 3 minimum speed
+ register "fan4_nonstop" = "7" # Set Fan 4 minimum speed
+ register "fan5_nonstop" = "7" # Set Fan 5 minimum speed
+ register "fan6_nonstop" = "7" # Set Fan 6 minimum speed
+ register "fan7_nonstop" = "7" # Set Fan 7 minimum speed
+ register "fan8_nonstop" = "7" # Set Fan 8 minimum speed
+ register "default_speed" = "100" # All fans to full speed on power up
+ register "fan1_duty" = "100" # Fan 1 to full speed
+ register "fan2_duty" = "100" # Fan 2 to full speed
+ register "fan3_duty" = "100" # Fan 3 to full speed
+ register "fan4_duty" = "100" # Fan 4 to full speed
+ register "fan5_duty" = "100" # Fan 5 to full speed
+ register "fan6_duty" = "100" # Fan 6 to full speed
+ register "fan7_duty" = "100" # Fan 7 to full speed
+ register "fan8_duty" = "100" # Fan 8 to full speed
+ register "vcorea_high_limit_mv" = "1500" # VCOREA (Node 0) high limit to 1.5V
+ register "vcorea_low_limit_mv" = "900" # VCOREA (Node 0) low limit to 0.9V
+ register "vcoreb_high_limit_mv" = "1500" # VCOREB (Node 1) high limit to 1.5V
+ register "vcoreb_low_limit_mv" = "900" # VCOREB (Node 1) low limit to 0.9V
+ register "vtt_high_limit_mv" = "1250" # VTT (HT link voltage) high limit to 1.25V
+ register "vtt_low_limit_mv" = "1150" # VTT (HT link voltage) low limit to 1.15V
+ register "vsen1_high_limit_mv" = "1900" # VSEN1 (Node 0 RAM voltage) high limit to 1.9V
+ register "vsen1_low_limit_mv" = "1700" # VSEN1 (Node 0 RAM voltage) low limit to 1.7V
+ register "vsen2_high_limit_mv" = "1900" # VSEN2 (Node 1 RAM voltage) high limit to 1.9V
+ register "vsen2_low_limit_mv" = "1700" # VSEN2 (Node 1 RAM voltage) low limit to 1.7V
+ register "vsen3_high_limit_mv" = "3500" # VSEN3 (+3.3V) high limit to 3.5V
+ register "vsen3_low_limit_mv" = "3100" # VSEN3 (+3.3V) low limit to 3.1V
+ register "vsen4_high_limit_mv" = "1070" # VSEN4 (+12V, scaling factor ~12.15) high limit to 13V
+ register "vsen4_low_limit_mv" = "905" # VSEN4 (+12V, scaling factor ~12.15) low limit to 11V
+ register "vdd_high_limit_mv" = "5200" # 5VDD high limit to 5.2V
+ register "vdd_low_limit_mv" = "4800" # 5VDD low limit to 4.8V
+ register "vsb_high_limit_mv" = "5200" # 5VSB high limit to 5.2V
+ register "vsb_low_limit_mv" = "4800" # 5VSB low limit to 4.8V
+ register "vbat_high_limit_mv" = "3500" # VBAT (+3V) high limit to 3.5V
+ register "vbat_low_limit_mv" = "2500" # VBAT (+3V) low limit to 2.5V
+ device i2c 0x2f on end
+ end
end
device pci 1.1 on end # SM 1
device pci 2.0 on end # USB 1.1
diff --git a/src/mainboard/asus/kfsn4-dre/spd_notes.txt b/src/mainboard/asus/kfsn4-dre/spd_notes.txt
index ff49c18..d7440f0 100644
--- a/src/mainboard/asus/kfsn4-dre/spd_notes.txt
+++ b/src/mainboard/asus/kfsn4-dre/spd_notes.txt
@@ -24,6 +24,22 @@ CK804 pin W2 <--> GPIO43
CK804 pin W3 <--> GPIO44
====================================================================================================
+W83793 (U46)
+====================================================================================================
+
+Sensor mappings:
+FRNT_FAN1: FAN3
+FRNT_FAN2: FAN4
+FRNT_FAN3: FAN5
+FRNT_FAN4: FAN6
+FRNT_FAN5: FAN9
+FRNT_FAN6: FAN10
+REAR_FAN1: FAN7
+REAR_FAN2: FAN8
+REAR_FAN3: FAN11
+REAR_FAN4: FAN12
+
+====================================================================================================
Other hardware
====================================================================================================
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8515
-gerrit
commit b6df02548579ac4ca397b373f2018826d384b289
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Sun Feb 22 22:50:32 2015 +0100
libpayload: Don't try to free individual xhci device slots
`di` points to a single item in xhci->dev[], which is malloc'd
collectively. Trying to free() leads to pain.
Change-Id: Ibd99eda905d43cbf2d2c111dfd0186ed6b119329
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
Found-by: Coverity Scan
---
payloads/libpayload/drivers/usb/xhci_devconf.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/payloads/libpayload/drivers/usb/xhci_devconf.c b/payloads/libpayload/drivers/usb/xhci_devconf.c
index 5699499..012f610 100644
--- a/payloads/libpayload/drivers/usb/xhci_devconf.c
+++ b/payloads/libpayload/drivers/usb/xhci_devconf.c
@@ -218,7 +218,6 @@ _free_return:
free(tr);
if (di)
free(di->ctx.raw);
- free((void *)di);
_free_ic_return:
if (ic)
free(ic->raw);
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8371
-gerrit
commit 5b7d77b4003588381888c687c56157685abb6181
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Thu Feb 5 23:36:32 2015 +0100
documentation: begin documenting our use of git submodules
git submodules have some surprising behaviour, and we make full use
of it. Start building a canonical resource for that so developers
can spend their time on better things than on fighting git.
Change-Id: I5aa721e9b0acb2912a057858fd23a1d59d845ed1
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
documentation/submodules.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/documentation/submodules.txt b/documentation/submodules.txt
new file mode 100644
index 0000000..631e351
--- /dev/null
+++ b/documentation/submodules.txt
@@ -0,0 +1,46 @@
+Use of git submodules in coreboot
+=================================
+coreboot uses git submodules to keep certain parts of the tree separate,
+with two major use cases:
+
+First, we use a vendor tool by NVIDIA for systems based on their SoC
+and since they publish it through git, we can just import it into our
+tree using submodules.
+
+Second, lots of boards these days require binaries and we want to keep
+them separate from coreboot proper to clearly delineate shiny Open Source
+from ugly blobs.
+Since we don't want to impose blobs on users who really don't need them,
+that repository is only downloaded and checked out on explicit request.
+
+Handling submodules
+-------------------
+For the most part, submodules should be automatically checked out on the
+first execution of the coreboot Makefile.
+
+To manually fetch all repositories (eg. when you want to prepare the tree
+for archiving, or to use it without network access), run
+
+ $ git submodule update --init --checkout
+
+This also checks out the binaries below `3rdparty/`
+
+Mirroring coreboot
+------------------
+When running a coreboot mirror to checkout from, for full operation, you
+should also mirror the blobs and nvidia-cbootimage repository, and place
+them in the same directory as the coreboot repository mirror.
+
+That is, when residing in coreboot's repository, `cd ../blobs.git`
+should move you to the blobs repository.
+
+With that, no matter what the URL of your coreboot repository is, the
+git client (of a sufficiently new version) is able to pick up the other
+repositories transparently.
+
+Minimum requirements
+--------------------
+git needs to be able to handle relative paths to submodule repositories,
+and it needs to know about non-automatic submodules.
+
+For these features, we require git version 1.7.6.1 or newer.