summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Viguera <javier.viguera@digi.com>2024-04-04 17:11:09 +0200
committerFabio Estevam <festevam@gmail.com>2024-04-05 09:39:18 -0300
commitf6be41c83c17c09dddfb1e29a7ca391b5190634d (patch)
treebcb41c441e854b08cee8b3d13a301c73233f5635
parent23fe2def1edf0bcd4bd91371e09069bd778a0f77 (diff)
arm: imx: fix signature_block_hdr struct fields order
According to the documentation (for example NXP's AN13994 on encrypted boot on AHAB-enabled devices), the format of the signature block is: +--------------+--------------+--------------+-------------+ | Tag | Length - msb | Length - lsb | Version | +--------------+--------------+--------------+-------------+ | SRK Table offset | Certificate offset | +-----------------------------+----------------------------+ | Blob offset | Signature offset | +-----------------------------+----------------------------+ There is no runtime error in the current u-boot code. The only user of struct signature_block_hdr is the "get_container_size" function in the "arch/arm/mach-imx/image-container.c" file, and it's only using the very first fields of the struct (which are in the correct position) and thus there is no runtime failure. On the other hand, extending the code to get the data encryption key blob offset on the signature header gives a wrong value as the field is in the wrong order. Signed-off-by: Javier Viguera <javier.viguera@digi.com>
-rw-r--r--include/imx_container.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/imx_container.h b/include/imx_container.h
index 54cd684e35d..691c764b3e5 100644
--- a/include/imx_container.h
+++ b/include/imx_container.h
@@ -50,10 +50,10 @@ struct signature_block_hdr {
u8 length_lsb;
u8 length_msb;
u8 tag;
- u16 srk_table_offset;
u16 cert_offset;
- u16 blob_offset;
+ u16 srk_table_offset;
u16 signature_offset;
+ u16 blob_offset;
u32 reserved;
} __packed;