Hi,
Thank you very much for your feedback. I think I'll use the ToC serial number then.
Just one question: I see the non-zero check in TF-A code, but I don't see it mentioned in the TBBR specification.
ToC Identifier 32 This may be a 4 byte ASCII name to identify the table of content. If the the bytes are all 0, the ToC is invalid ToC Serial Number 32 The serial number of this ToC
Why is TF-A checking for serial_number != 0?
Regards, Daniele
On Thu, 2021-02-11 at 16:45 +0000, Manish Badarkhe wrote:
Hi Manish and Daniele I agree that we can use the serial_number flag in the code for build information as it is currently only checked against the non-zero value in the code. IMO, it is better to rename the serial_number flag to build_info(or something else meaningful name) to make its usage clear across the platform. Let me know your opinions. Thanks Manish Badarkhe From: Manish Pandey2 Manish.Pandey2@arm.com Date: Thursday, 11 February 2021 at 16:00 To: Daniele Alessandrelli daniele.alessandrelli@linux.intel.com, tf-a@lists.trustedfirmware.org tf-a@lists.trustedfirmware.org, Manish Badarkhe Manish.Badarkhe@arm.com Subject: Re: [TF-A] Getting BUILD_STRING from FIP file
Hi Daniele, TBBR specification, from where fip format was introduced, is not very clear about usage of serial number and it can be used in IMP DEFINED manner "ToC Serial Number - 32 - The serial number of this ToC". So, theoretically it's possible to use serial number for the purpose you described and it's a valid use of currently (un)used serial number. Currently, at boot time serial number is checked against a non-zero value, which certainly will hold true if you put a valid timstamp instead of "0x12345678". IMO you can go ahead and implement a mechanism to feed Build timestamp to be used as serial number. Thanks Manish P From: TF-A tf-a-bounces@lists.trustedfirmware.org on behalf of Manish Badarkhe via TF-A tf-a@lists.trustedfirmware.org Sent: 11 February 2021 11:39 To: Daniele Alessandrelli daniele.alessandrelli@linux.intel.com; tf-a@lists.trustedfirmware.org tf-a@lists.trustedfirmware.org Subject: Re: [TF-A] Getting BUILD_STRING from FIP file Hi Daniele Please see my replies inline. Thanks Manish Badarkhe From: Daniele Alessandrelli daniele.alessandrelli@linux.intel.com Date: Thursday, 11 February 2021 at 11:22 To: Manish Badarkhe Manish.Badarkhe@arm.com, tf-a@lists.trustedfirmware.org tf-a@lists.trustedfirmware.org Subject: Re: [TF-A] Getting BUILD_STRING from FIP file
Hi Manish,
Thank you very much for the information.
16 bits are not enough to store an epoch, but I'll see if I can encode some other unique build information into 16 bits.
Just a question, from your answer I assume that I shouldn't use the 'serial_number' field for what I want to do; so I wonder: what is that field meant to be used for?
'serial_number' field is non-zero number provided by the fip creation tool. It is hardcoded value i.e. TOC_HEADER_SERIAL_NUMBER=0x12345678 as of now. Specifically used during the validation of the TOC header in the code.
Regards, Daniele
On Thu, 2021-02-11 at 10:14 +0000, Manish Badarkhe wrote:
Hi Daniele You can use the ‘flag’ field to mention the platform-specific
data(in
your case, a build number). Usage of the ‘flag’ field(64 bit) in
the
toc_header are as below: Bits 0-31 -> reserved Bits 32-47 -> platform defined data Bits 48-63 -> reserved You can make use of the flag[32:47] to put build information. I am not sure if you can accommodate epoch (converted timestamp) into
this
field but, you can encode any data to fit into this 16bit flag
field
to identify the FIP build. You can use a build command: fiptool update/create --plat-toc-flags <platform defined data> <your fip bin path> to put the platform defined data in the FIP image. Thanks Manish Badarkhe From: TF-A tf-a-bounces@lists.trustedfirmware.org on behalf of Daniele Alessandrelli via TF-A tf-a@lists.trustedfirmware.org Date: Wednesday, 10 February 2021 at 17:04 To: tf-a@lists.trustedfirmware.org tf-a@lists.trustedfirmware.org Subject: [TF-A] Getting BUILD_STRING from FIP file
Hi,
Is there a way to get BUILD_STRING (or a similar string / number
that
uniquely identifies the TF-A build, e.g., BUILD_MESSAGE_TIMESTAMP) from the FIP file?
Basically, I'm trying to find a way to know the build number of a
FIP
without flashing it.
I've seen that the FIP TOC header has a 32-bit field named 'serial_number'. Can it be used to this end? I'm considering converting BUILD_MESSAGE_TIMESTAMP into an epoch and adding it as 'serial number', but I'm worried that might be an unintended usage
of
the 'serial_number' field.
Regards, Daniele