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 
13 {
14  /* Configure pads prior to SiliconInit() in case there's any
15  * dependencies during hardware initialization. */
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 
29  return serial;
30 
31  printk(BIOS_ERR, "serial_number could not be read or invalid.\n");
32  return "";
33 }
34 
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 }
#define UUID_LEN
Definition: acpigen.c:1276
void * memset(void *dstpp, int c, size_t len)
Definition: memset.c:12
static struct sdram_info params
Definition: sdram_configs.c:83
#define ARRAY_SIZE(a)
Definition: helpers.h:12
#define printk(level,...)
Definition: stdlib.h:16
__weak void mainboard_silicon_init_params(SILICON_INIT_UPD *params)
Definition: ramstage.c:162
@ VPD_RO
Definition: vpd.h:11
unsigned int serial
Definition: edid.c:52
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
Definition: loglevel.h:72
static const struct pad_config gpio_table[]
Definition: gpio.h:24
#define VPD_KEY_SERIAL
Definition: ramstage.c:20
void smbios_system_set_uuid(u8 *uuid)
Definition: ramstage.c:35
#define VPD_KEY_UUID
Definition: ramstage.c:21
const char * smbios_system_serial_number(void)
Definition: ramstage.c:24
#define VPD_SERIAL_LEN
Definition: ramstage.c:22
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
#define FSP_SIL_UPD
Definition: ramstage.h:12
uint8_t u8
Definition: stdint.h:45
#define UUID_STRLEN
Definition: uuid.h:10
int parse_uuid(uint8_t *uuid, const char *uuid_str)
Definition: uuid.c:7
char * vpd_gets(const char *key, char *buffer, int size, enum vpd_region region)
Definition: vpd.c:229