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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值