Hi,

> Why is TF-A checking for serial_number != 0?
   I guess it was an implementation choice made during initial implementation, let's keep it that way.

thanks
Manish

From: Daniele Alessandrelli <daniele.alessandrelli@linux.intel.com>
Sent: 12 February 2021 14:42
To: Manish Badarkhe <Manish.Badarkhe@arm.com>; Manish Pandey2 <Manish.Pandey2@arm.com>; tf-a@lists.trustedfirmware.org <tf-a@lists.trustedfirmware.org>
Subject: Re: [TF-A] Getting BUILD_STRING from FIP file
 
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
> >
> >
> >
>