summaryrefslogtreecommitdiff
path: root/src/mainboard/prodrive/hermes/smbios.c
blob: 02567d8777fa05054d7ef6df13e4155cc91d7a9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* SPDX-License-Identifier: GPL-2.0-only */

#include <smbios.h>
#include <types.h>

#include "variants/baseboard/include/eeprom.h"

const char *smbios_system_serial_number(void)
{
	const size_t offset = offsetof(struct eeprom_layout, system_serial_number);
	static char serial_no[HERMES_SERIAL_NUMBER_LENGTH] = { 0 };

	if (eeprom_read_buffer(serial_no, offset, sizeof(serial_no)) == 0)
		return serial_no;
	else
		return CONFIG_MAINBOARD_SERIAL_NUMBER;
}

const char *smbios_mainboard_serial_number(void)
{
	const size_t offset = offsetof(struct eeprom_layout, board_serial_number);
	static char serial_no[HERMES_SERIAL_NUMBER_LENGTH] = { 0 };

	if (eeprom_read_buffer(serial_no, offset, sizeof(serial_no)) == 0)
		return serial_no;
	else
		return CONFIG_MAINBOARD_SERIAL_NUMBER;
}