diff options
author | Stephen Barber <smbarber@chromium.org> | 2015-03-11 15:48:08 -0700 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-04-22 08:46:37 +0200 |
commit | da262a6388dec9a943052823203a44e4e5b69e5f (patch) | |
tree | d9498aeab11f8c91b7004e5a431ffe1cd892244e | |
parent | 30773d23bbf3e032bd25f993b6541ffe20e5c0bf (diff) |
libpayload: cros: add serial number from coreboot table
Add serial number to lib_sysinfo from coreboot table.
BRANCH=none
BUG=chrome-os-partner:37813
TEST=ryu boots and /proc/device-tree/firmware/android is populated
with "compatible", "hardware", and "serialno" properties
Change-Id: I565b332a16b177c51907ffab7976ebd7a665aaaf
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 5535119f5d499b04bdc178c3040241d2872c4e13
Original-Change-Id: Ie2e222780d1577689a1cbf76ae8514c74fc469f4
Original-Signed-off-by: Stephen Barber <smbarber@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/259140
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/9881
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-rw-r--r-- | payloads/libpayload/include/coreboot_tables.h | 3 | ||||
-rw-r--r-- | payloads/libpayload/include/sysinfo.h | 1 | ||||
-rw-r--r-- | payloads/libpayload/libc/coreboot.c | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h index c46fbf9227..649cc2bb07 100644 --- a/payloads/libpayload/include/coreboot_tables.h +++ b/payloads/libpayload/include/coreboot_tables.h @@ -256,6 +256,9 @@ struct cb_spi_flash { uint32_t erase_cmd; }; +#define CB_TAG_SERIALNO 0x002a +#define CB_MAX_SERIALNO_LENGTH 32 + #define CB_TAG_CMOS_OPTION_TABLE 0x00c8 struct cb_cmos_option_table { u32 tag; diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h index ec8a31c6b6..de8b0feaea 100644 --- a/payloads/libpayload/include/sysinfo.h +++ b/payloads/libpayload/include/sysinfo.h @@ -91,6 +91,7 @@ struct sysinfo_t { struct cb_gpio gpios[SYSINFO_MAX_GPIOS]; int num_macs; struct mac_address macs[SYSINFO_MAX_MACS]; + char *serialno; #endif unsigned long *mbtable; /** Pointer to the multiboot table */ diff --git a/payloads/libpayload/libc/coreboot.c b/payloads/libpayload/libc/coreboot.c index 5999e86856..999465cb82 100644 --- a/payloads/libpayload/libc/coreboot.c +++ b/payloads/libpayload/libc/coreboot.c @@ -333,6 +333,9 @@ int cb_parse_header(void *addr, int len, struct sysinfo_t *info) case CB_TAG_MAC_ADDRS: cb_parse_mac_addresses(ptr, info); break; + case CB_TAG_SERIALNO: + cb_parse_string(ptr, &info->serialno); + break; #endif case CB_TAG_TIMESTAMPS: cb_parse_tstamp(ptr, info); |