《MODEM HOST INTERFACE》,第6章,MHl register interface
该内存映射的I/O寄存器空间(MMIO)由设备硬件中的一组寄存器组成,该空间被映射到主机内存空间中。PCIe BAR-0将MMIO寄存器空间映射到主机地址空间。
该寄存器集包括配置寄存器、控制寄存器和状态寄存器、指向其他数据结构的指针,以及门铃阵列。

1. 寄存器约定
1.1 32位和64位支持
若主机支持64位寻址,软件必须使用64位访问来读写64位寄存器。
若主机仅支持32位寻址,软件必须通过两次32位访问来读写64位寄存器:
- 先访问最高有效32位
- 后访问最低有效32位
1.2 字节序(Endianness)
多字节寄存器字段遵循小端序:
- 较低地址包含字段的最低有效部分
- 字段内的字节或字符必须按小端序排列
2. MHl registers













3. 引导主机接口寄存器 (Boot host interface registers)
引导主机接口寄存器列于参见 PCIe 引导主机接口规范中。
4. 通道门铃阵列 (Channel doorbell array)
通道门铃阵列是一个最多包含 256 个门铃寄存器的阵列,每个寄存器 64 位。设备支持的每个通道在阵列中都有一个对应的门铃寄存器,通过通道 ID (channel ID) 索引。
主机使用门铃寄存器来通知设备,其在与该通道关联的传输环 (transfer ring) 中有新的工作项 (work items)。
设备支持的通道门铃寄存器数量对应于最大通道数(NCH 字段)。
通道门铃偏移寄存器 (CHDBOFF) 指向此门铃阵列。门铃阵列的基地址 (base address) 通过将 CHDBOFF 中的值加到 MMIO 基地址 (MMIO base address) 上来计算得出。

5. 事件环门铃阵列 (Event ring doorbell array)
事件环门铃阵列是一个最多包含 256 个门铃寄存器的阵列,每个寄存器 64 位。为设备支持的每个事件环定义一个门铃寄存器,通过事件环索引 (event ring index) 索引。
主机使用门铃寄存器来通知设备,其已为设备在事件环 (event ring) 中分配了新的可用元素 (available elements),供设备排队新事件 (queue new events)。
设备支持的事件环门铃寄存器数量对应于最大事件环数 (NER)。
事件环门铃偏移寄存器 (ERDBOFF) 指向此门铃阵列。门铃阵列的基地址 (base address) 通过将 ERDBOFF 中的值加到 MMIO 基地址 (MMIO base address) 上来计算得出。

6. 杂项寄存器 (Miscellaneous registers)
杂项寄存器是一组可选寄存器,用于实现不属于核心 MHI 功能的各种功能。这包括:
- 传统中断控制 (INTx)
- 时间同步 (Time synchronization) 和时间服务 (Time services)
- 其他实现定义的功能 (Other implementation defined functionality)
这组寄存器位于 ERDB 阵列之后。该寄存器组的位置由 MISCOFF 寄存器指示。
注意:设备可能不支持本节中的所有寄存器。主机必须读取寄存器的能力 ID (capability ID) 才能确定支持哪些功能。每个能力 (capability) 将指向设备支持的下一个能力。
6.1 传统中断控制 (INTx) (Legacy interrupt control (INTx))
INTx 控制寄存器包括一个 INTx 配置寄存器和一个控制寄存器阵列。控制寄存器阵列的规模从 0 个寄存器(不支持 INTx)到八个寄存器 * NSUBVEC 不等(支持 INTA、B、C 和 D)。
例如,32 位 OFFSET 寄存器(ID = 8,24 位偏移位)。


6.2 时间同步 (Time synchronization)
时间同步寄存器由主机用于将其本地时钟 (local clock) 与设备的时钟同步。以下寄存器集提供了两种时间同步机制。第一种机制是基于读取 (read based) 的;主机读取一个从设备内部参考时钟源 (internal reference clock source) 运行的自由运行时间滴答计数器 (free running time tick counter)。第二种是一个投递式命令寄存器 (posted command register),向其写入会导致设备生成一个时间同步事件 (time synchronization event),该事件包含命令接收时设备的本地时间 (local device time)。

