coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smbios.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <smbios.h>
4
#include <
string.h
>
5
#include <types.h>
6
7
#include "
eeprom.h
"
8
9
const
char
*
smbios_system_serial_number
(
void
)
10
{
11
const
size_t
offset
=
offsetof
(
struct
eeprom_layout
, system_serial_number);
12
static
char
serial_no[
HERMES_SERIAL_NUMBER_LENGTH
] = { 0 };
13
14
if
(
eeprom_read_buffer
(serial_no,
offset
,
sizeof
(serial_no)) == 0)
15
return
serial_no;
16
else
17
return
CONFIG_MAINBOARD_SERIAL_NUMBER;
18
}
19
20
const
char
*
smbios_mainboard_serial_number
(
void
)
21
{
22
const
size_t
offset
=
offsetof
(
struct
eeprom_layout
, board_serial_number);
23
static
char
serial_no[
HERMES_SERIAL_NUMBER_LENGTH
] = { 0 };
24
25
if
(
eeprom_read_buffer
(serial_no,
offset
,
sizeof
(serial_no)) == 0)
26
return
serial_no;
27
else
28
return
CONFIG_MAINBOARD_SERIAL_NUMBER;
29
}
30
31
const
char
*
smbios_mainboard_version
(
void
)
32
{
33
static
char
version_str[8] = { 0 };
34
35
snprintf
(version_str,
sizeof
(version_str),
"HSI %u"
,
get_bmc_hsi
());
36
37
return
version_str;
38
}
offsetof
#define offsetof(TYPE, MEMBER)
Definition:
helpers.h:84
smbios_mainboard_serial_number
const char * smbios_mainboard_serial_number(void)
Definition:
smbios.c:89
smbios_mainboard_version
const char * smbios_mainboard_version(void)
Definition:
smbios.c:65
smbios_system_serial_number
const char * smbios_system_serial_number(void)
Definition:
smbios.c:42
get_bmc_hsi
uint8_t get_bmc_hsi(void)
Definition:
eeprom.c:91
eeprom_read_buffer
bool eeprom_read_buffer(void *blob, size_t read_offset, size_t size)
Definition:
eeprom.c:103
offset
static size_t offset
Definition:
flashconsole.c:16
eeprom.h
HERMES_SERIAL_NUMBER_LENGTH
#define HERMES_SERIAL_NUMBER_LENGTH
Definition:
eeprom.h:70
string.h
eeprom_layout
Definition:
eeprom.h:73
snprintf
int snprintf(char *buf, size_t size, const char *fmt,...)
Note: This file is only for POSIX compatibility, and is meant to be chain-included via string....
Definition:
vsprintf.c:35
src
mainboard
prodrive
hermes
smbios.c
Generated by
1.9.1