the following patch was just integrated into master:
commit 5bcbd11b0d11049fe42b9c64330eaf8dbee0132f
Author: Ruilin Hao <rlhao(a)marvell.com>
Date: Tue Nov 10 00:41:41 2015 -0800
libpayload: Add timer driver for armada38x
Add timer driver for armada38x
BUG=chrome-os-partner:47462
TEST=emerge-cyclone libpayload
BRANCH=tot
Change-Id: Iefb6d1fcb907edb54d55ba8addfb66329af6c3c7
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: cd467160ecab050a541a445c2afab9e6bc625635
Original-Change-Id: Id42bafdbc34295b6f8afe5610fb3bab0e0e1b6e8
Original-Signed-off-by: Ruilin Hao <rlhao(a)marvell.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/313343
Original-Commit-Ready: Kan Yan <kyan(a)google.com>
Original-Tested-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Furquan Shaikh <furquan(a)chromium.org>
Original-Reviewed-by: Yuji Sasaki <sasakiy(a)chromium.org>
Reviewed-on: https://review.coreboot.org/13114
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See https://review.coreboot.org/13114 for details.
-gerrit
the following patch was just integrated into master:
commit de4defbaaf76a8bf7a705e3d1b265e1936cd7481
Author: Ruilin Hao <rlhao(a)marvell.com>
Date: Tue Nov 10 00:18:59 2015 -0800
soc/marvell/armada38x: Add i2c driver for armada38x
Port i2c driver from uboot to coreboot
BUG=chrome-os-partner:47462
TEST=emerge-cyclone coreboot
BRANCH=tot
Change-Id: I8ce2a965acaed68ad0f0518648490ec471c6810b
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 4c2e9592662787ebed1d0aa8cafaa00fd12c2e9c
Original-Change-Id: If791228edf29405fa4b2f959a21510bd7da9865b
Original-Signed-off-by: Ruilin Hao <rlhao(a)marvell.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/313342
Original-Commit-Ready: Kan Yan <kyan(a)google.com>
Original-Tested-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Furquan Shaikh <furquan(a)chromium.org>
Reviewed-on: https://review.coreboot.org/13113
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See https://review.coreboot.org/13113 for details.
-gerrit
the following patch was just integrated into master:
commit c1b9e7934c0b100b8ce558669df8b57a03b2271f
Author: Ruilin Hao <rlhao(a)marvell.com>
Date: Tue Nov 10 00:17:09 2015 -0800
soc/marvell/armada38x: Add gpio driver for armada38x
Port gpio driver from uboot to coreboot
BUG=chrome-os-partner:47462
TEST=None
BRANCH=tot
Change-Id: Ib6cfbb6e44cb642c7af937778076a51d405ff4a2
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 5cf94502faad96147d4a4adb42eb13edb64a6439
Original-Change-Id: Ia2e081a85347e2fc8bb365ca527ee2ee32af86f1
Original-Signed-off-by: Ruilin Hao <rlhao(a)marvell.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/313341
Original-Commit-Ready: Kan Yan <kyan(a)google.com>
Original-Tested-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Furquan Shaikh <furquan(a)chromium.org>
Original-Reviewed-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Yuji Sasaki <sasakiy(a)chromium.org>
Reviewed-on: https://review.coreboot.org/13112
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See https://review.coreboot.org/13112 for details.
-gerrit
the following patch was just integrated into master:
commit 5b429ac2b26cdd487841ef6c45d03ffe7b048f04
Author: Ruilin Hao <rlhao(a)marvell.com>
Date: Tue Nov 10 00:12:08 2015 -0800
soc/marvell/armada38x: Add spi driver for armada38x
Port spi driver from uboot to coreboot
BUG=chrome-os-partner:47462
TEST=None
BRANCH=tot
Change-Id: I747be7001f4cfb8eec33e8e5bdef3fe5bb0eb2ca
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 9fbc5c2feb6ffacb54ed94e5c7b94b38be2b2ded
Original-Change-Id: Ibea9a050ac8bdab6ce4eeb07accde53aeadade5f
Original-Signed-off-by: Ruilin Hao <rlhao(a)marvell.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/313340
Original-Commit-Ready: Kan Yan <kyan(a)google.com>
Original-Tested-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Furquan Shaikh <furquan(a)chromium.org>
Original-Reviewed-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Yuji Sasaki <sasakiy(a)chromium.org>
Reviewed-on: https://review.coreboot.org/13111
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See https://review.coreboot.org/13111 for details.
-gerrit
the following patch was just integrated into master:
commit 2c8b0b137382c969d791c734dca7c1a7a03b07ca
Author: Ruilin Hao <rlhao(a)marvell.com>
Date: Mon Nov 9 22:37:09 2015 -0800
soc/marvell/armada38x: Add generic support for armada38x
Skeleton for soc armada38x
BUG=chrome-os-partner:47462
TEST=None
BRANCH=tot
Change-Id: I76f631ee6cdfc90c44727cb20aa960796bc785a5
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: e91cc19468325f005c6ac920bbe27a174c409727
Original-Change-Id: Iac5fc34df1ba18b4515029aa2fcff8f78a5df191
Original-Signed-off-by: Ruilin Hao <rlhao(a)marvell.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/313179
Original-Commit-Ready: Kan Yan <kyan(a)google.com>
Original-Tested-by: Kan Yan <kyan(a)google.com>
Original-Reviewed-by: Kan Yan <kyan(a)google.com>
Reviewed-on: https://review.coreboot.org/13110
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth(a)google.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See https://review.coreboot.org/13110 for details.
-gerrit
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13604
-gerrit
commit 2a87a1ec5b3bea2ce6b694b600ceaa87ca0c290a
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Mon Feb 1 17:37:16 2016 -0600
google/chromeos/vboot2: defer clearing rec mode switch
Certain platforms query the recovery mode switch more than just within
vboot during the boot flow. Therefore, it's important that the first call to
get_recovery_mode_switch() is consistent through memory training because
certain platforms use the recovery mode switch to take different action
for memory training. Therefore, defer the clearing of the rec mode
switch to a place when it's known that memory is up and online.
BUG=chrome-os-partner:44827
BRANCH=glados
TEST=Three finger salute is honored on chell by retraining memory.
Change-Id: I26ea51de7ffa2fe75b9ef1401fe92f9aec2b4567
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 6b0de9369242e50c7ff3b164cf1ced0642c7b087
Original-Change-Id: Ia7709c7346d1222e314bf3ac7e4335a63e9a5144
Original-Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/325120
Original-Reviewed-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/vendorcode/google/chromeos/vboot2/vboot_handoff.c | 11 +++++++++++
src/vendorcode/google/chromeos/vboot2/vboot_logic.c | 1 -
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c b/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c
index dbcc4da..c89e9a0 100644
--- a/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c
+++ b/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c
@@ -152,6 +152,17 @@ void vboot_fill_handoff(void)
/* needed until we finish transtion to vboot2 for kernel verification */
fill_vboot_handoff(vh, sd);
+
+ /*
+ * The recovery mode switch is cleared (typically backed by EC) here
+ * to allow multiple queries to get_recovery_mode_switch() and have
+ * them return consistent results during the verified boot path as well
+ * as dram initialization. x86 systems ignore the saved dram settings
+ * in the recovery path in order to start from a clean slate. Therefore
+ * clear the state here since this function is called when memory
+ * is known to be up.
+ */
+ clear_recovery_mode_switch();
}
/*
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_logic.c b/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
index fec368c..a4829c0 100644
--- a/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
+++ b/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
@@ -316,7 +316,6 @@ void verstage_main(void)
ctx.flags |= VB2_CONTEXT_FORCE_DEVELOPER_MODE;
if (get_recovery_mode_switch()) {
- clear_recovery_mode_switch();
ctx.flags |= VB2_CONTEXT_FORCE_RECOVERY_MODE;
if (IS_ENABLED(CONFIG_VBOOT_DISABLE_DEV_ON_RECOVERY))
ctx.flags |= VB2_DISABLE_DEVELOPER_MODE;
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13602
-gerrit
commit 990071d528ec1c2c4a4f6c34bbf385432294272a
Author: Fang, Yang A <yang.a.fang(a)intel.com>
Date: Thu Jan 28 16:52:33 2016 -0800
nhlt: add api to override oem_id and oem_table_id of acpi_header_t
This patch added nhlt_soc_serialize_oem_overrides and
nhlt_serilalize_oem_overrides to be able to override oem_id and
oem_table_id.board file can pass specific string by calling
nhlt_soc_serialize_oem_overrides
kernel use these two fields to construct a topology binary name
if the designate file is not found a default dfw_sst.bin will be used
it is optional.
BUG=chrome-os-partner:49570
BRANCH=glados
TEST=Build & Booted kunimitsu board. Verified that kernel
can read new strings.
Change-Id: I00b64fb8bb63de601d3116e0b8941057c1efa230
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 374ce08b2d8a2f4e5dd7f51eacb505dbb77fd171
Original-Change-Id: I03623c8ac81efb5a5ea3ec9c6cd604d2e9294022
Original-Signed-off-by: Fang, Yang A <yang.a.fang(a)intel.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/322860
Original-Commit-Ready: Yang Fang <yang.a.fang(a)intel.com>
Original-Tested-by: Yang Fang <yang.a.fang(a)intel.com>
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/include/nhlt.h | 17 +++++++++++++++++
src/lib/nhlt.c | 22 ++++++++++++++++++++--
src/soc/intel/skylake/nhlt/nhlt.c | 9 ++++++++-
3 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/src/include/nhlt.h b/src/include/nhlt.h
index ca16693..f0b3b6f 100644
--- a/src/include/nhlt.h
+++ b/src/include/nhlt.h
@@ -125,12 +125,29 @@ void nhlt_next_instance(struct nhlt *nhlt, int link_type);
uintptr_t nhlt_serialize(struct nhlt *nhlt, uintptr_t acpi_addr);
/*
+ * Serialize NHLT object to ACPI table. Take in the beginning address of where
+ * the table will reside oem_id and oem_table_id and return the address of the
+ * next ACPI table. On error 0 will be returned. The NHLT object is no longer
+ * valid after thisfunction is called.
+ */
+uintptr_t nhlt_serialize_oem_overrides(struct nhlt *nhlt, uintptr_t acpi_addr,
+ const char *oem_id, const char *oem_table_id);
+
+/*
* While very similar to nhlt_serialize() the SoC specific function allows
* the chipset to perform any needed accounting work such as updating ACPI
* field references for the serialized structure.
*/
uintptr_t nhlt_soc_serialize(struct nhlt *nhlt, uintptr_t acpi_addr);
+/*
+ * While very similar to nhlt_serialize_oem_overrides() the SoC specific
+ * function allows the chipset to perform any needed accounting work such
+ * as updating ACPI field references for the serialized structure.
+ */
+uintptr_t nhlt_soc_serialize_oem_overrides(struct nhlt *nhlt,
+ uintptr_t acpi_addr, const char *oem_id, const char *oem_table_id);
+
/* Link and device types. */
enum {
NHLT_LINK_HDA,
diff --git a/src/lib/nhlt.c b/src/lib/nhlt.c
index 4fa4a0c..11a397c 100644
--- a/src/lib/nhlt.c
+++ b/src/lib/nhlt.c
@@ -389,9 +389,17 @@ static void nhlt_serialize_endpoints(struct nhlt *nhlt, struct cursor *cur)
uintptr_t nhlt_serialize(struct nhlt *nhlt, uintptr_t acpi_addr)
{
+ return nhlt_serialize_oem_overrides(nhlt, acpi_addr, NULL, NULL);
+}
+
+uintptr_t nhlt_serialize_oem_overrides(struct nhlt *nhlt,
+ uintptr_t acpi_addr, const char *oem_id, const char *oem_table_id)
+{
struct cursor cur;
acpi_header_t *header;
size_t sz;
+ size_t oem_id_len;
+ size_t oem_table_id_len;
printk(BIOS_DEBUG, "ACPI: * NHLT\n");
@@ -403,8 +411,18 @@ uintptr_t nhlt_serialize(struct nhlt *nhlt, uintptr_t acpi_addr)
memcpy(header->signature, "NHLT", 4);
write_le32(&header->length, sz);
write_le8(&header->revision, 5);
- memcpy(header->oem_id, OEM_ID, 6);
- memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8);
+
+ if (oem_id == NULL)
+ oem_id = OEM_ID;
+
+ if (oem_table_id == NULL)
+ oem_table_id = ACPI_TABLE_CREATOR;
+
+ oem_id_len = MIN(strlen(oem_id), 6);
+ oem_table_id_len = MIN(strlen(oem_table_id), 8);
+
+ memcpy(header->oem_id, oem_id, oem_id_len);
+ memcpy(header->oem_table_id, oem_table_id, oem_table_id_len);
memcpy(header->asl_compiler_id, ASLC, 4);
cur.buf = (void *)(acpi_addr + sizeof(acpi_header_t));
diff --git a/src/soc/intel/skylake/nhlt/nhlt.c b/src/soc/intel/skylake/nhlt/nhlt.c
index 56e7d39..6ef906a 100644
--- a/src/soc/intel/skylake/nhlt/nhlt.c
+++ b/src/soc/intel/skylake/nhlt/nhlt.c
@@ -87,6 +87,12 @@ struct nhlt_endpoint *nhlt_soc_add_endpoint(struct nhlt *nhlt, int soc_hwintf,
uintptr_t nhlt_soc_serialize(struct nhlt *nhlt, uintptr_t acpi_addr)
{
+ return nhlt_soc_serialize_oem_overrides(nhlt, acpi_addr, NULL, NULL);
+}
+
+uintptr_t nhlt_soc_serialize_oem_overrides(struct nhlt *nhlt,
+ uintptr_t acpi_addr, const char *oem_id, const char *oem_table_id)
+{
global_nvs_t *gnvs;
gnvs = cbmem_find(CBMEM_ID_ACPI_GNVS);
@@ -98,5 +104,6 @@ uintptr_t nhlt_soc_serialize(struct nhlt *nhlt, uintptr_t acpi_addr)
gnvs->nhla = (uintptr_t)acpi_addr;
gnvs->nhll = nhlt_current_size(nhlt);
- return nhlt_serialize(nhlt, acpi_addr);
+ return nhlt_serialize_oem_overrides(nhlt, acpi_addr,
+ oem_id, oem_table_id);
}