Hi,
Just to clarify a little bit more.
There is no link here about a 32/64 bit architecture. The content of
this change is to take care about new memory introduce (mtd devices)
that are not based on size * LBA (where LBA=512) but size * LBA where
(LBA=1) and in such case, the size could exceed the 4GB. It is not
platform dependent and not architecture dependent, it's link to the
connected MTD device only. I'm not sure that a new type is useful except
if you want a type is modified regarding a platform flag such as
USE_LARGE_MTD_DEVICE.
Hope it's more clear.
BR,
Lionel
On 11/5/19 3:20 PM, Gyorgy Szing via TF-A wrote:
> Hi,
>
> I did not investigated all the details so what stays below may contain mistakes, but still I would like to add some comments.
>
> "using a type for the offset"
> The type we use for this purpose seems to be a configuration parameter for the IO layer as it depends on the upper layer being used with the IO library. For example libc uses "long int" to specify the file offset (fseek, ftell), using a different type while running below libc does not seem to be a good idea.
> The best option seems to be to define a type like (as Olivier mentioned) lib/zlib does. How we set this configuration parameter during the build is a question. The offset type could be dictated by the platform, the architecture (aarch32 or aarch64) or by the user. Which one is worth to implement needs investigation.
>
> If it is a good idea to use the same name "off_t" as zlib uses (or even the same type) is be questionable. It may give us more flexibility if we use a dedicated name, and the configuration maps the IO type to the one used by the upper layer.
>
> "32 bit backward compatibility"
> Another angle worth to consider is the 32/64 bit compatibility. I.e.: newlib can use 64 bit offsets even on 32 bit architectures, and they use some wrappers to maintain binary compatibility with old builds. When built in a compatible manner, functions using the standardized names use 32 bit wide offsets and call the real 64 bit implementation as a wrapper.
> To solve compatibility issues we could use a similar pattern. Instead of changing the existing function, we could add a new one (i.e. seek64). Then new 64 bit aware code could use the new function if available, and legacy code could call the old one. Longer term it is an option to deprecate the 32 bit version.
>
> "use stdint.h types"
> And a finally: when selecting the type used for off_t (or whatever we are going to call it) please consider using stdint.h types (i.e. int_fast64_t).
>
> /George
>
> -----Original Message-----
> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Olivier Deprez via TF-A
> Sent: 25 October 2019 14:42
> To: tf-a(a)lists.trustedfirmware.org; Lionel DEBIEVE <lionel.debieve(a)st.com>
> Subject: Re: [TF-A] [RFC] BL2 MTD frameworks
>
> Hi Lionel,
>
> On https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283
> I'm extending the discussion to the TF-A ML, to get people's opinion.
>
> The idea is to extend the io_seek offset parameter from ssize_t to unsigned long long.
> There are indeed good reasons for that as flash storage density grows over the years.
>
> Now on the change, the struct io_dev_funcs seek function pointer is generic for the whole codebase / drivers.
> So currently the change breaks the builds for at least rcar, stratix10 (did not check others from that point).
>
> An alternative is defining offset as an off_t type which is ssize_t by default, and only unsigned long long based on the platform (using _FILE_OFFSET_BITS=64). This pattern actually already exists in lib/zlib
>
> Other option is to change the generic prototype for all platform drivers (then we ensure all platforms build and supply platform patches).
>
> What do ML people think?
>
> Regards,
> Olivier.
>
>
>
> ________________________________
> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Lionel DEBIEVE via TF-A <tf-a(a)lists.trustedfirmware.org>
> Sent: 18 October 2019 17:26
> To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
> Subject: [TF-A] [RFC] BL2 MTD frameworks
>
> Hello Maintainers,
>
> I've sent a patch series around MTD framework management into BL2 stage (cf https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283).
>
> This patch series will add following frameworks:
>
> - a raw NAND framework implementation to support SLC NAND devices. Current implementation is limited to read operations without ECC corrections. Overrides are available to use hardware ECC from controller or low-level drivers. It also supports ONFI detection management but this can also be disabled or overridden by platform specific data.
> - a SPI-MEM framework (inspired from kernel/u-boot implementation) that encapsulates all SPI operations to SPI low level drivers.
> - a SPI-NAND framework based on SPI-MEM to support SPI NAND devices. This framework is also limited to the read operation. It uses single command, address and data bus width as legacy but can be overridden by platform.
> - a SPI-NOR framework based on SPI-MEM to manage SPI NOR devices. It is also limited to read operations using single command, address and data bus width as legacy (override still possible by platform). The framework embeds some specific implementations for manufacturers specific behavior in case of quad mode configuration activation.
>
> This patch series also includes:
>
> - a new io_mtd interface to manage a generic access to all these frameworks.
> - a NAND core driver that accesses independently to raw NAND or SPI-NAND framework. This core driver requires a scratch buffer defined by platform to manage unaligned pages (could be defined to 0 in case of aligned page) and limits access to a single NAND instance management.
> - a complete integration is available based on STM32MP1 platform.
>
> Tests have been performed with the following devices:
>
> SLC NAND:
> - Micron MT29F8G08ABACAH4 (ONFI)
> - Micron MT29F8G16ABACAH4 (ONFI)
> - Toshiba TH58NVG3S0HTAI0 (Non ONFI)
> - Toshiba TC58BVG1S3HTAI0 (On die ECC)
>
> SPI NOR:
> - Macronix MX25L51245G
> - Cypress/Spansion S25FL512
> - Micron n25q512ax3
>
> SPI-NAND:
> - Micron MT29F2G01ABAGD
>
> Waiting for your comments.
>
> Best regards, Lionel
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hello all,
As you may know, the Trusted Board Boot (TBB) code relies on the
platform to define a chain of trust (CoT). Today, the only example of
CoT present in the code base is the one used on Arm platforms, which is
described:
- in the TBBR specification [1].
- in the TF-A documentation [2] [3].
The entire TBBR CoT is built upon the root-of-trust public key (ROTPK),
which is used to authenticate all subsequent firmware binaries and
certificates, either directly or indirectly through some intermediate
certificates.
The TBBR CoT is only one example of a possible certificate chain and key
ownership model. It might not suit all platforms and market segments but
the TBBR implementation in TF-A leaves some freedom for other CoTs.
Today, we are publishing some proof-of-concept code that shows one way
the existing TBBR CoT may be modified in order to detach the BL33 image
from the rest of the CoT. This effectively splits it into 2 CoTs:
- 1 CoT for all secure world images (BL2, BL31, BL32).
- 1 CoT for the normal world bootloader (BL33).
If you are interested, please have a look at the related patch as well
as the companion documentation:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2443https://developer.trustedfirmware.org/w/tf_a/poc-multiple-signing-domains/
Note that at this stage, this is only prototype code and we do not plan
to integrate it in the code base as is, because it does not implement
what we would consider as a clean solution and uses a number of
workarounds. We are considering cleaning this patch up and providing it
as an alternate CoT on FVP platform in the future.
For now, the intent is to provide some material, which we can base a
discussion on. We're hoping to gather feedback from interested parties
on the suitability of this approach.
Regards,
Sandrine
[1]
https://developer.arm.com/docs/den0006/d/trusted-board-boot-requirements-cl…
(see page 21)
[2]
https://trustedfirmware-a.readthedocs.io/en/latest/design/trusted-board-boo…
[3]
https://trustedfirmware-a.readthedocs.io/en/latest/design/auth-framework.ht…
Hi,
I did not investigated all the details so what stays below may contain mistakes, but still I would like to add some comments.
"using a type for the offset"
The type we use for this purpose seems to be a configuration parameter for the IO layer as it depends on the upper layer being used with the IO library. For example libc uses "long int" to specify the file offset (fseek, ftell), using a different type while running below libc does not seem to be a good idea.
The best option seems to be to define a type like (as Olivier mentioned) lib/zlib does. How we set this configuration parameter during the build is a question. The offset type could be dictated by the platform, the architecture (aarch32 or aarch64) or by the user. Which one is worth to implement needs investigation.
If it is a good idea to use the same name "off_t" as zlib uses (or even the same type) is be questionable. It may give us more flexibility if we use a dedicated name, and the configuration maps the IO type to the one used by the upper layer.
"32 bit backward compatibility"
Another angle worth to consider is the 32/64 bit compatibility. I.e.: newlib can use 64 bit offsets even on 32 bit architectures, and they use some wrappers to maintain binary compatibility with old builds. When built in a compatible manner, functions using the standardized names use 32 bit wide offsets and call the real 64 bit implementation as a wrapper.
To solve compatibility issues we could use a similar pattern. Instead of changing the existing function, we could add a new one (i.e. seek64). Then new 64 bit aware code could use the new function if available, and legacy code could call the old one. Longer term it is an option to deprecate the 32 bit version.
"use stdint.h types"
And a finally: when selecting the type used for off_t (or whatever we are going to call it) please consider using stdint.h types (i.e. int_fast64_t).
/George
-----Original Message-----
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Olivier Deprez via TF-A
Sent: 25 October 2019 14:42
To: tf-a(a)lists.trustedfirmware.org; Lionel DEBIEVE <lionel.debieve(a)st.com>
Subject: Re: [TF-A] [RFC] BL2 MTD frameworks
Hi Lionel,
On https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283
I'm extending the discussion to the TF-A ML, to get people's opinion.
The idea is to extend the io_seek offset parameter from ssize_t to unsigned long long.
There are indeed good reasons for that as flash storage density grows over the years.
Now on the change, the struct io_dev_funcs seek function pointer is generic for the whole codebase / drivers.
So currently the change breaks the builds for at least rcar, stratix10 (did not check others from that point).
An alternative is defining offset as an off_t type which is ssize_t by default, and only unsigned long long based on the platform (using _FILE_OFFSET_BITS=64). This pattern actually already exists in lib/zlib
Other option is to change the generic prototype for all platform drivers (then we ensure all platforms build and supply platform patches).
What do ML people think?
Regards,
Olivier.
________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Lionel DEBIEVE via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 18 October 2019 17:26
To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: [TF-A] [RFC] BL2 MTD frameworks
Hello Maintainers,
I've sent a patch series around MTD framework management into BL2 stage (cf https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283).
This patch series will add following frameworks:
- a raw NAND framework implementation to support SLC NAND devices. Current implementation is limited to read operations without ECC corrections. Overrides are available to use hardware ECC from controller or low-level drivers. It also supports ONFI detection management but this can also be disabled or overridden by platform specific data.
- a SPI-MEM framework (inspired from kernel/u-boot implementation) that encapsulates all SPI operations to SPI low level drivers.
- a SPI-NAND framework based on SPI-MEM to support SPI NAND devices. This framework is also limited to the read operation. It uses single command, address and data bus width as legacy but can be overridden by platform.
- a SPI-NOR framework based on SPI-MEM to manage SPI NOR devices. It is also limited to read operations using single command, address and data bus width as legacy (override still possible by platform). The framework embeds some specific implementations for manufacturers specific behavior in case of quad mode configuration activation.
This patch series also includes:
- a new io_mtd interface to manage a generic access to all these frameworks.
- a NAND core driver that accesses independently to raw NAND or SPI-NAND framework. This core driver requires a scratch buffer defined by platform to manage unaligned pages (could be defined to 0 in case of aligned page) and limits access to a single NAND instance management.
- a complete integration is available based on STM32MP1 platform.
Tests have been performed with the following devices:
SLC NAND:
- Micron MT29F8G08ABACAH4 (ONFI)
- Micron MT29F8G16ABACAH4 (ONFI)
- Toshiba TH58NVG3S0HTAI0 (Non ONFI)
- Toshiba TC58BVG1S3HTAI0 (On die ECC)
SPI NOR:
- Macronix MX25L51245G
- Cypress/Spansion S25FL512
- Micron n25q512ax3
SPI-NAND:
- Micron MT29F2G01ABAGD
Waiting for your comments.
Best regards, Lionel
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
Hi all,
We are introducing a new "memory map" tool part of the build system.
The tool parse the blx.map files and print a representation of the memory layout for the latest build.
It can be invoked by adding "memmap" in the make build command.
If you are interested, please have a look at the related patch:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2413/1
Regards,
Louis
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi All,
We are proposing a new firmware debug interface in the form of a "debug filesystem".
The intent is to expose live firmware data or firmware driver HAL to the upper layers, in debug builds.
For people interested, please review and comment the design proposal:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2381
The design is not closed, the intent is to collect opinions, and have a discussion on options and implications.
Thanks & Regards,
Olivier.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Lionel,
On https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283
I'm extending the discussion to the TF-A ML, to get people's opinion.
The idea is to extend the io_seek offset parameter from ssize_t to unsigned long long.
There are indeed good reasons for that as flash storage density grows over the years.
Now on the change, the struct io_dev_funcs seek function pointer is generic for the whole codebase / drivers.
So currently the change breaks the builds for at least rcar, stratix10 (did not check others from that point).
An alternative is defining offset as an off_t type which is ssize_t by default, and only unsigned long long based on the platform (using _FILE_OFFSET_BITS=64). This pattern actually already exists in lib/zlib
Other option is to change the generic prototype for all platform drivers (then we ensure all platforms build and supply platform patches).
What do ML people think?
Regards,
Olivier.
________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Lionel DEBIEVE via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 18 October 2019 17:26
To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: [TF-A] [RFC] BL2 MTD frameworks
Hello Maintainers,
I've sent a patch series around MTD framework management into BL2 stage (cf https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283).
This patch series will add following frameworks:
- a raw NAND framework implementation to support SLC NAND devices. Current implementation is limited to read operations without ECC corrections. Overrides are available to use hardware ECC from controller or low-level drivers. It also supports ONFI detection management but this can also be disabled or overridden by platform specific data.
- a SPI-MEM framework (inspired from kernel/u-boot implementation) that encapsulates all SPI operations to SPI low level drivers.
- a SPI-NAND framework based on SPI-MEM to support SPI NAND devices. This framework is also limited to the read operation. It uses single command, address and data bus width as legacy but can be overridden by platform.
- a SPI-NOR framework based on SPI-MEM to manage SPI NOR devices. It is also limited to read operations using single command, address and data bus width as legacy (override still possible by platform). The framework embeds some specific implementations for manufacturers specific behavior in case of quad mode configuration activation.
This patch series also includes:
- a new io_mtd interface to manage a generic access to all these frameworks.
- a NAND core driver that accesses independently to raw NAND or SPI-NAND framework. This core driver requires a scratch buffer defined by platform to manage unaligned pages (could be defined to 0 in case of aligned page) and limits access to a single NAND instance management.
- a complete integration is available based on STM32MP1 platform.
Tests have been performed with the following devices:
SLC NAND:
- Micron MT29F8G08ABACAH4 (ONFI)
- Micron MT29F8G16ABACAH4 (ONFI)
- Toshiba TH58NVG3S0HTAI0 (Non ONFI)
- Toshiba TC58BVG1S3HTAI0 (On die ECC)
SPI NOR:
- Macronix MX25L51245G
- Cypress/Spansion S25FL512
- Micron n25q512ax3
SPI-NAND:
- Micron MT29F2G01ABAGD
Waiting for your comments.
Best regards, Lionel
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Feng,
user-guide.rst references GCC 9.1 and later versions. The code was also tested with GCC 10.0.0.
Regards.
Alexei
________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Chen Feng via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 24 October 2019 14:32
To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: [TF-A] compile toolchain
hi expects,
from the atf2.2 release notes,I can see the tf-a already supported pac bti and mte feature. I want to enable and test it on fvp platform.
I want to know which tool chain to use for compiling code for theses.
Cheers
Feng
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
hi expects,
from the atf2.2 release notes,I can see the tf-a already supported pac bti and mte feature. I want to enable and test it on fvp platform.
I want to know which tool chain to use for compiling code for theses.
Cheers
Feng
Hi all,
Trusted Firmware version 2.2 is now available and can be found here:
https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.2
Please refer to the readme and change log for further information.
Thanks & best regards,
[cid:image001.jpg@01D588EA.577B7090]
Bipin Ravi | Principal Design Engineer
Bipin.Ravi(a)arm.com<mailto:Joshua.Sunil@arm.com> | Skype: Bipin.Ravi.ARM
Direct: +1-512-225 -1071 | Mobile: +1-214-212-0794
5707 Southwest Parkway, Suite 100, Austin, TX 78735
Hello Maintainers,
I've sent a patch series around MTD framework management into BL2 stage (cf https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2283).
This patch series will add following frameworks:
- a raw NAND framework implementation to support SLC NAND devices. Current implementation is limited to read operations without ECC corrections. Overrides are available to use hardware ECC from controller or low-level drivers. It also supports ONFI detection management but this can also be disabled or overridden by platform specific data.
- a SPI-MEM framework (inspired from kernel/u-boot implementation) that encapsulates all SPI operations to SPI low level drivers.
- a SPI-NAND framework based on SPI-MEM to support SPI NAND devices. This framework is also limited to the read operation. It uses single command, address and data bus width as legacy but can be overridden by platform.
- a SPI-NOR framework based on SPI-MEM to manage SPI NOR devices. It is also limited to read operations using single command, address and data bus width as legacy (override still possible by platform). The framework embeds some specific implementations for manufacturers specific behavior in case of quad mode configuration activation.
This patch series also includes:
- a new io_mtd interface to manage a generic access to all these frameworks.
- a NAND core driver that accesses independently to raw NAND or SPI-NAND framework. This core driver requires a scratch buffer defined by platform to manage unaligned pages (could be defined to 0 in case of aligned page) and limits access to a single NAND instance management.
- a complete integration is available based on STM32MP1 platform.
Tests have been performed with the following devices:
SLC NAND:
- Micron MT29F8G08ABACAH4 (ONFI)
- Micron MT29F8G16ABACAH4 (ONFI)
- Toshiba TH58NVG3S0HTAI0 (Non ONFI)
- Toshiba TC58BVG1S3HTAI0 (On die ECC)
SPI NOR:
- Macronix MX25L51245G
- Cypress/Spansion S25FL512
- Micron n25q512ax3
SPI-NAND:
- Micron MT29F2G01ABAGD
Waiting for your comments.
Best regards, Lionel
Hi Hugh,
Ccing the Rockchip maintainers from https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/docs/maint… as neither appear to be subscribed to this mailing list.
Joanna
On 08/10/2019, 21:45, "TF-A on behalf of Hugh Cole-Baker via TF-A" <tf-a-bounces(a)lists.trustedfirmware.org on behalf of tf-a(a)lists.trustedfirmware.org> wrote:
Hi folks,
I've been using TF-A with mainline U-Boot recently as firmware & boot
loader for a RK3399 Rockpro64 board. I'm compiling TF-A and U-boot based
on this guide [1], using gcc 8.3.0 from Debian.
TF-A v2.1 works fine for this, but I recently tried to switch to TF-A
latest master and found U-Boot gets stuck with this version.
The symptoms are: U-Boot TPL and SPL print starting messages like this:
U-Boot TPL 2019.10-rc4-00037-gdac51e9aaf (Oct 06 2019 - 21:42:50)
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2019.10-rc4-00037-gdac51e9aaf (Oct 06 2019 - 21:42:50 +0000)
Trying to boot from MMC2
...and then there is no more output when normally U-Boot proper would
start, and go on to load the Linux kernel, etc.
Starting from v2.1, with git bisect I found the first 'bad' commit is:
0aad563c7480 rockchip: Update BL31_BASE to 0x40000
and that commit does change some RK3399-related files so seems likely.
I'm not sure how to debug further, any ideas on why boot is hanging
after that change or how to get more debugging information?
Best regards,
Hugh Cole-Baker
[1] https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Varun,
TF-A v1.4 is rather old codebase, can you provide the exact patchset you cherry-picked on top of it?
e.g. you need the Hercules CPU support patch (a4668c36f1fca75b), but possibly also all which is related to HW_ASSISTED_COHERENCY option?
Also, can you pls provide your build cmd line?
Thanks & Regards,
Olivier.
________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Soby Mathew via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 11 October 2019 11:21
To: Varun Wadekar <vwadekar(a)nvidia.com>; Joanna Farley <Joanna.Farley(a)arm.com>; Matteo Carlini <Matteo.Carlini(a)arm.com>
Cc: Julius Werner via TF-A <tf-a(a)lists.trustedfirmware.org>; nd <nd(a)arm.com>
Subject: Re: [TF-A] Hercules-AE I$ problems
On 10/10/2019 20:46, Varun Wadekar wrote:
> Hello,
>
> First of all, thanks a lot for posting the Hercules-AE patches.
>
> We picked them up and used them internally. Unfortunately, the CPU sees
> garbage in it's I$ when we enable the I cache for the processor. If we
> keep I$ disabled, TF-A boots properly. We are using TF-A v1.4 for
> verification.
>
> We booted Linux kernel v4.14 on the processor and don't see this problem
> there. So, we suspect something going wrong inside TF-A. Have you seen
> this problem internally? Any hints or clues to solve it would be helpful.
>
> Thanks.
Hi Varun,
As indicated in the commit message of the patch, we have not tested the
CPU support internally due to non-availability of FVP for the CPU.
TF-A assumes that I$ will be invalidated when CPU is reset. Perhaps this
is not true for your setup. Could you try adding a `IC IALLU` in the CPU
reset handler prior to I$ enable and see if that improves anything ?
Best Regards
Soby Mathew
>
>
> ------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and
> may contain confidential information. Any unauthorized review, use,
> disclosure or distribution is prohibited. If you are not the intended
> recipient, please contact the sender by reply email and destroy all
> copies of the original message.
> ------------------------------------------------------------------------
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hello,
First of all, thanks a lot for posting the Hercules-AE patches.
We picked them up and used them internally. Unfortunately, the CPU sees garbage in it's I$ when we enable the I cache for the processor. If we keep I$ disabled, TF-A boots properly. We are using TF-A v1.4 for verification.
We booted Linux kernel v4.14 on the processor and don't see this problem there. So, we suspect something going wrong inside TF-A. Have you seen this problem internally? Any hints or clues to solve it would be helpful.
Thanks.
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
Hi everyone,
This post is to let you know about some changes to the TrustedFirmware.org website and to the TF-A documentation. It briefly covers what's new, what has moved, and what happens to any existing resources you may be using.
First of all, we are making it more obvious where to access the documentation and the Gerrit review system. The front page of trustedfirmware.org has grown new "Documentation" and "Review" menus with links to this content. Dashboard and Wiki items have moved under the Documentation menu.
Secondly, the online version of the documentation has moved to www.trustedfirmware.org/docs/tf-a<http://www.trustedfirmware.org/docs/tf-a>. This is a pre-rendered, HTML copy of the content that is found under the "docs" directory of the TF-A repository. The content here will remain synchronised with the master branch of the repository. Following the v2.2 release, you will also be able to access a static version of the documentation that corresponds to that tag, via a version selection drop-down menu on the site.
The intention behind this change is to make it easier to find the docs, to improve the output quality and to make the content more modular and readable. The new setup has a persistent table of contents (displayed to the left of the page content) and a search feature, making it easier to find what you're looking for and easier to move between documents and topics.
You may be used to viewing the docs through either the git viewer (https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/) or through the Github mirror (https://github.com/ARM-software/arm-trusted-firmware/). The landing pages of these sites now contain links to the new content. While you can still use these sites to access other documentation content, you may find that there are some formatting warnings displayed if you do so.
Finally, if you prefer to read a local copy of the documentation on your machine then you can build the same HTML output following the instructions at https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/docs-bui… (or docs/getting_started/docs-build.rst, for the equivalent file in the repository).
As always, let us know if you have any comments or if there are other changes you would like to see.
Thanks,
Paul
Hi folks,
I've been using TF-A with mainline U-Boot recently as firmware & boot
loader for a RK3399 Rockpro64 board. I'm compiling TF-A and U-boot based
on this guide [1], using gcc 8.3.0 from Debian.
TF-A v2.1 works fine for this, but I recently tried to switch to TF-A
latest master and found U-Boot gets stuck with this version.
The symptoms are: U-Boot TPL and SPL print starting messages like this:
U-Boot TPL 2019.10-rc4-00037-gdac51e9aaf (Oct 06 2019 - 21:42:50)
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2019.10-rc4-00037-gdac51e9aaf (Oct 06 2019 - 21:42:50 +0000)
Trying to boot from MMC2
...and then there is no more output when normally U-Boot proper would
start, and go on to load the Linux kernel, etc.
Starting from v2.1, with git bisect I found the first 'bad' commit is:
0aad563c7480 rockchip: Update BL31_BASE to 0x40000
and that commit does change some RK3399-related files so seems likely.
I'm not sure how to debug further, any ideas on why boot is hanging
after that change or how to get more debugging information?
Best regards,
Hugh Cole-Baker
[1] https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip
Hi,
This is to notify that we are planning to target the Trusted Firmware-A 2.2 release during the third week of October as part of the regular 6 month cadence. The aim is to consolidate all TF-A work since the 2.1 release. As part of this, a release candidate tag will be created and release activities will commence from Monday October 7th. Essentially we will not merge any major enhancements from this date until the release is made. Please ensure any Pull Requests (PR's) desired to make the 2.2 release are submitted in good time to be complete by Friday October 4th. Any major enhancement PR's still open after that date will not be merged until after the release.
Thanks & best regards,
[cid:image001.jpg@01D57244.98C07530]
Bipin Ravi | Principal Design Engineer
Bipin.Ravi(a)arm.com<mailto:Joshua.Sunil@arm.com> | Skype: Bipin.Ravi.ARM
Direct: +1-512-225 -1071 | Mobile: +1-214-212-0794
5707 Southwest Parkway, Suite 100, Austin, TX 78735
Hi,
We are going to configure Coverity Scan Online to make it send
notifications to this mailing list. This way, everyone subscribed on
this mailing list will be aware of newly detected/eliminated defects
found by the tool.
The report will provide a summary of the findings (their nature,
location in the source code). In order to look up the details or to
triage them, you will still need to access the database through the web
portal on
https://scan.coverity.com/projects/arm-software-arm-trusted-firmware .
As a reminder, you will need to create an account to view the defects
there (it's possible to use your Github account).
This is expected to generate a low volume of emails, as we typically do
1 analysis per week day.
As a heads up, the web interface mentions that "an authorization
confirmation will be sent to each newly provided email address and must
be acknowledged before notifications will be sent". In which case,
please ignore these emails.
Regards,
Sandrine
Hi Tristan,
Can you please clarify what your exact concern is? Which files and what text exactly? That will help us answer your concern.
Thanks
Joanna
On 16/09/2019, 23:48, "TF-A on behalf of Tristan Muntsinger via TF-A" <tf-a-bounces(a)lists.trustedfirmware.org on behalf of tf-a(a)lists.trustedfirmware.org> wrote:
Hello all,
It looks like the copyright guidance on this project changed about a year
ago (Nov 13, 2018) to a placeholder and hasn't been corrected yet. Can
this be fixed to make the license valid so the project can be legally
redistributed per BSD-3 as intended?
Thanks,
Tristan Muntsinger
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Dan,
Whoops, sorry, this fell through the cracks for me since I wasn't on
the to: line. Thanks for your response!
> OK I can see the use of that, although I'd be a bit concerned about such a thing being available as a general service in case it gets used as an attack vector. For example, a test program could aggressively use this service to try to get the firmware to leak secure world information or something about its behaviour.
Yes, of course, we can gate this with a build option so it would only
be available where desired.
> However, I think there might already be support for what you need. PSCI is part of the standard service and the function SYSTEM_RESET2 allows for both architectural and vendor-specific resets. The latter allows for vendor-specific semantics, which could include crashing the firmware as you suggest.
>
> Chrome OS could specify what such a vendor-specific reset looks like and each Chromebook's platform PSCI hooks could be implemented accordingly.
Right, but defining a separate vendor-specific reset type for each
platform is roughly the same as defining a separate SiP SMC for each
of them. It's the same problem that the SMC/PSCI spec and the TF
repository layout is only designed to deal with generic vs.
SoC-vendor-specific differentiation. If the normal world OS needs a
feature, we can only make it generic or duplicate it across all
vendors running that OS.
> Alternatively, this could potentially be defined as an additional architectural reset. This would enable a generic implementation but would require approval/definition by Arm's Architecture team. Like me they might have concerns about this being defined at a generic architectural level.
Yes, I think that would be the best option. Could you kick off that
process with the Architecture team? Or tell me who I should talk to
about this?
Thanks,
Julius
Hello all,
It looks like the copyright guidance on this project changed about a year
ago (Nov 13, 2018) to a placeholder and hasn't been corrected yet. Can
this be fixed to make the license valid so the project can be legally
redistributed per BSD-3 as intended?
Thanks,
Tristan Muntsinger
Hi Yann,
You are quite correct. We will be looking to create a v2.2 tag release sometime early to mid October. You can expect a more formal notification and a request to get any patches submitted in the next week or so. As in previous releases master will be generally locked for a week or so while closedown testing is performed although we will assess incoming patches to see if they can be taken with low risk.
Joanna
On 16/09/2019, 13:19, "TF-A on behalf of Yann GAUTIER via TF-A" <tf-a-bounces(a)lists.trustedfirmware.org on behalf of tf-a(a)lists.trustedfirmware.org> wrote:
Hi,
From the wiki page https://developer.trustedfirmware.org/w/tf_a/tf-a_release_information/, the next v2.2 tag may be released soon.
But the exact timeframe is not yet published.
The wiki page might be updated if you have more information.
When do you expect to release tag v2.2?
What will be the deadline to send patches upstream?
Thanks,
Yann
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi,
>From the wiki page https://developer.trustedfirmware.org/w/tf_a/tf-a_release_information/, the next v2.2 tag may be released soon.
But the exact timeframe is not yet published.
The wiki page might be updated if you have more information.
When do you expect to release tag v2.2?
What will be the deadline to send patches upstream?
Thanks,
Yann
Hi Soby,
> Hi Julius,
> Apologize for the radio silence as I was on sabbatical. Yes, I agree the
> project needs to have a clear policy around platforms. We will get this
> started on our end and send a policy proposal for review.
No problem, thanks to Sandrine for taking care of it so quickly.
Unfortunately we now discovered that we're still stuck on the same
issue with MT8173. Could one of you please help getting
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/990/31
landed to fix that too?
Thanks,
Julius
Hello Soby/Joanna,
We would like to upstream support for a new Tegra platform along with some other changes. The last time I checked, there were more than 400 changes waiting to be upstreamed.
Can someone help me with the best/fastest approach to start upstreaming? Previously, we would upstream changes in big chunks (as branches) but I don't know if that approach still works.
Thanks.
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
Hi Soby,
> Hmm, if we merge a non-trivial patch and ensure the build works, then we
> do not know whether it runs correctly, whether there are any runtime
> effects that would affect stability/robustness of the platform that even
> might have security implications. Hence, in my view, it is better to
> have a broken build for the platform, rather than have runtime problems.
>
> The project could form a policy that if a platform remains broken for
> more than 2 releases (1 year by current release intervals), then it will
> get removed from the tree after giving enough notifications.
Thanks, yes, I think it would be good to have a clear policy on this,
whatever it is.
I would still like to make a case for keeping these platforms in the
tree on a best-effort basis. You're right that there's a chance for
untested patches to cause all sorts of runtime errors, but I think
that may still be better than a platform that doesn't build at all. A
platform that doesn't build doesn't benefit anyone. A platform that
may have errors still has a chance of working, and even if it doesn't
it gives a third-party contributor or hobby developer who wants to
start using it a chance to fix it up again. This is something we
occasionally see happening with some of our older, less maintained
platforms in coreboot. But if it doesn't even build, the chance of
someone coming along to fix it seem very slim, because then more and
more build issues will keep piling up over time. (In fact, I doubt
there's even any point in keeping broken stuff in the tree for another
year as you proposed... likely all that would do is confuse people who
are trying to refactor project-wide APIs. Code that's never
build-tested just bit rots very quickly. I think at that point you
might as well remove it from the repo immediately.)
It's true that there may also be security issues (which is more
serious), but I'm skeptical that this really makes a lot of
difference. After all, this may happen even while the platform is
still actively maintained. Just testing whether it boots doesn't make
sure you have no security issues anyway. Maybe a way to make this more
visible instead could be to introduce a new
ALLOW_UNMAINTAINED_PLATFORM=1 make variable that the user has to
explicitly set to build a platform without active maintainer? That
could serve as a warning that the code may not be safe to use for
critical applications anymore while still giving developers access to
something if they're willing to deal with possible issues.
Anyway, whatever the policy may be, a more defined process would help.
I think the initial messaging around the console deprecation plan was
fine, but it would have been good to have another explicit
announcement when the CI actually gets turned off for a platform.
Hi Julius,
On 8/27/19 9:55 PM, Julius Werner via TF-A wrote:
> Could either of you please help get the Tegra fix in
> https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1192
> landed (and subsequently CI for Tegra re-enabled)? It has been
> reviewed and approved for two weeks but nobody is merging it. This is
> blocking more and more work across all coreboot-based platforms so I
> would appreciate if we could get it resolved quickly.
Apologies for the delay. As you may have seen, the patch has now been
merged, and we've also re-enabled the Tegra builds in the CI.
Regards,
Sandrine
Hi Soby, Joanna,
Could either of you please help get the Tegra fix in
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1192
landed (and subsequently CI for Tegra re-enabled)? It has been
reviewed and approved for two weeks but nobody is merging it. This is
blocking more and more work across all coreboot-based platforms so I
would appreciate if we could get it resolved quickly.
Thanks,
Julius
Hi Julius
> -----Original Message-----
> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Julius
> Werner via TF-A
> Sent: 20 August 2019 02:15
>
> Hi Soby et. al.,
>
> I'd like to implement a small new feature and ask some guidance for how to go
> about it: Chrome OS has the ability to automatically collect crash reports
> from runtime crashes in Trusted Firmware, and we would like to set up
> automated tests to ensure this feature stays working.
> In order to do this we need a way for the non-secure OS to intentionally
> trigger a panic in EL3. The obvious solution would be to implement a new SMC
> for that. (It's common for operating systems to have similar facilities, e.g.
> Linux can force a kernel panic by writing 'c' into /proc/sysrq-trigger.)
>
OK I can see the use of that, although I'd be a bit concerned about such a thing being available as a general service in case it gets used as an attack vector. For example, a test program could aggressively use this service to try to get the firmware to leak secure world information or something about its behaviour.
> My main question is: where should I get an SMC function ID for this?
> This is not a silicon or OEM specific feature, so the SiP Service Calls and
> OEM Service Calls ID ranges seem inappropriate (or do you think it would make
> sense to treat Google or Chrome OS as the "OEM"
> here, even though that's not quite accurate?).
I guess in theory you could mandate that all Chrome OS SiPs provide a specific function ID in their own specific SiP service, but I don't think that's the right solution here...
> There are ranges for Trusted
> Applications and the Trusted OS but unfortunately none for the normal world
> OS.
I don't think the TOS range is right either.
> Is this something that would make sense to allocate under Standard
> Service Calls? Could you just find an ID for me to use there or does
> everything in that range need a big specification document written by Arm?
>
For sure everything in the standard or architectural ranges require specification by Arm, although this does not necessarily need to be big.
However, I think there might already be support for what you need. PSCI is part of the standard service and the function SYSTEM_RESET2 allows for both architectural and vendor-specific resets. The latter allows for vendor-specific semantics, which could include crashing the firmware as you suggest.
Chrome OS could specify what such a vendor-specific reset looks like and each Chromebook's platform PSCI hooks could be implemented accordingly.
Alternatively, this could potentially be defined as an additional architectural reset. This would enable a generic implementation but would require approval/definition by Arm's Architecture team. Like me they might have concerns about this being defined at a generic architectural level.
Regards
Dan.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Soby et. al.,
I'd like to implement a small new feature and ask some guidance for
how to go about it: Chrome OS has the ability to automatically collect
crash reports from runtime crashes in Trusted Firmware, and we would
like to set up automated tests to ensure this feature stays working.
In order to do this we need a way for the non-secure OS to
intentionally trigger a panic in EL3. The obvious solution would be to
implement a new SMC for that. (It's common for operating systems to
have similar facilities, e.g. Linux can force a kernel panic by
writing 'c' into /proc/sysrq-trigger.)
My main question is: where should I get an SMC function ID for this?
This is not a silicon or OEM specific feature, so the SiP Service
Calls and OEM Service Calls ID ranges seem inappropriate (or do you
think it would make sense to treat Google or Chrome OS as the "OEM"
here, even though that's not quite accurate?). There are ranges for
Trusted Applications and the Trusted OS but unfortunately none for the
normal world OS. Is this something that would make sense to allocate
under Standard Service Calls? Could you just find an ID for me to use
there or does everything in that range need a big specification
document written by Arm?
Thanks,
Julius
Hi Marek
The patch is available at
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1789
Regards.
Alexei
________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Joanna Farley via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 19 August 2019 11:41
To: Marek <marek.bykowski(a)gmail.com>
Cc: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: Re: [TF-A] Advisory TFV 5 to CVE-2017-15031 only saves/stores the PMCR_EL0 across world switching
Hi Marek,
Changes are in review so hopefully soon.
Joanna
On 19/08/2019, 10:56, "TF-A on behalf of Marek via TF-A" <tf-a-bounces(a)lists.trustedfirmware.org on behalf of tf-a(a)lists.trustedfirmware.org> wrote:
Hi Dan,
Are there any time estimates when the fix should be in?
Thanks,
Marek
On Sat, 10 Aug 2019 at 22:46, Marek via TF-A
<tf-a(a)lists.trustedfirmware.org> wrote:
>
> Thank you Dan for checking this out. Looking forward into the fix.
>
> Marek
>
> On Thu, 8 Aug 2019 at 17:52, Dan Handley via TF-A
> <tf-a(a)lists.trustedfirmware.org> wrote:
> >
> > Hi Marek
> >
> > Thanks for pointing this out. Typically we expect any timing sensitive secure operations to be implemented at Secure-EL1 or lower, which the current code does protect. However, you are correct that all secure world code including EL3 should not expose timing information. A fix is in progress to address this.
> >
> > Regards
> >
> > Dan.
> >
> > > -----Original Message-----
> > > From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Marek
> > > Bykowski via TF-A
> > > Sent: 03 August 2019 07:37
> > > To: tf-a(a)lists.trustedfirmware.org; David Cunado <David.Cunado(a)arm.com>
> > > Subject: [TF-A] Advisory TFV 5 to CVE-2017-15031 only saves/stores the
> > > PMCR_EL0 across world switching
> > >
> > > Hi David/ATF Support,
> > >
> > > An excerpt from the commit message to CVE-2017-15031 is "Additionally,
> > > PMCR_EL0 is added to the list of registers that are saved and restored during
> > > a world switch."
> > >
> > > My question is why it is only being saved/restored across the world switch
> > > and not during a "normal" SMC call? When I do modify the
> > > PMCR_EL0 in EL2 or NonSecure-EL1 and run the smc call the PMCCNTR counter
> > > counts during the smc call and does expose secure world timing information to
> > > NonSecure in that matter.
> > >
> > > Thanks,
> > > Marek
> > > --
> > > TF-A mailing list
> > > TF-A(a)lists.trustedfirmware.org
> > > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> > --
> > TF-A mailing list
> > TF-A(a)lists.trustedfirmware.org
> > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
>
>
> --
> Slán,
> Marek
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
--
Slán,
Marek
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Marek,
Changes are in review so hopefully soon.
Joanna
On 19/08/2019, 10:56, "TF-A on behalf of Marek via TF-A" <tf-a-bounces(a)lists.trustedfirmware.org on behalf of tf-a(a)lists.trustedfirmware.org> wrote:
Hi Dan,
Are there any time estimates when the fix should be in?
Thanks,
Marek
On Sat, 10 Aug 2019 at 22:46, Marek via TF-A
<tf-a(a)lists.trustedfirmware.org> wrote:
>
> Thank you Dan for checking this out. Looking forward into the fix.
>
> Marek
>
> On Thu, 8 Aug 2019 at 17:52, Dan Handley via TF-A
> <tf-a(a)lists.trustedfirmware.org> wrote:
> >
> > Hi Marek
> >
> > Thanks for pointing this out. Typically we expect any timing sensitive secure operations to be implemented at Secure-EL1 or lower, which the current code does protect. However, you are correct that all secure world code including EL3 should not expose timing information. A fix is in progress to address this.
> >
> > Regards
> >
> > Dan.
> >
> > > -----Original Message-----
> > > From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Marek
> > > Bykowski via TF-A
> > > Sent: 03 August 2019 07:37
> > > To: tf-a(a)lists.trustedfirmware.org; David Cunado <David.Cunado(a)arm.com>
> > > Subject: [TF-A] Advisory TFV 5 to CVE-2017-15031 only saves/stores the
> > > PMCR_EL0 across world switching
> > >
> > > Hi David/ATF Support,
> > >
> > > An excerpt from the commit message to CVE-2017-15031 is "Additionally,
> > > PMCR_EL0 is added to the list of registers that are saved and restored during
> > > a world switch."
> > >
> > > My question is why it is only being saved/restored across the world switch
> > > and not during a "normal" SMC call? When I do modify the
> > > PMCR_EL0 in EL2 or NonSecure-EL1 and run the smc call the PMCCNTR counter
> > > counts during the smc call and does expose secure world timing information to
> > > NonSecure in that matter.
> > >
> > > Thanks,
> > > Marek
> > > --
> > > TF-A mailing list
> > > TF-A(a)lists.trustedfirmware.org
> > > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> > --
> > TF-A mailing list
> > TF-A(a)lists.trustedfirmware.org
> > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
>
>
> --
> Slán,
> Marek
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
--
Slán,
Marek
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Dan,
Are there any time estimates when the fix should be in?
Thanks,
Marek
On Sat, 10 Aug 2019 at 22:46, Marek via TF-A
<tf-a(a)lists.trustedfirmware.org> wrote:
>
> Thank you Dan for checking this out. Looking forward into the fix.
>
> Marek
>
> On Thu, 8 Aug 2019 at 17:52, Dan Handley via TF-A
> <tf-a(a)lists.trustedfirmware.org> wrote:
> >
> > Hi Marek
> >
> > Thanks for pointing this out. Typically we expect any timing sensitive secure operations to be implemented at Secure-EL1 or lower, which the current code does protect. However, you are correct that all secure world code including EL3 should not expose timing information. A fix is in progress to address this.
> >
> > Regards
> >
> > Dan.
> >
> > > -----Original Message-----
> > > From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Marek
> > > Bykowski via TF-A
> > > Sent: 03 August 2019 07:37
> > > To: tf-a(a)lists.trustedfirmware.org; David Cunado <David.Cunado(a)arm.com>
> > > Subject: [TF-A] Advisory TFV 5 to CVE-2017-15031 only saves/stores the
> > > PMCR_EL0 across world switching
> > >
> > > Hi David/ATF Support,
> > >
> > > An excerpt from the commit message to CVE-2017-15031 is "Additionally,
> > > PMCR_EL0 is added to the list of registers that are saved and restored during
> > > a world switch."
> > >
> > > My question is why it is only being saved/restored across the world switch
> > > and not during a "normal" SMC call? When I do modify the
> > > PMCR_EL0 in EL2 or NonSecure-EL1 and run the smc call the PMCCNTR counter
> > > counts during the smc call and does expose secure world timing information to
> > > NonSecure in that matter.
> > >
> > > Thanks,
> > > Marek
> > > --
> > > TF-A mailing list
> > > TF-A(a)lists.trustedfirmware.org
> > > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> > --
> > TF-A mailing list
> > TF-A(a)lists.trustedfirmware.org
> > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
>
>
> --
> Slán,
> Marek
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
--
Slán,
Marek
Thank you Dan for checking this out. Looking forward into the fix.
Marek
On Thu, 8 Aug 2019 at 17:52, Dan Handley via TF-A
<tf-a(a)lists.trustedfirmware.org> wrote:
>
> Hi Marek
>
> Thanks for pointing this out. Typically we expect any timing sensitive secure operations to be implemented at Secure-EL1 or lower, which the current code does protect. However, you are correct that all secure world code including EL3 should not expose timing information. A fix is in progress to address this.
>
> Regards
>
> Dan.
>
> > -----Original Message-----
> > From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Marek
> > Bykowski via TF-A
> > Sent: 03 August 2019 07:37
> > To: tf-a(a)lists.trustedfirmware.org; David Cunado <David.Cunado(a)arm.com>
> > Subject: [TF-A] Advisory TFV 5 to CVE-2017-15031 only saves/stores the
> > PMCR_EL0 across world switching
> >
> > Hi David/ATF Support,
> >
> > An excerpt from the commit message to CVE-2017-15031 is "Additionally,
> > PMCR_EL0 is added to the list of registers that are saved and restored during
> > a world switch."
> >
> > My question is why it is only being saved/restored across the world switch
> > and not during a "normal" SMC call? When I do modify the
> > PMCR_EL0 in EL2 or NonSecure-EL1 and run the smc call the PMCCNTR counter
> > counts during the smc call and does expose secure world timing information to
> > NonSecure in that matter.
> >
> > Thanks,
> > Marek
> > --
> > TF-A mailing list
> > TF-A(a)lists.trustedfirmware.org
> > https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
--
Slán,
Marek
Hi Marek
Thanks for pointing this out. Typically we expect any timing sensitive secure operations to be implemented at Secure-EL1 or lower, which the current code does protect. However, you are correct that all secure world code including EL3 should not expose timing information. A fix is in progress to address this.
Regards
Dan.
> -----Original Message-----
> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> On Behalf Of Marek
> Bykowski via TF-A
> Sent: 03 August 2019 07:37
> To: tf-a(a)lists.trustedfirmware.org; David Cunado <David.Cunado(a)arm.com>
> Subject: [TF-A] Advisory TFV 5 to CVE-2017-15031 only saves/stores the
> PMCR_EL0 across world switching
>
> Hi David/ATF Support,
>
> An excerpt from the commit message to CVE-2017-15031 is "Additionally,
> PMCR_EL0 is added to the list of registers that are saved and restored during
> a world switch."
>
> My question is why it is only being saved/restored across the world switch
> and not during a "normal" SMC call? When I do modify the
> PMCR_EL0 in EL2 or NonSecure-EL1 and run the smc call the PMCCNTR counter
> counts during the smc call and does expose secure world timing information to
> NonSecure in that matter.
>
> Thanks,
> Marek
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Soby et. al.,
I wanna kick off a little discussion about how TF-A intends to deal
with in-tree platform ports as they get older and the interest in
maintaining them drops off. Concretely, I noticed that the
plat/nvidia/tegra platforms no longer build since the removal of the
deprecated console API in https://review.trustedfirmware.org/842 last
month. There has been a patch suggestion to fix it uploaded at
https://review.trustedfirmware.org/1192 for two months, but it hasn't
moved forward because it seems that Arm thinks it's on the platform
maintainer (Nvidia) to finish up and test the patch, and they don't
seem to be responding.
This creates a problem for downstream projects like coreboot and
Chrome OS that use Trusted Firmware on Tegra chips and build-test them
in their CI systems. My assumption when setting up the Trusted
Firmware integration for them was that the Trusted Firmware CI would
build test all in-tree platforms for every commit anyway, so we could
always assume that all platforms build on the current master... but
clearly, that assumption broke in this case. (I guess because you
manually overrode the CI in https://review.trustedfirmware.org/842? Or
does it not test all platforms anyway?) So now, coreboot is stuck on
an old TF-A version and cannot move forward for any platform until we
either kick out the Tegra SoCs or get the problem fixed in TF-A (which
is a problem with the testing because I don't have a Tegra board on
hand either).
How do you think we should solve issues like this? Is keeping
platforms that don't build in the tree an intended state? Is there
some deadline after which you intend to remove the platform
completely? Or would it be better to just merge "best effort" commits
like https://review.trustedfirmware.org/1192 that we think should do
the right thing for the platform (and at least makes it build again),
even if nobody is around to test it on real hardware?
To give some experience from the coreboot project, I think it's an
unfortunate truth that SoC vendors just tend to lose interest in
maintaining hardware once it's more than 2-3 years old. At that point
the open-source community has to jump in to continue maintenance, and
they can only do it on a best effort basis. It's not possible to
always find someone with the right hardware and time to test it for
all these old platforms whenever you're trying to do some large,
project wide API change, so eventually you'll just have to accept
patches that haven't been tested for them. Most of the times (if
reviewers pay attention) it works well, sometimes they break. If they
do, eventually someone will notice and then they'll have to bisect and
fix it. I believe Linux is essentially doing the same thing for
lesser-used hardware. It's either that, or you have to constantly kick
out old platforms after a few years. (From the coreboot point of view,
kicking the Tegra platforms out of TF-A would mean we're forced to
remove them from coreboot as well, which would be unfortunate.)
Let me know what you think!
Julius
Hi Julius,
It’s a valid issue you have raised. In general we rely on the platform maintainer to work with us to keep their platform port fresh and in this case we proposed some changes and was looking for feedback from the maintainer. We try in our internal standups at least once a week to look for patch reviews that have had no work on them for 21 days and if we do identify any we start chasing to progress these. Eventually if after several attempts we cannot get the patch to progress we would generally look to abandon if it’s the patch originator we cannot contact. In this case it was the platform maintainer who we needed a review from and you managed to get Varun to notice the patches. If we had not managed to contact them then we would have had to make a call on if to submit the changes or not to at least get the build working even though we would not be able to test them. I would like to think in the case of a broken build we would take that option rather than abandon.
I think this issue is made a little worse in that the CI results are not yet open so not obvious to everybody although hopefully that will be eventually addressed with the proposed Open CI system on trustedfirmware.org where build results will be available. On top of that if partners want to engage in providing a board available that could be integrated into the LAVA farm that’s part of the CI system and would also be tested.
Joanna
On 03/08/2019, 01:10, "TF-A on behalf of Julius Werner via TF-A" <tf-a-bounces(a)lists.trustedfirmware.org on behalf of tf-a(a)lists.trustedfirmware.org> wrote:
> Thanks for the email, Julius. To be clear, we very well intend to be part of the TF-A project. Having said that, I was not aware of the two commits you mentioned in the email and di not know that Tegra builds are broken in the master branch.
Thanks. You were CCed on the patch so I assumed you would've seen it.
If not, maybe your email address isn't set correctly in your Gerrit
account or something? I've already pushed an update to
https://review.trustedfirmware.org/1192 which I think should fix the
issue for Tegra, but I need someone to test it.
Nevertheless, I think it's a good idea to answer these questions in a
general case (e.g. whether we can make sure that we won't break the
build on master even if there are temporary issues with certain
platforms), because it's probably going to become relevant again
sooner or later even if the Tegra issue gets fixed now.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi David/ATF Support,
An excerpt from the commit message to CVE-2017-15031 is "Additionally,
PMCR_EL0 is added to the list of registers that are saved and restored
during a world switch."
My question is why it is only being saved/restored across the world
switch and not during a "normal" SMC call? When I do modify the
PMCR_EL0 in EL2 or NonSecure-EL1 and run the smc call the PMCCNTR
counter counts during the smc call and does expose secure world
timing information to NonSecure in that matter.
Thanks,
Marek
Hi,
(BCC:ing Antonio as well)
not sure if someone gets notified, but I pushed a patch set to add
Raspberry Pi 4 support to Trusted Firmware:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1629
This port is quite a departure from the existing RPi3 port, that's why I
wanted to start a discussion about it here.
I originally started by copying files. But for the sake of simplicity,
also to get away without a BL33 loader, it turned into just a BL31-only port
(for now?). This ties more into the existing RPi Foundation boot style, as
the resulting bl31.bin is a drop-in replacement for the existing
armstub8.bin. So you put your AArch64 kernel into kernel8.img and copy
bl31.bin to armstub8.bin (or use the respective config.txt options to
point to any other filename), and it should work (TM). The code will pick up
the actual kernel and DTB load address from the GPU firmware, patch the DT
to use PSCI instead of spin tables, then will drop into EL2 at the kernel
load address. There could (should?) be U-Boot or EDK-II there as well, or
any other kernel, for that matter. The only thing Linux specific we do is
to put the DTB address into x0. I guess this doesn't hurt, even if the BL33
payload does not use this information.
I would be grateful to hear some opinions about this approach.
Does that sound sensible?
Is the split of the platform directory (plat/rpi3 -> plat/rpi/rpi[34])
reasonable?
Shall we add this design as a build option to RPi3 as well?
Shall we add the "full featured" RPi3 design to RPi4 also?
Looking forward to any feedback!
Cheers,
Andre.
Hi,
On 7/3/19 11:15 AM, Sandrine Bailleux via TF-A wrote:
> We would need help from the TF-A community for analyzing and fixing
> them, especially those in platform ports and drivers. Note that there
> might be false positives, in which case we would just triage them as
> such in the tool's database.
>
> Hopefully everyone should be able to view the defects, according to the
> tool's settings. You might need to create an account on
> https://scan.coverity.com for that.
We've received a couple of requests from users to get access to the TF-A
defects database in the Coverity Scan Online service. I think it's worth
clarifying the different levels of access the tool offers and how we
envisage the defects triaging.
In Coverity Scan Online, users can have any of the following 4 roles (in
ascending order of permissions):
- Observer/User: Only sees defects summary.
- Defect Viewer.
- Contributor/Member: Can also triage defects.
- Maintainer/Owner: Also has some admin powers, like managing users and
submitting builds to be analyzed.
Right now, all users should be able to see the project summary and view
the defects in read-only mode so this is equivalent to the "Defect
viewer" role. I suspect people still need to create an account in
Coverity Scan Online and be logged in to see the data.
We would expect subsystems and platforms maintainers (i.e. people listed
in docs/maintainers.rst [1]) to manage the defects in the part of the
codebase they own, as they know best how to assess the severity of these
defects and how to fix or triage them. As such, they need to have the
"contributor/member" role in the tool. If you are such a maintainer,
please feel free to create an account and request this role.
If you would like to delegate part/all of the triaging process to a
peer, that is also possible. In this case, could you please send me an
email to indicate who you have chosen for this task? This is just to
make sure that whoever requests the "contributor/member" role has done
so with the relevant maintainer's approval.
Please be aware that those with "contributor/member" role will be able
to triage any defects in any part of the codebase, and not just in the
subsystem/platform they maintain.
"Maintainer/Owner" role will be reserved to the main maintainers (i.e.
people listed at the top of docs/maintainers.rst) for now.
Best regards,
Sandrine
[1]
https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/docs/maint…
Hi Jun,
On 7/16/19 11:30 AM, John Tsichritzis via TF-A wrote:
> Thank you for your email. Unfortunately detailed information is not available in Gerrit since CI is hosted internally. The maintainers post detailed information of the errors in case there is something that needs fixing. In this case I will post the error details in the Gerrit review itself.
>
> When a patch stack is submitted, usually we launch the tests on the topmost patch on the stack. In this case the entire branch gets tested, not a single commit. In other words, the testing doesn't do any "cherry-picking" on the patches, so even if there are dependencies between the patches this doesn't affect the test. That's why we usually launch the tests on the topmost patch.
To add on top of what John said, I would like to mention that we are
working with Linaro to have the CI loop opened up to all contributors in
the future. When this day comes, you will be able to check the error log
by yourself. In the meantime, I'm afraid you'll have to rely on Arm
maintainers to give you the details, as John said. If they forget,
please feel free to ping them in Gerrit (like you've already done for
this patch).
Best regards,
Sandrine
Dear Jun,
Thank you for your email. Unfortunately detailed information is not available in Gerrit since CI is hosted internally. The maintainers post detailed information of the errors in case there is something that needs fixing. In this case I will post the error details in the Gerrit review itself.
When a patch stack is submitted, usually we launch the tests on the topmost patch on the stack. In this case the entire branch gets tested, not a single commit. In other words, the testing doesn't do any "cherry-picking" on the patches, so even if there are dependencies between the patches this doesn't affect the test. That's why we usually launch the tests on the topmost patch.
Kind regards,
John
--
John Tsichritzis | Graduate Software Engineer
Email: john.tsichritzis(a)arm.com<mailto:john.tsichritzis@arm.com>
110 Fulbourn Road, Cambridge, CB1 9NJ, United Kingdom
https://www.arm.com/
On 16/07/2019 09.24, Jun Nie via TF-A wrote:
Hi,
I see below failure in this link:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1367
How can I check the error log? I am not sure it is due to lack of
earlier patch in patch set or something. Because local build is OK.
Patch Set 4: Verified-1
Build Failed
https://jenkins.oss.arm.com/job/tf-gerrit-tforg-l1/221/ : FAILURE
Jun
Hi Everyone,
This is regarding the header file re-organization patch that was submitted by Julius https://review.trustedfirmware.org/#/c/TF-A/trusted-firmware-a/+/1207/.
It is necessary for the headers which form the ABI/handover interface for BL31 to be able to copied separately and included in other projects. The current approach taken in the patch is to define a "raw" version of such headers and have the original header include them. This certainly is the easiest way to solve the problem. But if it possible to have a more refined solution, that would be preferable. For that I have the following questions :
1. Should the project recognize these special headers and have them organized together in a folder ? It is important to recognize that the ABI can be extended by the platform. I would expect even if these "common" headers are organized into a folder, the platform specific ones need not go together with them.
2. Should the header be restricted from including standard C library headers ?
3. Should these ABI headers be allowed to include each other ? Forward declaration might be able to solve some of the issues, but good to have a policy on this.
The current patch as such can be treated as step towards the ideal solution, if that solution needs more work/churn in the code base.
Comments welcome.
Best Regards
Soby Mathew
Hi Soby Mathew,
Thanks for your reply.
IMHO, the isolate pagetable is much more heavy. It looks like a big idea.
And if we have a dynamic mapping function, which map the service's
needed memory in the service's call can also mitigate this. But this can
be more slower.
For accessing limited resource, what's your idea?
-Feng
On 2019/7/9 4:27 下午, Soby Mathew wrote:
> Hi Feng,
> Thanks for your email. This is an interesting topic and this is an active area of work for us but in a slightly different manner. Could you please send this message to the mailing list tf-a(a)lists.trustedfirmware.org , so we can continue conversation on the list ?
>
> The mailing list info can be found here :
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
> Thanks & Regards
> Soby Mathew
>
>> -----Original Message-----
>> From: feng chen <puck.chen(a)foxmail.com>
>> Sent: 08 July 2019 16:24
>> To: Dan Handley <Dan.Handley(a)arm.com>; Soby Mathew
>> <Soby.Mathew(a)arm.com>; Sandrine Bailleux <Sandrine.Bailleux(a)arm.com>;
>> Alexei Fedorov <Alexei.Fedorov(a)arm.com>; Paul Beesley
>> <Paul.Beesley(a)arm.com>; John Tsichritzis <John.Tsichritzis(a)arm.com>
>> Subject: [RFC] isolate the memory into different pagetable for TF-A
>>
>> Hello maintainers,
>>
>> Is it possible for mapping the memory into different page-tables for TF-A?
>>
>> Since the ATF is running in EL3 mode, which is the highest level of ARM SoCs.
>>
>> And for security reason, once one service provided in TF has some
>> vulnerabilities, It can access all the memory TF mapped. And it could be more
>> acceptable.
>>
>> Thinking about the userland goto kernelland, the process use isolated page
>> tables.
>>
>> So I want to implement this for TF-A, different memory-mapping for different
>> service, and it can also use a shared mem-mapping space which all the service
>> need to use.
>>
>>
>> I want to know how do you think about this? Does this make sense to you?
>>
>>
>> Cherrs,
>>
>> Feng
>>
>
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
>
Move this folk to list
> 在 2019年7月9日,下午4:27,Soby Mathew <Soby.Mathew(a)arm.com> 写道:
>
> Hi Feng,
> Thanks for your email. This is an interesting topic and this is an active area of work for us but in a slightly different manner. Could you please send this message to the mailing list tf-a(a)lists.trustedfirmware.org , so we can continue conversation on the list ?
>
> The mailing list info can be found here :
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
> Thanks & Regards
> Soby Mathew
>
>> -----Original Message-----
>> From: feng chen <puck.chen(a)foxmail.com>
>> Sent: 08 July 2019 16:24
>> To: Dan Handley <Dan.Handley(a)arm.com>; Soby Mathew
>> <Soby.Mathew(a)arm.com>; Sandrine Bailleux <Sandrine.Bailleux(a)arm.com>;
>> Alexei Fedorov <Alexei.Fedorov(a)arm.com>; Paul Beesley
>> <Paul.Beesley(a)arm.com>; John Tsichritzis <John.Tsichritzis(a)arm.com>
>> Subject: [RFC] isolate the memory into different pagetable for TF-A
>>
>> Hello maintainers,
>>
>> Is it possible for mapping the memory into different page-tables for TF-A?
>>
>> Since the ATF is running in EL3 mode, which is the highest level of ARM SoCs.
>>
>> And for security reason, once one service provided in TF has some
>> vulnerabilities, It can access all the memory TF mapped. And it could be more
>> acceptable.
>>
>> Thinking about the userland goto kernelland, the process use isolated page
>> tables.
>>
>> So I want to implement this for TF-A, different memory-mapping for different
>> service, and it can also use a shared mem-mapping space which all the service
>> need to use.
>>
>>
>> I want to know how do you think about this? Does this make sense to you?
>>
>>
>> Cherrs,
>>
>> Feng
>>
>
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.