ARM-software / tf-issues

Issue tracking for the ARM Trusted Firmware project
37 stars 16 forks source link

Provide mechanism for lower ELs to handle synchronous EAs locally when `SCR_EL3.EA` is set to 1 #374

Open danh-arm opened 8 years ago

danh-arm commented 8 years ago

Setting the SCR_EL3.EA bit allows EL3 code to handle asynchronous External Aborts (EAs, a.k.a. SError interrupts). However, this also affects how synchronous EAs are handled. To quote the ARMv8 ARM (ARM DDI 0487A.e):

EA, bit [3] External Abort and SError Interrupt Routing.

  • 0 When executing at Exception levels below EL3, External Aborts and SError Interrupts are not taken to EL3. In addition, when executing at EL3:
    • SError Interrupts are not taken.
    • External Aborts are taken to EL3.
  • 1 When executing at any Exception level, External Aborts and SError Interrupts are taken to EL3.

Setting SCR_EL3.EA to 1 in Trusted Firmware currently prevents lower ELs from handling synchronous EAs locally, which can make debugging of synchronous EAs more difficult. Trusted Firmware should provide a mechanism for lower ELs to handle synchronous EAs.

Here are 2 possible solutions for this:

guanhaohz commented 4 years ago

@danh-arm Hi, is there any update for this issue? I find Arm trusted firmware has macro "HANDLE_EA_EL3_FIRST", and it seems to be used for RAS framework. So SCR_EL3.EA will only influence OS exception routing if you build with RAS feature right?

ssg-bot commented 4 years ago

Hello @danh-arm!

Thank you for raising an issue for Trusted Firmware-A.

The TF-A project has now migrated to www.trustedfirmware.org. This issue tracker will still remain accessible for some time, but only for historical reasons. From now on you should raise new issues on trustedfirmware.org.

If it is a query or a design discussion it is better discussed via the mailing list. If it is issue/bug which need to be tracked, raise an issue in the issue tracking board and also send an email to the mailing list to notify the TF-A community.

How do I raise issues for TF-A?

Please use our new issue tracking board. For this you just need to login with your existing GitHub account. We also have a guide to help you raise the issue with the appropriate labels and tags. This way it will be easier for both you and us to track and address the issue most effectively.

We are looking forward to seeing you in trustedfirmware.org!

The Trusted Firmware-A team

soby-mathew commented 4 years ago

Hi @guanhaohz , Using SDEI[1] is the recommended way for handling these faults in lower EL when routed to EL3. This support is available in TF-A. Please use TF-A mailing list as mentioned above for further queries.

[1] https://developer.arm.com/documentation/den0054/a/