• GIC/ITS代码分析(1)MADT表


            MADT表以统一中断模型实现描述了系统中所有的中断。支持中断模型包括PC-AT兼容的双8259中断控制器,对于ARM处理器系统,GIC控制器。

            MADT格式如下所示:

    Field

    Byte Length

    Byte Offset

    描述

    Signature

    4

    0

    ‘APIC’

    Length

    4

    4

    MADT整个长度

    Revision

    1

    8

    5

    Checksum

    1

    9

    整个表的checksum

    OEMID

    6

    10

    OEM ID

    OEM Table ID

    8

    16

    厂商ID

    OEM Revision

    4

    24

    OEM版本

    Creator ID

    4

    28

    Vendor ID

    Creator Revision

    4

    32

    Vendor版本

    Local Interrupt Controller Address

    4

    36

    每个处理器可以访问它本地的中断控制器的32位物理地址

    Flags

    4

    40

    标志

    Interrupt Controller Structure[n]

    -

    44

    实现的中断控制器结构体

            中断控制器结构体支持的类型很多,这里仅介绍GIC相关的中断控制器结构体类型。

    1 GICD结构体

            它以全局系统中断GSIV代表所有线中断。在ARM系统中GIC管理系统中的中断。每个中断由INTID区分。ACPI中GSIV对于外设中断一一映射到GIC INTID,可能为SPI或PPI。GICD结构体将GICD描述给OS。GICD结构体如下所示:

    Field

    Byte Length

    Byte Offset

    描述

    Type

    1

    0

    0xC

    Length

    1

    1

    24

    Reserved

    2

    2

    保留必须为0

    GIC ID

    4

    4

    GICD的硬件ID

    Physical Base Address

    8

    8

    GICD的物理基地址

    System Vector Base

    4

    16

    保留,必须为0

    GIC version

    1

    20

    0x4 - GICv3

    Reserved

    3

    21

    必须为0

    2 GICC结构体

            在GIC中断模型中,逻辑处理器要求在DSDT中有一个处理器Device Object,使用GICC结构体转换每个处理器GIC信息。

            GICC结构体格式如下所示:

    Field

    Byte Length

    Byte Offset

    描述

    Type

    1

    0

    0xB

    Length

    1

    1

    80

    Reserved

    2

    2

    保留必须为0

    GIC Interface Number

    4

    4

    GIC的CPU接口编号。对于GICv3/v4,该域由平台实现

    ACPI Processor UID

    4

    8

    当处理器设备的_UID值匹配该域中的值时,OS将GICC结构与处理器Device Object关联

    Flags

    4

    12

    查看下面的GICC标志

    Parking Protocol Version

    4

    16

    ARM处理器Parking Protocol实现的版本

    Performance Interrupt GSIV

    4

    20

    GSIV用于性能monitor中断

    Parked Address

    8

    24

    处理器Parking Protocol mailbox的64位物理地址

    Physical Base Address

    8

    32

    该域保持64位物理地址,处理器可以通过该域访问GIC CPU接口

    GICV

    8

    40

    GIC虚拟CPU接口寄存器地址。

    GICH

    8

    48

    GIC虚拟接口控制块寄存器地址。

    VGIC Maintenance interrupt

    4

    56

    虚拟GIC维护中断的GSIV

    GICR Base Address

    8

    60

    该域保持对应的GICR的64位物理地址。如果所有GICR在always-on电源域,使用GICR结构体,则该域必须为0。如果GICR结构体存在于MADT中,则该域被忽略

    MPIDR

    8

    68

    该域遵守ARM架构的MPIDR格式

    Processor Power Efficiency Class

    1

    76

    描述相对应的处理器的相关的power efficiency。

    Reserved

    1

    77

    必须为0

    SPE overflow Interrupt

    2

    78

    Statistical Profiling Extension overflow GSIV

            GICC CPU Interface标志:

    GIC Flag

    Bit Length

    Bit Offset

    描述

    Enabled

    1

    0

    如果为0,处理器不能使用,操作系统不会使用它

    Performance Interface Mode

    1

    1

    0电平触发 1边沿触发

    VGIC Maintenance interrupt Mode Flags

    1

    2

    0电平触发 1边沿触发

    Reserved

    29

    3

    必须为0

    3 GICR结构体

            GICR通过提供包含GICR页的物理地址使能GICR基地址的discovery。在MADT中可以有超过一个GICR结构体。GICR结构体仅在GICv3或更高版本且将所有GICR放置always-on电源域时使用。当GICR结构体存在时,OSPM忽略GICC结构体中GICR Base Address域。

    Field

    Byte Length

    Byte Offset

    描述

    Type

    1

    0

    0xE

    Length

    1

    1

    16

    Reserved

    2

    2

    保留,必须为0

    Discovery Range Base Address

    8

    4

    包含GICR的页的64位物理地址

    Discovery Range Length

    4

    12

    GICR Discovery页的长度

    4 GIC ITS结构体

            在GICv3/v4实现中GIC ITS是可选择的。GIC ITS结构体的格式如下所示:

    Field

    Byte Length

    Byte Offset

    描述

    Type

    1

    0

    0xF

    Length

    1

    1

    20

    Reserved

    2

    2

    保留,必须为0

    GIC ITS ID

    4

    4

    包含GICR的页的64位物理地址

    Physical Base Address

    8

    8

    ITS的64位物理地址

    Reserved

    4

    16

    保留,必须为0

  • 相关阅读:
    Java基础
    手写一个PrattParser基本运算解析器4: 简述iOS的编译过程
    动手学深度学习(三)---Softmax回归
    【MAC】MacOS M2 芯片的Mysql 数据库安装与使用
    TypeScript项目配置
    使用 cmux smux 对 TCP 进行复用
    mac版本 Adobe总是弹窗提示验证问题如何解决
    7.7 网络(二)
    【论文阅读】半监督时序动作检测 Semi-Supervised Action Detection
    通过HTTP来总结网络编程知识
  • 原文地址:https://blog.csdn.net/flyingnosky/article/details/127417092