Transfer List Checksum Correction and Impact on Bloblist
Raymond Mao
raymond.mao at linaro.org
Wed Oct 1 17:54:10 CEST 2025
Hi Harrison,
On Tue, 30 Sept 2025 at 06:54, Harrison Mutai <harrison.mutai at arm.com> wrote:
>
> On 29/09/2025 19:11, Tom Rini wrote:
> > On Fri, Sep 26, 2025 at 05:09:53PM +0100, Harrison Mutai wrote:
> >> Hi all,
> >>
> >> We recently applied changes to the transfer list library [1] to correct the
> >> checksum calculation. Previously, we used a simple byte-sum approach.
> >> However, we later realized this contradicts the Firmware Handoff
> >> specification, which states:
> >>
> >>> The checksum is set to a value such that the XOR over every byte in the
> >>> {tl_base_pa, …, tl_base_pa + used_size - 1} address range is equal to 0.
> >>
> >> This discrepancy creates problems when interoperating with Bloblist.
> >> Should Bloblist’s checksum calculation be updated to follow the same
> >> XOR-based method?
> >>
> >> [1]
> >> https://review.trustedfirmware.org/c/shared/transfer-list-library/+/42548
> >
> > Erm, since this has been out in the wild so to speak, we can't just
> > change the algorithm without bumping some cardinal. Or are there yet
> > other implementations that were doing what the spec said?
> >
>
> Raymond; Thanks for setting up the handoff tests. The next release for
> TF-A is planned for mid-November [1].
>
> We’ve run into an issue where TF-A requires specific tags from the
> transfer list library, but we can’t consume them due to the recent
> checksum changes.
>
> Tom; As it stands, ours is the only implementation currently using the
> updated checksum algorithm. There are two other consumers - OP-TEE and
> EDK2. OP-TEE already has a patch in upstream review to move to the new
> algorithm [2].
>
There is a question: How did you pass the OP-TEE CI test without U-Boot changes?
There is a CI check QEMUv8_check2 in OP-TEE that builds with Firmware
Handoff enabled, but the manifest is pointing to U-Boot v2025.07-rc1.
So I think unless you have merged the updated checksum to U-Boot and
updated the OP-TEE manifest with that commit-id, otherwise
QEMUv8_check2 will still fail due to the mismatching checksum
algorithm.
Regards,
Raymond
> I’ve also reached out to the author of the EDK2 implementation to make
> them aware of the change.
>
> [1]
> https://trustedfirmware-a.readthedocs.io/en/latest/about/release-information.html
> [2] https://github.com/OP-TEE/optee_os/pull/7531
>
More information about the U-Boot
mailing list