Export board-status info.
Rather than hunting version across compile tree in board_status,
export it by coreboot itself.
Change-Id: I7f055e6fc077134001ebdb11df7381bbdc71a1fc
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/6747
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
diff --git a/Makefile.inc b/Makefile.inc
index 3b662ef..3719dd5 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -267,6 +267,14 @@
printf "#ifndef __BUILD_H\n" >> $(obj)/build.ht
printf "#define __BUILD_H\n\n" >> $(obj)/build.ht
printf "#define COREBOOT_VERSION \"$(KERNELVERSION)\"\n" >> $(obj)/build.ht
+ if git update-index -q --refresh >/dev/null; ! git diff-index --quiet HEAD; then \
+ printf "/* `LANG= TZ=UTC git log --date=local --pretty=format:%cd -1` UTC */\n" >> $(obj)/build.ht; \
+ printf "#define COREBOOT_VERSION_TIMESTAMP `LANG= git log --pretty=format:%ct -1`\n" >> $(obj)/build.ht; \
+ else \
+ printf "/* `LANG= TZ=UTC date` */\n" >> $(obj)/build.ht; \
+ printf "#define COREBOOT_VERSION_TIMESTAMP `LANG= date +%s`\n" >> $(obj)/build.ht; \
+ fi
+ printf "#define COREBOOT_ORIGIN_GIT_REVISION \"`LANG= git log remotes/origin/master -1 --format=format:%h`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_EXTRA_VERSION \"$(COREBOOT_EXTRA_VERSION)\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD \"`LANG= date`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD_YEAR_BCD 0x`LANG= date +"%y"`\n" >> $(obj)/build.ht
@@ -568,6 +576,8 @@
echo "# This image was built using git revision" `git rev-parse HEAD` > $(obj)/config.tmp ; \
sed -e '/^#/d' -e '/^ *$$/d' $(DOTCONFIG) >> $(obj)/config.tmp ; \
$(CBFSTOOL) $@.tmp add -f $(obj)/config.tmp -n config -t raw; rm -f $(obj)/config.tmp ; fi
+ @printf " REVISION build.h\n"
+ if [ -f $(obj)/build.h ]; then $(CBFSTOOL) $@.tmp add -f $(obj)/build.h -n revision -t raw; fi
endif
ifeq ($(CONFIG_VBOOT_VERIFY_FIRMWARE),y)
$(CBFSTOOL) $@.tmp add-stage -f $(VBOOT_STUB) -n $(CONFIG_CBFS_PREFIX)/vboot -c $(CBFS_COMPRESS_FLAG)
diff --git a/src/include/boot/coreboot_tables.h b/src/include/boot/coreboot_tables.h
index 19fc10c..3dc8fb6 100644
--- a/src/include/boot/coreboot_tables.h
+++ b/src/include/boot/coreboot_tables.h
@@ -140,6 +140,14 @@
uint8_t string[0];
};
+#define LB_TAG_VERSION_TIMESTAMP 0x0026
+struct lb_timestamp {
+ uint32_t tag;
+ uint32_t size;
+ uint32_t timestamp;
+};
+
+
/* 0xe is taken by v3 */
#define LB_TAG_SERIAL 0x000f
diff --git a/src/include/version.h b/src/include/version.h
index 250cb27..2a70842 100644
--- a/src/include/version.h
+++ b/src/include/version.h
@@ -9,6 +9,7 @@
extern const char coreboot_version[];
extern const char coreboot_extra_version[];
extern const char coreboot_build[];
+extern const unsigned int coreboot_version_timestamp;
/* When coreboot was compiled */
extern const char coreboot_compile_time[];
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index 8d8d970..12090dc 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -298,6 +298,15 @@
}
+static void lb_record_version_timestamp(struct lb_header *header)
+{
+ struct lb_timestamp *rec;
+ rec = (struct lb_timestamp *)lb_new_record(header);
+ rec->tag = LB_TAG_VERSION_TIMESTAMP;
+ rec->size = sizeof(*rec);
+ rec->timestamp = coreboot_version_timestamp;
+}
+
void __attribute__((weak)) lb_board(struct lb_header *header) { /* NOOP */ }
static struct lb_forward *lb_forward(struct lb_header *header, struct lb_header *next_header)
@@ -409,6 +418,7 @@
/* Record our various random string information */
lb_strings(head);
+ lb_record_version_timestamp(head);
/* Record our framebuffer */
lb_framebuffer(head);
diff --git a/src/lib/version.c b/src/lib/version.c
index eb5bbb8..19c14c6 100644
--- a/src/lib/version.c
+++ b/src/lib/version.c
@@ -35,6 +35,7 @@
const char coreboot_version[] = COREBOOT_VERSION;
const char coreboot_extra_version[] = COREBOOT_EXTRA_VERSION;
const char coreboot_build[] = COREBOOT_BUILD;
+const unsigned int coreboot_version_timestamp = COREBOOT_VERSION_TIMESTAMP;
const char coreboot_compile_time[] = COREBOOT_COMPILE_TIME;
const char coreboot_compile_by[] = COREBOOT_COMPILE_BY;