Hi Bohdan,
It is just that the IAS doc has not been updated.
This distinction was removed from the code when we deleted the MCUboot fork from the TF-M repository (the commit hash is: e5cadb28ca650c16976bcf095d7259bc9717dbcc).
Since then the TF-M code is aligned to the TLV header definitions of upstream MCUBoot.
Thank you for spotting this in the documentation. I’ll push a patch to update it.
Best regards,
David Vincze
From: TF-M <tf-m-bounces@lists.trustedfirmware.org>
On Behalf Of Bohdan Hunko via TF-M
Sent: Thursday, 7 October, 2021 15:46
To: tf-m@lists.trustedfirmware.org; Hennadiy.Kytsun@infineon.com
Subject: [TF-M] Boot shared data TLV length
Hi everyone,
IAS docs have this
note that says:
There is a size field tlv_len which has different definitions in the upstream MCUboot repository and in its TF-M forked version:
This difference is handled by TF-M code based on which bootloader is used along with TF-M runtime.
I was wondering where in code is this difference handled?
When calculating next TLV entry address
attest_core.c line 213 takes into account SHARED_DATA_ENTRY_HEADER_SIZE:
tlv_curr = (*tlv_ptr) + SHARED_DATA_ENTRY_HEADER_SIZE + tlv_entry.tlv_len;
So tlv_entry.tlv_len then must cover only length of entry (without header). This way corresponds to: “Upstream MCUboot: Covers only the length of data but not the header size”
I was not able to find anything related to “TF-M MCUboot: Covers the size of the entry header and the data together”.
Is this difference handled in TF-M fork of MCUboot or is it just outdated IAS doc?
Best regards,
Bohdan Hunko
Cypress Semiconductor Ukraine
Engineer
CSUKR CSS ICW SW FW
Mobile: +38099 50 19 714
Bohdan.Hunko@infineon.com