git: 0e6ba563384f - stable/13 - bhyve: add SMBIOS Baseboard Information
Chuck Tuffli
chuck at FreeBSD.org
Mon Jun 28 16:02:19 UTC 2021
The branch stable/13 has been updated by chuck:
URL: https://cgit.FreeBSD.org/src/commit/?id=0e6ba563384fb41518648009b391b26d9a3824c0
commit 0e6ba563384fb41518648009b391b26d9a3824c0
Author: Chuck Tuffli <chuck at FreeBSD.org>
AuthorDate: 2021-04-12 15:09:52 +0000
Commit: Chuck Tuffli <chuck at 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 },
More information about the dev-commits-src-all
mailing list