Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jun 2021 16:02:18 GMT
From:      Chuck Tuffli <chuck@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 0e6ba563384f - stable/13 - bhyve: add SMBIOS Baseboard Information
Message-ID:  <202106281602.15SG2IUi042067@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by chuck:

URL: https://cgit.FreeBSD.org/src/commit/?id=0e6ba563384fb41518648009b391b26d9a3824c0

commit 0e6ba563384fb41518648009b391b26d9a3824c0
Author:     Chuck Tuffli <chuck@FreeBSD.org>
AuthorDate: 2021-04-12 15:09:52 +0000
Commit:     Chuck Tuffli <chuck@FreeBSD.org>
CommitDate: 2021-06-28 15:48:26 +0000

    bhyve: add SMBIOS Baseboard Information
    
    Add the System Management BIOS Baseboard (or Module) Information
    a.k.a. Type 2 structure to the SMBIOS emulation.
    
    (cherry picked from commit 0c6282e842b33a1c86e01b27fc40af9c76fd404e)
---
 usr.sbin/bhyve/smbiostbl.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/usr.sbin/bhyve/smbiostbl.c b/usr.sbin/bhyve/smbiostbl.c
index d9f8a649c710..24ebf2838371 100644
--- a/usr.sbin/bhyve/smbiostbl.c
+++ b/usr.sbin/bhyve/smbiostbl.c
@@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$");
 
 #define	SMBIOS_TYPE_BIOS	0
 #define	SMBIOS_TYPE_SYSTEM	1
+#define	SMBIOS_TYPE_BOARD	2
 #define	SMBIOS_TYPE_CHASSIS	3
 #define	SMBIOS_TYPE_PROCESSOR	4
 #define	SMBIOS_TYPE_MEMARRAY	16
@@ -156,10 +157,31 @@ struct smbios_table_type1 {
 	uint8_t			family;		/* family name string */
 } __packed;
 
+/*
+ * Baseboard (or Module) Information
+ */
+#define SMBIOS_BRF_HOSTING	0x1
+#define SMBIOS_BRT_MOTHERBOARD	0xa
+
+struct smbios_table_type2 {
+	struct smbios_structure	header;
+	uint8_t			manufacturer;	/* manufacturer string */
+	uint8_t			product;	/* product name string */
+	uint8_t			version;	/* version string */
+	uint8_t			serial;		/* serial number string */
+	uint8_t			asset;		/* asset tag string */
+	uint8_t			fflags;		/* feature flags */
+	uint8_t			location;	/* location in chassis */
+	uint16_t		chandle;	/* chassis handle */
+	uint8_t			type;		/* board type */
+	uint8_t			n_objs;		/* number of contained object handles */
+} __packed;
+
 /*
  * System Enclosure or Chassis
  */
 #define	SMBIOS_CHT_UNKNOWN	0x02	/* unknown */
+#define	SMBIOS_CHT_DESKTOP	0x03	/* desktop */
 
 #define	SMBIOS_CHST_SAFE	0x03	/* safe */
 
@@ -359,6 +381,30 @@ const char *smbios_type1_strings[] = {
 	NULL
 };
 
+struct smbios_table_type2 smbios_type2_template = {
+	{ SMBIOS_TYPE_BOARD, sizeof (struct smbios_table_type2), 0 },
+	1,			/* manufacturer string */
+	2,			/* product string */
+	3,			/* version string */
+	4,			/* serial number string */
+	5,			/* asset tag string */
+	SMBIOS_BRF_HOSTING,	/* feature flags */
+	6,			/* location string */
+	SMBIOS_CHT_DESKTOP,	/* chassis handle */
+	SMBIOS_BRT_MOTHERBOARD,	/* board type */
+	0
+};
+
+const char *smbios_type2_strings[] = {
+	"FreeBSD",		/* manufacturer string */
+	"BHYVE",		/* product name string */
+	"1.0",			/* version string */
+	"None",			/* serial number string */
+	"None",			/* asset tag string */
+	"None",			/* location string */
+	NULL
+};
+
 struct smbios_table_type3 smbios_type3_template = {
 	{ SMBIOS_TYPE_CHASSIS, sizeof (struct smbios_table_type3), 0 },
 	1,		/* manufacturer string */
@@ -517,6 +563,9 @@ static struct smbios_template_entry smbios_template[] = {
 	{ (struct smbios_structure *)&smbios_type1_template,
 	  smbios_type1_strings,
 	  smbios_type1_initializer },
+	{ (struct smbios_structure *)&smbios_type2_template,
+	  smbios_type2_strings,
+	  smbios_generic_initializer },
 	{ (struct smbios_structure *)&smbios_type3_template,
 	  smbios_type3_strings,
 	  smbios_generic_initializer },



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202106281602.15SG2IUi042067>