对ARM Synchronous External Abort的理解

IoT 1个月前 admin
57 0 0
在系统中遇到一个问题,ARM CPU产生如下的异常:Synchronous External abort, not on translation table walk。

验证后发现与MMU页表页目录的转换没有关系。有一个简单的重现方式,即直接从SPI FIFO读取就会发生这个问题。

SPI的关键寄存器定义如下:
对ARM Synchronous External Abort的理解

下面的操作过程先读Status寄存器,然后将SPI Disable/Enable,然后读FiFo(这个时候接收FiFo并没有数据)就会触发错误。操作步骤如下:

  1. 读取SR(0x28), 得到0x6 
  2. 写0到SSIENR(0x0), Disable 
  3. 写1SSIENR(0x0), Enable
  4. 读DR0(0x60),从FiFo读取数据

其中第1步的0x6表示接收和发送FiFo都为空

最后一步操作就会在DR0的总线地址上产生Data Abort (ESR:96000210),进一步翻译过来就是:Synchronous External abort,not ontranslation table walk。

手册对SPI FiFo的描述,读取的时候Pop数据到hrdata总线。那么问题是当FiFo没有数据的时候,是送了一个错误到总线,导致ARM CPU产生异常吗?
对ARM Synchronous External Abort的理解

对ARM Synchronous External Abort的理解

看以下SPI AHB slave的接口:

对ARM Synchronous External Abort的理解

其中右边的hrdata/hrresp/hready_resp是输出接口:

对ARM Synchronous External Abort的理解

其中hresp是slave用来表明传输的状态,基本定义如下:

对ARM Synchronous External Abort的理解

基于以上的信息,我们可以猜测当SPI没有数据的时候,但是CPU又尝试读取的时候,SPI这边会通过HRESP送一个ERROR给CPU,而不是在HRDATA上面传输有效数据。

进一步查阅相关文档,对一个ARM CPU来说,CPU本身并不直接处理 AHB 总线上的 HRESP 错误。当 CPU在 AHB 总线上发起读写操作时,如果 slave 端返回 HRESP 错误,CPU 会产生一个Data Abort异常。

在网络上面搜索了一下,有个类似的:

https://stackoverflow.com/questions/58044852/difference-between-armv8-data-abort-exception-subtypes-not-in-translation-table

这个是说发帖者配置了MMU,在运行过程中遇到如下的问题:
- [1] Flash address range (e.g. 0x00000000)    - ESR.ISS = 0x10 (ISS.DFSC = 0x10)        - Synchronous External abort, not on translation table walk - [2] An expected unmapped address (e.g. 0x50000000)    - ESR.ISS = 0x06 (ISS.DFSC = 0x06)        - Synchronous External abort, on translation table walk, level 2


我们关注第一项错误“Synchronous External abort, not on translation table walk”。它是对Flash地址的访问。下面的回答还是到位的,点明SEA(Synchronous External Abort)是因为外设产生,然后报告到总线,那么ARM CPU得到了一个“error”的回复,然后产生这个SEA,并不是MMU映射的问题:

对ARM Synchronous External Abort的理解
最后作者的总结,说的也是这个意思:

对ARM Synchronous External Abort的理解

原文始发于微信公众号(寻隐在线):对ARM Synchronous External Abort的理解

版权声明:admin 发表于 2024年8月11日 上午9:58。
转载请注明:对ARM Synchronous External Abort的理解 | CTF导航

相关文章