| .. SPDX-License-Identifier: GPL-2.0+ |
| .. Copyright (c) 2013 The Chromium OS Authors. |
| |
| Version information |
| =================== |
| |
| 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 :doc:`release_cycle` for full details. |
| |
| 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_NUM (integer #define) |
| Release year, e.g. 2021 for release 2021.01. Note |
| this is an integer, not a string. |
| |
| U_BOOT_VERSION_NUM_PATCH (integer #define) |
| Patch number, e.g. 1 for release 2020.01. Note |
| this is an integer, not a string. |
| |
| Human readable U-Boot version string is available in header file |
| include/version_string.h in following variable: |
| |
| version_string (const char[]) |
| 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_EPOCH 1609948236 |
| |
| The Epoch is the number of seconds since midnight on 1/1/70. You can convert |
| this to a time with:: |
| |
| $ date -u -d @1609948236 |
| Wed 06 Jan 2021 03:50:36 PM UTC |
| $ date -d 'Wed 06 Jan 2021 03:50:36 PM UTC' +%s |
| 1609948236 |
| |
| 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. |