[PATCH 01/10] README: Add doumentation for version information

Simon Glass sjg at chromium.org
Thu Jan 7 05:21:53 CET 2021


There are quite a few available version options in U-Boot. Add a list of
the available Makefile variables and #defines, along with examples.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 README | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/README b/README
index 5ca11f25ee5..02ed0504455 100644
--- a/README
+++ b/README
@@ -1830,6 +1830,90 @@ The following options need to be configured:
 		Time to wait after FPGA configuration. The default is
 		200 ms.
 
+- Version identification:
+
+		U-Boot releases are named by year and patch level, for example
+		2020.10 means the release that came out in October 2020.
+		Release candidates are tagged every few weeks as the project
+		heads to the next release. So 2020.10-rc1 was the first
+		release candidate (RC), tagged soon after 2020.07 was released.
+
+		See here for full details:
+		  https://www.denx.de/wiki/view/U-Boot/ReleaseCycle
+
+		Within the build system, various Makefile variables are created,
+		making use of VERSION, PATCHLEVEL and EXTRAVERSION defined at
+		the top of 'Makefile'. There is also SUBLEVEL available for
+		downstream use. See also CONFIG_IDENT_STRING.
+
+		Some variables end up in a generated header file at
+		include/generated/version_autogenerated.h and can be accessed
+		from C source by including <version.h>
+
+		The following are available:
+
+		  UBOOTRELEASE (Makefile)
+			  Full release version as a string. If this is not a
+			  tagged release, it also includes the number of commits
+			  since the last tag as well as the the git hash. If
+			  there are uncommitted changes a '-dirty' suffix is
+			  added too.
+			  This is written by scripts/setlocalversion
+			  (maintained by Linux) to include/config/uboot.release
+			  and ends up in the UBOOTRELEASE Makefile variable.
+
+			  Examples:
+			     2020.10-rc3
+			     2021.01-rc5-00248-g60dd854f3ba-dirty
+
+		  PLAIN_VERSION (string #define)
+			  This is UBOOTRELEASE but available in C source.
+
+			  Examples:
+			     2020.10
+			     2021.01-rc5-00248-g60dd854f3ba-dirty
+
+		  UBOOTVERSION (Makefile)
+			  This holds just the first three components of
+			  UBOOTRELEASE (i.e. not the git hash, etc.)
+
+			  Examples:
+			     2020.10
+			     2021.01-rc5
+
+		  U_BOOT_VERSION (string #define)
+			  "U-Boot " followed by UBOOTRELEASE, for example:
+
+			     U-Boot 2020.10
+			     U-Boot 2021.01-rc5
+
+			  This is used as part of the banner string when U-Boot
+			  starts.
+
+		  U_BOOT_VERSION_STRING (string #define)
+			  U_BOOT_VERSION followed by build-time information
+			  and CONFIG_IDENT_STRING.
+
+			  Examples:
+			     U-Boot 2020.10 (Jan 06 2021 - 08:50:36 -0700)
+                             U-Boot 2021.01-rc5-00248-g60dd854f3ba-dirty (Jan 06 2021 - 08:50:36 -0700) for spring
+
+		Build date/time is also included. See the generated file
+		include/generated/timestamp_autogenerated.h for the available
+		fields. For example:
+
+		  #define U_BOOT_DATE "Jan 06 2021"     (US format only)
+		  #define U_BOOT_TIME "08:50:36"        (24-hour clock)
+		  #define U_BOOT_TZ "-0700"             (Time zone in hours)
+		  #define U_BOOT_DMI_DATE "01/06/2021"  (US format only)
+		  #define U_BOOT_BUILD_DATE 0x20210106  (hex yyyymmdd format)
+		  #define U_BOOT_EPOCH 1609948236
+
+		The Epoch is the number of seconds since midnight on 1/1/70.
+		Every time you build U-Boot this will update based on the time
+		on your build machine. See 'Reproducible builds' if you want to
+		avoid that.
+
 - Configuration Management:
 
 		CONFIG_IDENT_STRING
-- 
2.29.2.729.g45daf8777d-goog



More information about the U-Boot mailing list