{"action":"created","issue":{"url":"https://api.github.com/repos/ARM-software/tf-issues/issues/368","repository_url":"https://api.github.com/repos/ARM-software/tf-issues","labels_url":"https://api.github.com/repos/ARM-software/tf-issues/issues/368/labels{/name}","comments_url":"https://api.github.com/repos/ARM-software/tf-issues/issues/368/comments","events_url":"https://api.github.com/repos/ARM-software/tf-issues/issues/368/events","html_url":"https://github.com/ARM-software/tf-issues/issues/368","id":138406945,"number":368,"title":"Asynchronous exceptions not taken in EL3 on Cortex A53 r0p2 and above","user":{"login":"ljerry","id":6551820,"avatar_url":"https://avatars.githubusercontent.com/u/6551820?v=3","gravatar_id":"","url":"https://api.github.com/users/ljerry","html_url":"https://github.com/ljerry","followers_url":"https://api.github.com/users/ljerry/followers","following_url":"https://api.github.com/users/ljerry/following{/other_user}","gists_url":"https://api.github.com/users/ljerry/gists{/gist_id}","starred_url":"https://api.github.com/users/ljerry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljerry/subscriptions","organizations_url":"https://api.github.com/users/ljerry/orgs","repos_url":"https://api.github.com/users/ljerry/repos","events_url":"https://api.github.com/users/ljerry/events{/privacy}","received_events_url":"https://api.github.com/users/ljerry/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ARM-software/tf-issues/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":32,"created_at":"2016-03-04T07:47:24Z","updated_at":"2016-03-16T09:57:15Z","closed_at":null,"body":"Hi,\r\n\r\nWhen EL3 triggers an Abort Exception, the EL3 abort handler is not called and ISR_EL1 reports that an Abort is pending.\r\nSCR_EL3[EA] allows to trap Aborts from lower levels but secure EL3 interrupts are not meant to be dropped to lower EL.\r\n\r\nA similar problem occurs with FIQ (SGI in our case):\r\nWhen EL3 triggers an SGI, the core that wait-for-interrupt in EL3 is not woken up and ISR_EL1 reports that an FIQ is pending.\r\nAgain SCR_EL3 thanks to its FIQ bit allows to trap FIQ from lower levels and to exit from WFI state.\r\n\r\nAfter investigations, on r0p2 revision, despite what is stated in ARM DDI0500D TRM Cortex A53 r0p2 SCR_EL3 description in Table 4-77, asynchronous exceptions generated by the code running in EL3 are not taken in EL3 when SCR_EL3[EA] is zero.\r\nDDI0487A.b Architecture Reference Manual does not reflect the actual behaviour of r0p2.\r\n    \r\nOn the other hand DDI0487A.e Architecture Reference Manual D7.2.80 SCR_EL3 description depicts the observed behaviour.\r\n\r\nWith best regards\r\nJerry"},"comment":{"url":"https://api.github.com/repos/ARM-software/tf-issues/issues/comments/197236223","html_url":"https://github.com/ARM-software/tf-issues/issues/368#issuecomment-197236223","issue_url":"https://api.github.com/repos/ARM-software/tf-issues/issues/368","id":197236223,"user":{"login":"danh-arm","id":5684642,"avatar_url":"https://avatars.githubusercontent.com/u/5684642?v=3","gravatar_id":"","url":"https://api.github.com/users/danh-arm","html_url":"https://github.com/danh-arm","followers_url":"https://api.github.com/users/danh-arm/followers","following_url":"https://api.github.com/users/danh-arm/following{/other_user}","gists_url":"https://api.github.com/users/danh-arm/gists{/gist_id}","starred_url":"https://api.github.com/users/danh-arm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danh-arm/subscriptions","organizations_url":"https://api.github.com/users/danh-arm/orgs","repos_url":"https://api.github.com/users/danh-arm/repos","events_url":"https://api.github.com/users/danh-arm/events{/privacy}","received_events_url":"https://api.github.com/users/danh-arm/received_events","type":"User","site_admin":false},"created_at":"2016-03-16T09:57:15Z","updated_at":"2016-03-16T09:57:15Z","body":"Hi Jerry\r\n\r\nI agree that current your patch(es) should only handle the cold boot case. We can continue review of those patches in the PR itself.\r\n\r\nI've raised a separate ticket to address the handling of synchronous EAs when `SCR_EL3.EA` is set to 1: #374.\r\n\r\nRegards\r\n\r\nDan."}}