sunxi: Extend SPL header versioning

On Allwinner SoCs we use some free bytes at the beginning of the SPL image
to store various information. We have a version byte to allow updates,
but changing this always requires all tools to be updated as well.

Introduce the concept of semantic versioning [1] to the SPL header:
The major part of the version number only changes on incompatible
updates, a minor number bump indicates backward compatibility.
This patch just documents the major/minor split, adds some comments
to the header file and uses the versioning information for the existing
users.

[1] https://semver.org

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Acked-by: Jagan Teki <jagan@openedev.com>
This commit is contained in:
Andre Przywara
2018-10-25 17:23:03 +08:00
committed by Jagan Teki
parent c6c2c85e4b
commit 55d481d201
2 changed files with 16 additions and 7 deletions

View File

@@ -667,9 +667,9 @@ static void parse_spl_header(const uint32_t spl_addr)
return; /* signature mismatch, no usable header */
uint8_t spl_header_version = spl->spl_signature[3];
if (spl_header_version != SPL_HEADER_VERSION) {
if (spl_header_version < SPL_ENV_HEADER_VERSION) {
printf("sunxi SPL version mismatch: expected %u, got %u\n",
SPL_HEADER_VERSION, spl_header_version);
SPL_ENV_HEADER_VERSION, spl_header_version);
return;
}
if (!spl->fel_script_address)