[coreboot-gerrit] Change in ...coreboot[master]: arch/x86/smbios: Add SMBIOS type for QCA6174A

Amanda Hwang (Code Review) gerrit at coreboot.org
Tue Dec 11 10:53:05 CET 2018


Amanda Hwang has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/30150


Change subject: arch/x86/smbios: Add SMBIOS type for QCA6174A
......................................................................

arch/x86/smbios: Add SMBIOS type for QCA6174A

BUG=b:118656705
TEST=dmidecode -t 0xf8 and make sure that the correct SMBIOS type
     information gets returned.

Change-Id: I0d1f84898bb4130b55508cc29fa2412ec8bad658
Signed-off-by: Amanda Huang <amanda_hwang at compal.corp-partner.google.com>
---
M src/arch/x86/smbios.c
M src/include/smbios.h
M src/mainboard/google/kahlee/variants/baseboard/mainboard.c
3 files changed, 75 insertions(+), 1 deletion(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/30150/1

diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index c0545ce..5e7e696 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -450,6 +450,21 @@
 	return "";
 }
 
+const char *__weak smbios_bdf_extension(void)
+{
+	return "";
+}
+
+u8 __weak smbios_country_flag(void)
+{
+	return 0;
+}
+
+u16 __weak smbios_country_value(void)
+{
+	return 0;
+}
+
 #ifdef CONFIG_MAINBOARD_FAMILY
 const char *smbios_mainboard_family(void)
 {
@@ -457,6 +472,28 @@
 }
 #endif /* CONFIG_MAINBOARD_FAMILY */
 
+static int smbios_write_typef8(unsigned long *current, int handle)
+{
+	struct smbios_typef8 *t = (struct smbios_typef8 *)*current;
+	int len = sizeof(struct smbios_typef8);
+	
+	printk(BIOS_INFO, "Create SMBIOS type 0xf8\n");
+
+	memset(t, 0, sizeof(struct smbios_typef8));
+	t->type = SMBIOS_QCT_WLAN_CONFIGURATION;
+	t->handle = handle;
+	t->length = len - 2;
+	t->disable_11ac = 0;
+	t->country_code_flag = smbios_country_flag();
+	t->country_code_value = smbios_country_value();
+	t->board_file_extension = smbios_add_string(t->eos, smbios_bdf_extension());
+	
+	len = t->length + smbios_string_table_len(t->eos);
+	*current += len;
+	return len;
+}
+
+
 static int smbios_write_type1(unsigned long *current, int handle)
 {
 	struct smbios_type1 *t = (struct smbios_type1 *)*current;
@@ -736,6 +773,9 @@
 	current = ALIGN(current, 16);
 
 	tables = current;
+	update_max(len, max_struct_size, smbios_write_typef8(&current,
+		handle++));
+		
 	update_max(len, max_struct_size, smbios_write_type0(&current,
 		handle++));
 	update_max(len, max_struct_size, smbios_write_type1(&current,
diff --git a/src/include/smbios.h b/src/include/smbios.h
index 14badbc..4614897 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -52,6 +52,10 @@
 const char *smbios_mainboard_family(void);
 #endif
 
+const char *smbios_bdf_extension(void);
+u8 smbios_country_flag(void);
+u16 smbios_country_value(void);
+
 #define BIOS_CHARACTERISTICS_PCI_SUPPORTED  (1 << 7)
 #define BIOS_CHARACTERISTICS_PC_CARD  (1 << 8)
 #define BIOS_CHARACTERISTICS_PNP  (1 << 9)
@@ -199,7 +203,8 @@
 	SMBIOS_SYSTEM_BOOT_INFORMATION = 32,
 	SMBIOS_IPMI_DEVICE_INFORMATION = 38,
 	SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION = 41,
-	SMBIOS_END_OF_TABLE = 127,
+	SMBIOS_QCT_WLAN_CONFIGURATION = 0xf8,
+	SMBIOS_END_OF_TABLE = 127,	
 } smbios_struct_type_t;
 
 struct smbios_entry {
@@ -521,6 +526,17 @@
 	u8 eos[2];
 } __packed;
 
+struct smbios_typef8 {
+	u8 type;
+	u8 length;
+	u16 handle;
+	u8 disable_11ac;
+	u8 country_code_flag;
+	u16 country_code_value;
+	u8 board_file_extension;
+	u8 eos[2];
+} __packed;
+
 void smbios_fill_dimm_manufacturer_from_id(uint16_t mod_id,
 	struct smbios_type17 *t);
 
diff --git a/src/mainboard/google/kahlee/variants/baseboard/mainboard.c b/src/mainboard/google/kahlee/variants/baseboard/mainboard.c
index d1a3492..7f2ff54 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/mainboard.c
+++ b/src/mainboard/google/kahlee/variants/baseboard/mainboard.c
@@ -97,3 +97,21 @@
 
 	return manuf;
 }
+
+const char *smbios_bdf_extension(void)
+{    
+        return "BDF_GO_LIARA";
+}
+
+u8 smbios_country_flag(void)
+{
+        return 0x00;
+}
+
+u16 smbios_country_value(void)
+{
+        return 0x00;
+}
+
+
+

-- 
To view, visit https://review.coreboot.org/c/coreboot/+/30150
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I0d1f84898bb4130b55508cc29fa2412ec8bad658
Gerrit-Change-Number: 30150
Gerrit-PatchSet: 1
Gerrit-Owner: Amanda Hwang <amanda_hwang at compal.corp-partner.google.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20181211/6eeba845/attachment-0001.html>


More information about the coreboot-gerrit mailing list