summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2019-01-25 08:49:22 +0300
committerAtish Patra <atishp04@gmail.com>2019-01-25 22:05:49 +0300
commitbd98d772983df829b78b7ba16bc2dce559c93fbc (patch)
tree9990396809c7ba44dbdeb3de8db2080617ef464b
parentfba7e7c3eaef7f256063fea3cfda829ccf75eab4 (diff)
downloadopensbi-bd98d772983df829b78b7ba16bc2dce559c93fbc.tar.xz
include: Add separate header for OpenSBI version
Currently, the OpenSBI version is in top-level Makefile so firmware linking to OpenSBI static library have no-way to know OpenSBI version. This patch moves OpenSBI version from top-level Makefile to sbi/sbi_version.h header which provides OPENSBI_VERSION_MAJOR and OPENSBI_VERSION_MINOR defines. NOTE: the SBI spec (or SBI ecall interface) version is different. The SBI spec version is provided by functions sbi_ecall_version_major() and sbi_ecall_version_minor(). Signed-off-by: Anup Patel <anup.patel@wdc.com>
-rw-r--r--Makefile14
-rw-r--r--include/sbi/sbi_version.h16
-rw-r--r--lib/sbi_init.c3
3 files changed, 24 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index b362a56..ae90326 100644
--- a/Makefile
+++ b/Makefile
@@ -7,10 +7,6 @@
# Anup Patel <anup.patel@wdc.com>
#
-# Current Version
-MAJOR = 0
-MINOR = 1
-
# Select Make Options:
# o Do not use make's built-in rules and variables
# o Do not print "Entering directory ...";
@@ -54,6 +50,10 @@ export include_dir=$(CURDIR)/include
export lib_dir=$(CURDIR)/lib
export firmware_dir=$(CURDIR)/firmware
+# Find library version
+OPENSBI_VERSION_MAJOR=`grep MAJOR $(include_dir)/sbi/sbi_version.h | awk '{ print $$3 }'`
+OPENSBI_VERSION_MINOR=`grep MINOR $(include_dir)/sbi/sbi_version.h | awk '{ print $$3 }'`
+
# Setup list of objects.mk files
ifdef PLATFORM
platform-object-mks=$(shell if [ -d $(platform_dir) ]; then find $(platform_dir) -iname "objects.mk" | sort -r; fi)
@@ -92,9 +92,7 @@ deps-y+=$(platform-common-objs-path-y:.o=.dep)
deps-y+=$(lib-objs-path-y:.o=.dep)
deps-y+=$(firmware-objs-path-y:.o=.dep)
-GENFLAGS = -DOPENSBI_MAJOR=$(MAJOR)
-GENFLAGS += -DOPENSBI_MINOR=$(MINOR)
-GENFLAGS += -I$(platform_dir)/include
+GENFLAGS = -I$(platform_dir)/include
GENFLAGS += -I$(platform_common_dir)/include
GENFLAGS += -I$(include_dir)
GENFLAGS += $(platform-common-genflags-y)
@@ -274,7 +272,7 @@ $(build_dir)/docs/latex/refman.tex: $(build_dir)/docs/doxygen.cfg
$(CMD_PREFIX)doxygen $(build_dir)/docs/doxygen.cfg
$(build_dir)/docs/doxygen.cfg: $(src_dir)/docs/doxygen.cfg
$(CMD_PREFIX)mkdir -p $(build_dir)/docs
- $(CMD_PREFIX)cat docs/doxygen.cfg | sed -e "s#@@SRC_DIR@@#$(src_dir)#" -e "s#@@BUILD_DIR@@#$(build_dir)#" -e "s#@@OPENSBI_MAJOR@@#$(MAJOR)#" -e "s#@@OPENSBI_MINOR@@#$(MINOR)#" > $(build_dir)/docs/doxygen.cfg
+ $(CMD_PREFIX)cat docs/doxygen.cfg | sed -e "s#@@SRC_DIR@@#$(src_dir)#" -e "s#@@BUILD_DIR@@#$(build_dir)#" -e "s#@@OPENSBI_MAJOR@@#$(OPENSBI_VERSION_MAJOR)#" -e "s#@@OPENSBI_MINOR@@#$(OPENSBI_VERSION_MINOR)#" > $(build_dir)/docs/doxygen.cfg
.PHONY: docs
docs: $(build_dir)/docs/latex/refman.pdf
diff --git a/include/sbi/sbi_version.h b/include/sbi/sbi_version.h
new file mode 100644
index 0000000..74b65e0
--- /dev/null
+++ b/include/sbi/sbi_version.h
@@ -0,0 +1,16 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ * Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __SBI_VERSION_H__
+#define __SBI_VERSION_H__
+
+#define OPENSBI_VERSION_MAJOR 0
+#define OPENSBI_VERSION_MINOR 1
+
+#endif
diff --git a/lib/sbi_init.c b/lib/sbi_init.c
index a806b45..81feb56 100644
--- a/lib/sbi_init.c
+++ b/lib/sbi_init.c
@@ -16,6 +16,7 @@
#include <sbi/sbi_platform.h>
#include <sbi/sbi_system.h>
#include <sbi/sbi_timer.h>
+#include <sbi/sbi_version.h>
#define BANNER \
" ____ _____ ____ _____\n" \
@@ -63,7 +64,7 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid)
misa_string(str, sizeof(str));
sbi_printf("\nOpenSBI v%d.%d (%s %s)\n",
- OPENSBI_MAJOR, OPENSBI_MINOR,
+ OPENSBI_VERSION_MAJOR, OPENSBI_VERSION_MINOR,
__DATE__, __TIME__);
sbi_printf(BANNER);