<p>Amanda Hwang has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/c/coreboot/+/30150">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">arch/x86/smbios: Add SMBIOS type for QCA6174A<br><br>BUG=b:118656705<br>TEST=dmidecode -t 0xf8 and make sure that the correct SMBIOS type<br>     information gets returned.<br><br>Change-Id: I0d1f84898bb4130b55508cc29fa2412ec8bad658<br>Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com><br>---<br>M src/arch/x86/smbios.c<br>M src/include/smbios.h<br>M src/mainboard/google/kahlee/variants/baseboard/mainboard.c<br>3 files changed, 75 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/30150/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c</span><br><span>index c0545ce..5e7e696 100644</span><br><span>--- a/src/arch/x86/smbios.c</span><br><span>+++ b/src/arch/x86/smbios.c</span><br><span>@@ -450,6 +450,21 @@</span><br><span>        return "";</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+const char *__weak smbios_bdf_extension(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       return "";</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+u8 __weak smbios_country_flag(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+u16 __weak smbios_country_value(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #ifdef CONFIG_MAINBOARD_FAMILY</span><br><span> const char *smbios_mainboard_family(void)</span><br><span> {</span><br><span>@@ -457,6 +472,28 @@</span><br><span> }</span><br><span> #endif /* CONFIG_MAINBOARD_FAMILY */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static int smbios_write_typef8(unsigned long *current, int handle)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     struct smbios_typef8 *t = (struct smbios_typef8 *)*current;</span><br><span style="color: hsl(120, 100%, 40%);">+   int len = sizeof(struct smbios_typef8);</span><br><span style="color: hsl(120, 100%, 40%);">+       </span><br><span style="color: hsl(120, 100%, 40%);">+      printk(BIOS_INFO, "Create SMBIOS type 0xf8\n");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   memset(t, 0, sizeof(struct smbios_typef8));</span><br><span style="color: hsl(120, 100%, 40%);">+   t->type = SMBIOS_QCT_WLAN_CONFIGURATION;</span><br><span style="color: hsl(120, 100%, 40%);">+   t->handle = handle;</span><br><span style="color: hsl(120, 100%, 40%);">+        t->length = len - 2;</span><br><span style="color: hsl(120, 100%, 40%);">+       t->disable_11ac = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       t->country_code_flag = smbios_country_flag();</span><br><span style="color: hsl(120, 100%, 40%);">+      t->country_code_value = smbios_country_value();</span><br><span style="color: hsl(120, 100%, 40%);">+    t->board_file_extension = smbios_add_string(t->eos, smbios_bdf_extension());</span><br><span style="color: hsl(120, 100%, 40%);">+    </span><br><span style="color: hsl(120, 100%, 40%);">+      len = t->length + smbios_string_table_len(t->eos);</span><br><span style="color: hsl(120, 100%, 40%);">+      *current += len;</span><br><span style="color: hsl(120, 100%, 40%);">+      return len;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static int smbios_write_type1(unsigned long *current, int handle)</span><br><span> {</span><br><span>         struct smbios_type1 *t = (struct smbios_type1 *)*current;</span><br><span>@@ -736,6 +773,9 @@</span><br><span>      current = ALIGN(current, 16);</span><br><span> </span><br><span>    tables = current;</span><br><span style="color: hsl(120, 100%, 40%);">+     update_max(len, max_struct_size, smbios_write_typef8(&current,</span><br><span style="color: hsl(120, 100%, 40%);">+            handle++));</span><br><span style="color: hsl(120, 100%, 40%);">+           </span><br><span>     update_max(len, max_struct_size, smbios_write_type0(&current,</span><br><span>            handle++));</span><br><span>  update_max(len, max_struct_size, smbios_write_type1(&current,</span><br><span>diff --git a/src/include/smbios.h b/src/include/smbios.h</span><br><span>index 14badbc..4614897 100644</span><br><span>--- a/src/include/smbios.h</span><br><span>+++ b/src/include/smbios.h</span><br><span>@@ -52,6 +52,10 @@</span><br><span> const char *smbios_mainboard_family(void);</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+const char *smbios_bdf_extension(void);</span><br><span style="color: hsl(120, 100%, 40%);">+u8 smbios_country_flag(void);</span><br><span style="color: hsl(120, 100%, 40%);">+u16 smbios_country_value(void);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #define BIOS_CHARACTERISTICS_PCI_SUPPORTED  (1 << 7)</span><br><span> #define BIOS_CHARACTERISTICS_PC_CARD  (1 << 8)</span><br><span> #define BIOS_CHARACTERISTICS_PNP  (1 << 9)</span><br><span>@@ -199,7 +203,8 @@</span><br><span>   SMBIOS_SYSTEM_BOOT_INFORMATION = 32,</span><br><span>         SMBIOS_IPMI_DEVICE_INFORMATION = 38,</span><br><span>         SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION = 41,</span><br><span style="color: hsl(0, 100%, 40%);">-       SMBIOS_END_OF_TABLE = 127,</span><br><span style="color: hsl(120, 100%, 40%);">+    SMBIOS_QCT_WLAN_CONFIGURATION = 0xf8,</span><br><span style="color: hsl(120, 100%, 40%);">+ SMBIOS_END_OF_TABLE = 127,      </span><br><span> } smbios_struct_type_t;</span><br><span> </span><br><span> struct smbios_entry {</span><br><span>@@ -521,6 +526,17 @@</span><br><span>      u8 eos[2];</span><br><span> } __packed;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct smbios_typef8 {</span><br><span style="color: hsl(120, 100%, 40%);">+ u8 type;</span><br><span style="color: hsl(120, 100%, 40%);">+      u8 length;</span><br><span style="color: hsl(120, 100%, 40%);">+    u16 handle;</span><br><span style="color: hsl(120, 100%, 40%);">+   u8 disable_11ac;</span><br><span style="color: hsl(120, 100%, 40%);">+      u8 country_code_flag;</span><br><span style="color: hsl(120, 100%, 40%);">+ u16 country_code_value;</span><br><span style="color: hsl(120, 100%, 40%);">+       u8 board_file_extension;</span><br><span style="color: hsl(120, 100%, 40%);">+      u8 eos[2];</span><br><span style="color: hsl(120, 100%, 40%);">+} __packed;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void smbios_fill_dimm_manufacturer_from_id(uint16_t mod_id,</span><br><span>     struct smbios_type17 *t);</span><br><span> </span><br><span>diff --git a/src/mainboard/google/kahlee/variants/baseboard/mainboard.c b/src/mainboard/google/kahlee/variants/baseboard/mainboard.c</span><br><span>index d1a3492..7f2ff54 100644</span><br><span>--- a/src/mainboard/google/kahlee/variants/baseboard/mainboard.c</span><br><span>+++ b/src/mainboard/google/kahlee/variants/baseboard/mainboard.c</span><br><span>@@ -97,3 +97,21 @@</span><br><span> </span><br><span>  return manuf;</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+const char *smbios_bdf_extension(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{    </span><br><span style="color: hsl(120, 100%, 40%);">+        return "BDF_GO_LIARA";</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+u8 smbios_country_flag(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        return 0x00;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+u16 smbios_country_value(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        return 0x00;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/30150">change 30150</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/c/coreboot/+/30150"/><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-Change-Id: I0d1f84898bb4130b55508cc29fa2412ec8bad658 </div>
<div style="display:none"> Gerrit-Change-Number: 30150 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Amanda Hwang <amanda_hwang@compal.corp-partner.google.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>