aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLevi Yun2024-07-10 14:53:20 +0100
committerTom Rini2024-07-18 07:40:30 -0600
commit84ab75fb56337a7c186044850d3f6555bc644df1 (patch)
tree66bad5f6339ae45f9dc65ea3388f766ebc0bc789 /include
parent2f1821feb65939e308d4ab4bd42b97cf097d4cdf (diff)
bloblist: fix bloblist convention check.
According to recently firmware handsoff spec [1]'s "Register usage at handoff boundary", Transfer List's signature value was changed from 0x40_b10b (3 bytes) to 4a0f_b10b (4 bytes). As updating of TL's signature, register value of x1/r1 should be: In aarch32's r1 value should be R1[23:0]: set to the TL signature (4a0f_b10b -> masked range value: 0f_b10b) R1[31:24]: version of the register convention == 1 and In aarch64's x1 value should be X1[31:0]: set to the TL signature (4a0f_b10b) X1[39:32]: version of the register convention == 1 X1[63:40]: MBZ (See the [2] and [3]). This patch fix problems: 1. breaking X1 value with updated specification in aarch64 - change of length of signature field. 2. previous error value set in R1 in arm32. - length of signature should be 24, but it uses 32bit signature. This patch is a breaking change. It works only TF-A is updated. Link: https://github.com/FirmwareHandoff/firmware_handoff [1] Link: https://github.com/FirmwareHandoff/firmware_handoff/issues/32 [2] Link: https://github.com/FirmwareHandoff/firmware_handoff/commit/5aa7aa1d3a1db75213e458d392b751f0707de027 [3] Signed-off-by: Levi Yun <yeoreum.yun@arm.com> Reviewed-by: Raymond Mao <raymond.mao@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/bloblist.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/include/bloblist.h b/include/bloblist.h
index 7fbdd622bcf..b0706b5637d 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -78,12 +78,10 @@ enum {
BLOBLIST_VERSION = 1,
BLOBLIST_MAGIC = 0x4a0fb10b,
- /*
- * FIXME:
- * Register convention version should be placed into a higher byte
- * https://github.com/FirmwareHandoff/firmware_handoff/issues/32
- */
- BLOBLIST_REGCONV_VER = 1 << 24,
+ BLOBLIST_REGCONV_SHIFT_64 = 32,
+ BLOBLIST_REGCONV_SHIFT_32 = 24,
+ BLOBLIST_REGCONV_MASK = 0xff,
+ BLOBLIST_REGCONV_VER = 1,
BLOBLIST_BLOB_ALIGN_LOG2 = 3,
BLOBLIST_BLOB_ALIGN = 1 << BLOBLIST_BLOB_ALIGN_LOG2,