Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement workaround for CVE-2018-3639 on Cortex A57/A72/A73 and A75 #1392

Merged
4 commits merged into from May 29, 2018
Merged

Implement workaround for CVE-2018-3639 on Cortex A57/A72/A73 and A75 #1392

4 commits merged into from May 29, 2018

Conversation

ghost
Copy link

@ghost ghost commented May 21, 2018

No description provided.

@danh-arm
Copy link
Contributor

Dimitris Papastamos added 4 commits May 23, 2018 12:45
This patch renames symbols and files relating to CVE-2017-5715 to make
it easier to introduce new symbols and files for new CVE mitigations.

Change-Id: I24c23822862ca73648c772885f1690bed043dbc7
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
For affected CPUs, this approach enables the mitigation during EL3
initialization, following every PE reset. No mechanism is provided to
disable the mitigation at runtime.

This approach permanently mitigates the entire software stack and no
additional mitigation code is required in other software components.

TF-A implements this approach for the following affected CPUs:

*   Cortex-A57 and Cortex-A72, by setting bit 55 (Disable load pass store) of
    `CPUACTLR_EL1` (`S3_1_C15_C2_0`).

*   Cortex-A73, by setting bit 3 of `S3_0_C15_C0_0` (not documented in the
    Technical Reference Manual (TRM)).

*   Cortex-A75, by setting bit 35 (reserved in TRM) of `CPUACTLR_EL1`
    (`S3_0_C15_C1_0`).

Additionally, a new SMC interface is implemented to allow software
executing in lower ELs to discover whether the system is mitigated
against CVE-2018-3639.

Refer to "Firmware interfaces for mitigating cache speculation
vulnerabilities System Software on Arm Systems"[0] for more
information.

[0] https://developer.arm.com/cache-speculation-vulnerability-firmware-specification

Change-Id: I084aa7c3bc7c26bf2df2248301270f77bed22ceb
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Implement static mitigation for CVE-2018-3639 on
Cortex A57 and A72.

Change-Id: I83409a16238729b84142b19e258c23737cc1ddc3
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Some CPUS may benefit from using a dynamic mitigation approach for
CVE-2018-3639.  A new SMC interface is defined to allow software
executing in lower ELs to enable or disable the mitigation for their
execution context.

It should be noted that regardless of the state of the mitigation for
lower ELs, code executing in EL3 is always mitigated against
CVE-2018-3639.

NOTE: This change is a compatibility break for any platform using
the declare_cpu_ops_workaround_cve_2017_5715 macro.  Migrate to
the declare_cpu_ops_wa macro instead.

Change-Id: I3509a9337ad217bbd96de9f380c4ff8bf7917013
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
@ghost
Copy link
Author

ghost commented May 23, 2018

jenkins: test this please

@ssg-bot
Copy link

ssg-bot commented May 25, 2018

This Pull Request reports test failures.

@ghost ghost merged commit d003b19 into ARM-software:integration May 29, 2018
@windsp
Copy link

windsp commented Jun 6, 2018

Hi dp-arm,

There seems a test/check failure and the commits do not yet be merged to master. May I know could I integrate these commits in my local code base with current status, or you suggest to integrate them after you merge these commits in master?

@ghost
Copy link
Author

ghost commented Jun 6, 2018

@windsp Yes you can rebase on integration for now. The reason they have not been merged is because we are running out of memory on some build configurations. We have a patch internally under review and will be pushed out this week.

@windsp
Copy link

windsp commented Jun 6, 2018

@dp-arm understood, thanks for the quick feedback. :)

@ghost
Copy link
Author

ghost commented Jun 8, 2018

@windsp btw, I've merged integration into master today

This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants