Commit 8fa2f24d authored by Andre Przywara's avatar Andre Przywara Committed by Icenowy Zheng
Browse files

FEL: introduce semantic versioning for SPL header

Every addition of a new feature to the SPL header currently requires us
to update the FEL tool, to teach it about the new supported maximum
value. Many times the FEL tool doesn't really care, but complains
anyway - and refuses to load.
Let's introduce semantic versioning [1] for this field, where backwards
compatible additions just increase a minor number, but incompatible
changes require bumping the major version.
We have 8 bits for the SPL header version, let's split this to have 3 bits
for the major and 5 bit for the minor version number.

[1] https://semver.org

Signed-off-by: default avatarAndre Przywara <osp@andrep.de>
Signed-off-by: default avatarIcenowy Zheng <icenowy@aosc.io>
parent 6d598a0e
...@@ -947,8 +947,13 @@ void aw_fel_process_spl_and_uboot(feldev_handle *dev, const char *filename) ...@@ -947,8 +947,13 @@ void aw_fel_process_spl_and_uboot(feldev_handle *dev, const char *filename)
* the result is "true". * the result is "true".
*/ */
#define SPL_SIGNATURE "SPL" /* marks "sunxi" header */ #define SPL_SIGNATURE "SPL" /* marks "sunxi" header */
#define SPL_MIN_VERSION 1 /* minimum required version */ #define SPL_MAJOR_BITS 3
#define SPL_MAX_VERSION 2 /* maximum supported version */ #define SPL_MINOR_BITS 5
#define SPL_VERSION(maj, min) \
((((maj) & ((1U << SPL_MAJOR_BITS) - 1)) << SPL_MINOR_BITS) | \
((min) & ((1U << SPL_MINOR_BITS) - 1)))
#define SPL_MIN_VERSION SPL_VERSION(0, 1)
#define SPL_MAX_VERSION SPL_VERSION(0, 31)
bool have_sunxi_spl(feldev_handle *dev, uint32_t spl_addr) bool have_sunxi_spl(feldev_handle *dev, uint32_t spl_addr)
{ {
uint8_t spl_signature[4]; uint8_t spl_signature[4];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment