<p>Bora Guvendik has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/25464">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">coreboot_tables: pass the early_mmc_wake_hw status to payload<br><br>Pass the return value from early_mmc_wake_hw() to the payload.<br><br>Change-Id: Ia4c57d05433c3966118c3642913d7017958cce55<br>Signed-off-by: Bora Guvendik <bora.guvendik@intel.com><br>---<br>M payloads/libpayload/include/coreboot_tables.h<br>M payloads/libpayload/include/sysinfo.h<br>M payloads/libpayload/libc/coreboot.c<br>M src/commonlib/include/commonlib/coreboot_tables.h<br>M src/lib/coreboot_table.c<br>5 files changed, 44 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/64/25464/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h</span><br><span>index 6b6d1b4..aabd0a9 100644</span><br><span>--- a/payloads/libpayload/include/coreboot_tables.h</span><br><span>+++ b/payloads/libpayload/include/coreboot_tables.h</span><br><span>@@ -287,6 +287,13 @@</span><br><span> struct mac_address mac_addrs[0];</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define CB_TAG_MMC_INFO 0x0034</span><br><span style="color: hsl(120, 100%, 40%);">+struct cb_mmc_info {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t tag;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t size;</span><br><span style="color: hsl(120, 100%, 40%);">+ int early_cmd1_status;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #define CB_TAG_SERIALNO 0x002a</span><br><span> #define CB_MAX_SERIALNO_LENGTH 32</span><br><span> </span><br><span>diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h</span><br><span>index f221a15..75affd1 100644</span><br><span>--- a/payloads/libpayload/include/sysinfo.h</span><br><span>+++ b/payloads/libpayload/include/sysinfo.h</span><br><span>@@ -129,6 +129,7 @@</span><br><span> uint64_t mtc_start;</span><br><span> uint32_t mtc_size;</span><br><span> void *chromeos_vpd;</span><br><span style="color: hsl(120, 100%, 40%);">+ int mmc_early_wake_status;</span><br><span> };</span><br><span> </span><br><span> extern struct sysinfo_t lib_sysinfo;</span><br><span>diff --git a/payloads/libpayload/libc/coreboot.c b/payloads/libpayload/libc/coreboot.c</span><br><span>index d831b96..4d0c3ef 100644</span><br><span>--- a/payloads/libpayload/libc/coreboot.c</span><br><span>+++ b/payloads/libpayload/libc/coreboot.c</span><br><span>@@ -94,6 +94,13 @@</span><br><span> info->vbnv_size = vbnv->range_size;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void cb_parse_mmc_info(unsigned char *ptr, struct sysinfo_t *info)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct cb_mmc_info *mmc_info = (struct cb_mmc_info *)ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ info->mmc_early_wake_status = mmc_info->early_cmd1_status;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info)</span><br><span> {</span><br><span> int i;</span><br><span>@@ -399,6 +406,9 @@</span><br><span> case CB_TAG_SPI_FLASH:</span><br><span> cb_parse_spi_flash(ptr, info);</span><br><span> break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case CB_TAG_MMC_INFO:</span><br><span style="color: hsl(120, 100%, 40%);">+ cb_parse_mmc_info(ptr, info);</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span> case CB_TAG_MTC:</span><br><span> cb_parse_mtc(ptr, info);</span><br><span> break;</span><br><span>diff --git a/src/commonlib/include/commonlib/coreboot_tables.h b/src/commonlib/include/commonlib/coreboot_tables.h</span><br><span>index f411ff2..d6254b6 100644</span><br><span>--- a/src/commonlib/include/commonlib/coreboot_tables.h</span><br><span>+++ b/src/commonlib/include/commonlib/coreboot_tables.h</span><br><span>@@ -384,6 +384,13 @@</span><br><span> uint8_t pad[2]; /* Pad it to 8 bytes to keep it simple. */</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define LB_TAG_MMC_INFO 0x0034</span><br><span style="color: hsl(120, 100%, 40%);">+struct lb_mmc_info {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t tag;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t size;</span><br><span style="color: hsl(120, 100%, 40%);">+ int early_cmd1_status;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct lb_macs {</span><br><span> uint32_t tag;</span><br><span> uint32_t size;</span><br><span>diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c</span><br><span>index d03b771..8e05aa2 100644</span><br><span>--- a/src/lib/coreboot_table.c</span><br><span>+++ b/src/lib/coreboot_table.c</span><br><span>@@ -47,6 +47,7 @@</span><br><span> #include <cpu/x86/mtrr.h></span><br><span> #endif</span><br><span> #include <commonlib/helpers.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <intelblocks/early_mmc.h></span><br><span> </span><br><span> static struct lb_header *lb_table_init(unsigned long addr)</span><br><span> {</span><br><span>@@ -328,6 +329,21 @@</span><br><span> printk(BIOS_INFO, "SKU ID: %d\n", sid);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void lb_mmc_info(struct lb_header *header)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct lb_mmc_info *rec;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ rec = (struct lb_mmc_info *)lb_new_record(header);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ rec->tag = LB_TAG_MMC_INFO;</span><br><span style="color: hsl(120, 100%, 40%);">+ rec->size = sizeof(*rec);</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_SOC_INTEL_COMMON_EARLY_MMC_WAKE)</span><br><span style="color: hsl(120, 100%, 40%);">+ rec->early_cmd1_status = get_early_mmc_wake_status();</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span style="color: hsl(120, 100%, 40%);">+ rec->early_cmd1_status = -1; // pass it as an error</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void add_cbmem_pointers(struct lb_header *header)</span><br><span> {</span><br><span> /*</span><br><span>@@ -567,6 +583,9 @@</span><br><span> lb_ram_code(head);</span><br><span> lb_sku_id(head);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* Pass mmc early init status */</span><br><span style="color: hsl(120, 100%, 40%);">+ lb_mmc_info(head);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Add SPI flash description if available */</span><br><span> if (IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH))</span><br><span> lb_spi_flash(head);</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/25464">change 25464</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/25464"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ia4c57d05433c3966118c3642913d7017958cce55 </div>
<div style="display:none"> Gerrit-Change-Number: 25464 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Bora Guvendik <bora.guvendik@intel.com> </div>