11 #include "option_table.h"
14 #pragma GCC diagnostic ignored "-Wtype-limits"
27 unsigned long byte, byte_bit;
42 ret[0] = uchar & ((1 <<
length) - 1);
67 "Options are disabled\n");
118 unsigned int value = 0;
126 unsigned long byte, byte_bit;
128 unsigned char uchar,
mask;
129 unsigned int chksum_update_needed = 0;
140 uchar |= (ret[0] << byte_bit);
142 if (
byte >= LB_CKS_RANGE_START &&
byte <= LB_CKS_RANGE_END)
143 chksum_update_needed = 1;
145 if (byte_bit ||
length % 8)
150 if (
byte >= LB_CKS_RANGE_START &&
151 byte <= LB_CKS_RANGE_END)
152 chksum_update_needed = 1;
156 if (chksum_update_needed) {
201 const unsigned char *cmos_default;
202 const bool cmos_need_reset =
207 if (
CONFIG(TPM_MEASURED_BOOT) || cmos_need_reset) {
210 if (!cmos_default || !cmos_need_reset)
cb_err
coreboot error codes
@ CB_ERR_ARG
Invalid argument.
@ CB_CMOS_OPTION_NOT_FOUND
Option string not found.
@ CB_SUCCESS
Call completed successfully.
@ CB_CMOS_CHECKSUM_INVALID
CMOS checksum is invalid.
@ CB_CMOS_ACCESS_ERROR
CMOS access error.
@ CB_CMOS_LAYOUT_NOT_FOUND
Layout file not found.
static void * cbfs_ro_map(const char *name, size_t *size_out)
static void * cbfs_map(const char *name, size_t *size_out)
#define CMOS_MAX_NAME_LENGTH
#define printk(level,...)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
void cmos_set_checksum(int range_start, int range_end, int cks_loc)
int cmos_checksum_valid(int range_start, int range_end, int cks_loc)
static void cmos_restore_rtc(u8 control_state)
static void cmos_write(unsigned char val, unsigned char addr)
static unsigned char cmos_read(unsigned char addr)
static u8 cmos_disable_rtc(void)
static void cmos_write_inner(unsigned char val, unsigned char addr)
int cmos_lb_cks_valid(void)
enum cb_err set_uint_option(const char *name, unsigned int value)
static enum cb_err set_cmos_value(unsigned long bit, unsigned long length, void *vret)
static enum cb_err get_cmos_value(unsigned long bit, unsigned long length, void *vret)
static struct cmos_entries * find_cmos_entry(struct cmos_option_table *ct, const char *name)
unsigned int get_uint_option(const char *name, const unsigned int fallback)
static struct cmos_option_table * get_cmos_layout(void)
static enum cb_err cmos_set_uint_option(const char *name, unsigned int *value)
static enum cb_err cmos_get_uint_option(unsigned int *dest, const char *name)
size_t strnlen(const char *src, size_t max)
int memcmp(const void *s1, const void *s2, size_t n)
uint8_t name[CMOS_MAX_NAME_LENGTH]