coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ramstage.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
stdint.h
>
4
#include <
console/console.h
>
5
#include <
drivers/vpd/vpd.h
>
6
#include <smbios.h>
7
#include <soc/ramstage.h>
8
#include <
uuid.h
>
9
10
#include "
gpio.h
"
11
12
void
mainboard_silicon_init_params
(
FSP_SIL_UPD
*
params
)
13
{
14
/* Configure pads prior to SiliconInit() in case there's any
15
* dependencies during hardware initialization. */
16
gpio_configure_pads
(
gpio_table
,
ARRAY_SIZE
(
gpio_table
));
17
params
->CdClock = 3;
18
}
19
20
#define VPD_KEY_SERIAL "serial_number"
21
#define VPD_KEY_UUID "UUID"
22
#define VPD_SERIAL_LEN 17
23
24
const
char
*
smbios_system_serial_number
(
void
)
25
{
26
static
char
serial
[
VPD_SERIAL_LEN
];
27
28
if
(
vpd_gets
(
VPD_KEY_SERIAL
,
serial
,
VPD_SERIAL_LEN
,
VPD_RO
))
29
return
serial
;
30
31
printk
(
BIOS_ERR
,
"serial_number could not be read or invalid.\n"
);
32
return
""
;
33
}
34
35
void
smbios_system_set_uuid
(
u8
*uuid)
36
{
37
static
char
vpd_uuid_string[
UUID_STRLEN
+1];
38
39
if
(
vpd_gets
(
VPD_KEY_UUID
, vpd_uuid_string,
UUID_STRLEN
+1,
VPD_RO
))
40
if
(!
parse_uuid
(uuid, vpd_uuid_string))
41
return
;
42
43
memset
(uuid, 0,
UUID_LEN
);
44
printk
(
BIOS_ERR
,
"UUID could not be read or invalid.\n"
);
45
}
UUID_LEN
#define UUID_LEN
Definition:
acpigen.c:1276
memset
void * memset(void *dstpp, int c, size_t len)
Definition:
memset.c:12
params
static struct sdram_info params
Definition:
sdram_configs.c:83
ARRAY_SIZE
#define ARRAY_SIZE(a)
Definition:
helpers.h:12
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
mainboard_silicon_init_params
__weak void mainboard_silicon_init_params(SILICON_INIT_UPD *params)
Definition:
ramstage.c:162
vpd.h
VPD_RO
@ VPD_RO
Definition:
vpd.h:11
serial
unsigned int serial
Definition:
edid.c:52
BIOS_ERR
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
Definition:
loglevel.h:72
gpio_table
static const struct pad_config gpio_table[]
Definition:
gpio.h:24
VPD_KEY_SERIAL
#define VPD_KEY_SERIAL
Definition:
ramstage.c:20
smbios_system_set_uuid
void smbios_system_set_uuid(u8 *uuid)
Definition:
ramstage.c:35
VPD_KEY_UUID
#define VPD_KEY_UUID
Definition:
ramstage.c:21
smbios_system_serial_number
const char * smbios_system_serial_number(void)
Definition:
ramstage.c:24
VPD_SERIAL_LEN
#define VPD_SERIAL_LEN
Definition:
ramstage.c:22
gpio_configure_pads
void gpio_configure_pads(const struct soc_amd_gpio *gpio_list_ptr, size_t size)
program a particular set of GPIO
Definition:
gpio.c:307
FSP_SIL_UPD
#define FSP_SIL_UPD
Definition:
ramstage.h:12
gpio.h
stdint.h
u8
uint8_t u8
Definition:
stdint.h:45
uuid.h
UUID_STRLEN
#define UUID_STRLEN
Definition:
uuid.h:10
parse_uuid
int parse_uuid(uint8_t *uuid, const char *uuid_str)
Definition:
uuid.c:7
vpd_gets
char * vpd_gets(const char *key, char *buffer, int size, enum vpd_region region)
Definition:
vpd.c:229
src
mainboard
facebook
monolith
ramstage.c
Generated by
1.9.1