coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
board_id.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
boardid.h
>
4
#include <
ec/acpi/ec.h
>
5
#include <
ec/google/chromeec/ec.h
>
6
#include <types.h>
7
#include "
board_id.h
"
8
9
static
uint32_t
get_board_id_via_ext_ec
(
void
)
10
{
11
uint32_t
id
=
BOARD_ID_INIT
;
12
13
if
(
google_chromeec_get_board_version
(&
id
))
14
id
=
BOARD_ID_UNKNOWN
;
15
16
return
id;
17
}
18
19
/* Get Board ID via EC I/O port write/read */
20
int
get_board_id
(
void
)
21
{
22
MAYBE_STATIC_NONZERO
int
id
= -1;
23
24
if
(
id
< 0) {
25
if
(
CONFIG
(EC_GOOGLE_CHROMEEC)) {
26
id
=
get_board_id_via_ext_ec
();
27
}
else
{
28
if
(
send_ec_command
(
EC_FAB_ID_CMD
) == 0) {
29
id
=
recv_ec_data
() << 8;
30
id
|=
recv_ec_data
();
31
}
32
}
33
}
34
return
(
id
&
BOARD_ID_MASK
);
35
}
get_board_id
int get_board_id(void)
Definition:
board_id.c:20
get_board_id_via_ext_ec
static uint32_t get_board_id_via_ext_ec(void)
Definition:
board_id.c:9
EC_FAB_ID_CMD
#define EC_FAB_ID_CMD
Definition:
board_id.h:7
BOARD_ID_MASK
#define BOARD_ID_MASK
Definition:
board_id.h:9
boardid.h
BOARD_ID_INIT
#define BOARD_ID_INIT
Definition:
boardid.h:11
BOARD_ID_UNKNOWN
#define BOARD_ID_UNKNOWN
Definition:
boardid.h:10
CONFIG
@ CONFIG
Definition:
dsi_common.h:201
send_ec_command
int send_ec_command(u8 command)
Definition:
ec.c:13
recv_ec_data
u8 recv_ec_data(void)
Definition:
ec.c:65
ec.h
google_chromeec_get_board_version
int google_chromeec_get_board_version(uint32_t *version)
google_chromeec_get_board_version() - Get the board version
Definition:
ec.c:915
ec.h
MAYBE_STATIC_NONZERO
#define MAYBE_STATIC_NONZERO
Definition:
stddef.h:38
uint32_t
unsigned int uint32_t
Definition:
stdint.h:14
board_id.h
src
mainboard
intel
adlrvp
board_id.c
Generated by
1.9.1