git: 0c6282e842b3 - main - bhyve: add SMBIOS Baseboard Information
Chuck Tuffli
chuck at FreeBSD.org
Mon Apr 12 15:12:47 UTC 2021
The branch main has been updated by chuck:
URL: https://cgit.FreeBSD.org/src/commit/?id=0c6282e842b33a1c86e01b27fc40af9c76fd404e
commit 0c6282e842b33a1c86e01b27fc40af9c76fd404e
Author: Chuck Tuffli <chuck at FreeBSD.org>
AuthorDate: 2021-04-12 15:09:52 +0000
Commit: Chuck Tuffli <chuck at FreeBSD.org>
CommitDate: 2021-04-12 15:09:52 +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.
Reviewed by: rgrimes, bcran, grehan
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D29657
---
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 716fb48178c1..ca68f8d95363 100644
--- a/usr.sbin/bhyve/smbiostbl.c
+++ b/usr.sbin/bhyve/smbiostbl.c
@@ -61,6 +61,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
@@ -157,10 +158,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 */
@@ -360,6 +382,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 */
@@ -518,6 +564,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 },
More information about the dev-commits-src-main
mailing list