ARMV8的aarch64和aarch32环境下ELx级别的理解

文摘   2024-09-08 23:10   新加坡  


文章目录

    • 1、aarch32/aarch64的理解

    • 2、举例:MTK平台中的aarch32和aarch64


1、aarch32/aarch64的理解

从ARM官方文档,可以看出在aarch64和aarch32环境下,有不同的硬件框图。在aarch32下,没有EL1, monitor也是跑在secure EL1中的.
那么如果monitor跑64位,secureos跑32位又是怎样的情况呢?

其实很好理解:

  • 如果secureos和monitor都是64位,secureos跑在el1, monitor跑在el3;

  • 如果secureos和monitor都是32位,secureos和monitor都跑在EL3(secureos在svc模式、monitor在svc模式),它俩共用页表;

  • 如果monitor是64位,secureos是32位,那么secureos跑在svc模式(el1),monitor跑在el3,他俩不共用页表

2、举例:MTK平台中的aarch32和aarch64

(1)、android跑32位的情况下:

  • PL、LK、Linux Kernel、Android images(APPs) 都是32位的

  • bootrom、ATF、TEE都是64位的,TA是32位的

    (2)、android跑64位的情况下:

  • PL、LK是32位的

  • Linux Kernel、Android images(APPs)是64位的

  • bootrom、ATF、TEE都是64位的,TA是32位的

总结:

  • 不管android是32还是64, TEE都是64,TA都是32.

  • 不管android是32还是64,PL和LK都是32



ARM研习社
嵌入式软件、C语言、ARM、Linux、内核、驱动、操作系统
 最新文章