]> git.dujemihanovic.xyz Git - u-boot.git/commit
bloblist: fix bloblist convention check.
authorLevi Yun <yeoreum.yun@arm.com>
Wed, 10 Jul 2024 13:53:20 +0000 (14:53 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 18 Jul 2024 13:40:30 +0000 (07:40 -0600)
commit84ab75fb56337a7c186044850d3f6555bc644df1
tree66bad5f6339ae45f9dc65ea3388f766ebc0bc789
parent2f1821feb65939e308d4ab4bd42b97cf097d4cdf
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
Link: https://github.com/FirmwareHandoff/firmware_handoff/issues/32
Link: https://github.com/FirmwareHandoff/firmware_handoff/commit/5aa7aa1d3a1db75213e458d392b751f0707de027
Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/bloblist.c
include/bloblist.h