diff --git a/Makefile b/Makefile index 78c28c0..9784598 100644 --- a/Makefile +++ b/Makefile @@ -65,6 +65,7 @@ export firmware_dir=$(CURDIR)/firmware # Find library version OPENSBI_VERSION_MAJOR=`grep "define OPENSBI_VERSION_MAJOR" $(include_dir)/sbi/sbi_version.h | sed 's/.*MAJOR.*\([0-9][0-9]*\)/\1/'` OPENSBI_VERSION_MINOR=`grep "define OPENSBI_VERSION_MINOR" $(include_dir)/sbi/sbi_version.h | sed 's/.*MINOR.*\([0-9][0-9]*\)/\1/'` +OPENSBI_VERSION_GIT=$(shell if [ -d $(src_dir)/.git ]; then git describe; fi) # Setup compilation commands ifdef CROSS_COMPILE @@ -151,6 +152,9 @@ endif # Setup compilation commands flags GENFLAGS = -I$(platform_src_dir)/include GENFLAGS += -I$(include_dir) +ifneq ($(OPENSBI_VERSION_GIT),) +GENFLAGS += -DOPENSBI_VERSION_GIT="\"$(OPENSBI_VERSION_GIT)\"" +endif GENFLAGS += $(libsbiutils-genflags-y) GENFLAGS += $(platform-genflags-y) GENFLAGS += $(firmware-genflags-y) diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index 4f47a6c..4663a30 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -34,8 +34,13 @@ static void sbi_boot_prints(struct sbi_scratch *scratch, u32 hartid) const struct sbi_platform *plat = sbi_platform_ptr(scratch); misa_string(str, sizeof(str)); +#ifdef OPENSBI_VERSION_GIT + sbi_printf("\nOpenSBI %s (%s %s)\n", OPENSBI_VERSION_GIT, + __DATE__, __TIME__); +#else sbi_printf("\nOpenSBI v%d.%d (%s %s)\n", OPENSBI_VERSION_MAJOR, OPENSBI_VERSION_MINOR, __DATE__, __TIME__); +#endif sbi_printf(BANNER);