.. _ip_ls_intf_mailbox: MAILBOX ========= 1. 简介 >>>>>>> 邮箱(MAILBOX) IP 是内部系统与主机处理器之间的通信通道。主机处理器通过 AXI 从机接口与邮箱通信,邮箱通过系统总线与内部系统通信。所有主机 CPU 都可以访问外部可见的 16K 字节地址映射,包括邮箱存储器、邮箱状态和邮箱控制寄存器。访问邮箱由主机 ID 和每个邮箱的状态控制,而访问中断控制完全由主机 ID 管理。 2. 主要特性 >>>>>>>>>>> MAILBOX 支持以下特性: * 可配置邮箱数量 * 支持配置输入/输出邮箱大小 * 低延迟总线从机接口 3. 功能描述 >>>>>>>>>>> 邮箱框图 ----------- 模块框图如图所示: .. _MAILBOX 邮箱框图: .. figure:: /assets/images/mailbox_block.png :alt: MAILBOX 邮箱框图 :align: center **图 3.1: 邮箱框图** 邮箱接口逻辑由以下组件组成: * 用于主机总线连接的总线从机接口。 * 用于内部处理器连接的内部总线接口。 * 访问控制逻辑,用于门控对邮箱 RAM 和中断控制器的读/写访问。 * 邮箱控制和状态逻辑。 * 两个 SRAM 接口。 * 每个活动主机 CPU 的中断控制器(用户可配置)。以及一个连接到内部处理器的内部中断。 连接描述 ------------------- 主机读取 MBX_CSR 寄存器。如果 mbxn_available = 1,主机可以连接到 Mailboxn 并且 Mailboxn 中没有命令。否则,mbxn_available = 0 表示 Mailboxn 已连接到主机或 Mailboxn 中的命令正在处理中。 如果 mbxn_available = 1,则设置 MBX_CSR 中的 mbxn_link 以连接到 Mailboxn。对应的连接 ID 和保护访问位在 MAILBOX_LINKID 寄存器中设置。MAILBOX_CSR 寄存器中的 mbxn_link 位被设置为 1。 注意: 如果从 opt 寄存器读取的 prot_av 为 0,则表示不支持保护访问。那么 MAILBOX_LINKID 寄存器中的保护访问位为 0。 断开连接描述 ------------------- MBX_CSR 寄存器的mbxn_alb_unlink 写 1 将邮箱 n 从该主机断开连接,并清除 MAILBOX_CSR 中的 mbxn_link 位。断开连接的同时写入 1b 到 mbxn_in_full 位也是可以的,表示命令可以被处理,另一个主机可以连接到输入邮箱 n。主主机也可以通过向 MAILBOX_RESET 寄存器的 mbxn_unlink 位写入 1b,将邮箱 n 从其当前主机取消连接。 注意: 如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行。如果从 opt 寄存器读取的 prot_av 为 0,则表示不支持保护访问。 存储空间 ------------------- 该邮箱具有寄存器文件和一个本地 SRAM。两者都可以直接从总线访问,并分配了存储器映射地址空间。它们具有专用的总线接口,因此具有独立的基地址。 1. 寄存器空间 有关寄存器文件的空间,请参阅 *“寄存器”* 章节 2. SRAM空间 本地 SRAM 用于存储输入数据、中间数据和结果。它具有连接到系统总线的专用总线接口,其大小为字大小。分配给 SRAM 的存储空间见表 SRAM 地址空间。 .. list-table:: 表3.1 SRAM 地址空间 :widths: 20 20 15 20 :header-rows: 1 * - 字节地址 - 名称 - 读写属性 - 描述 * - 0x2000 - 0x20FF - MAILBOX0_IN - W - 输入邮箱 0 * - 0x2000 - 0x20FF - MAILBOX0_OUT - R - 输出邮箱 0 * - 0x2100 - 0x23FF - 保留 - / - 用于邮箱 0 大小扩展到 1K 字节的空间 * - 0x2400 - 0x24FF - MAILBOX1_IN - W - 输入邮箱 1 * - 0x2400 - 0x24FF - MAILBOX1_OUT - R - 输出邮箱 1 * - 0x2500 - 0x27FF - 保留 - / - 用于邮箱 1 大小扩展到 1K 字节的空间 * - 0x2800 - 0x28FF - MAILBOX2_IN - W - 输入邮箱 2 * - 0x2800 - 0x28FF - MAILBOX2_OUT - R - 输出邮箱 2 * - 0x2900 - 0x2BFF - 保留 - / - 用于邮箱 2 大小扩展到 1K 字节的空间 * - 0x2C00 - 0x2CFF - MAILBOX3_IN - W - 输入邮箱 3 * - 0x2C00 - 0x2CFF - MAILBOX3_OUT - R - 输出邮箱 3 * - 0x2D00 - 0x2FFF - 保留 - / - 用于邮箱 3 大小扩展到 1K 字节的空间 * - 0x3000 - 0x3FFF - 保留 - / - 用于邮箱 4 ~ 7 的空间 注意: * 输入邮箱: 主机只有在连接到该邮箱时才能写入输入邮箱存储器。如果 MAILBOX_LINKID 寄存器中对应 mbx_link_id 的 mbx_prot_acc 位被设置,则对该邮箱的所有访问必须是保护类型。此外,邮箱在 MBX_CSR 寄存器中不能已处于满状态。非法的写操作将被直接忽略。 * 输出邮箱: 主机只有在是存储在该输出邮箱中的结果的目标时才能读取输出邮箱存储器。此外,如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,读访问必须具有相同的保护类型(安全/非安全)。非法的读操作将直接返回零。 内部总线寄存器 ------------------- .. list-table:: 表3.2 内部总线寄存器 :widths: 15 20 15 20 :header-rows: 1 * - 偏移量 - 寄存器名称 - 读写属性 - 功能描述 * - 0x0 - IP_VER - RO - IP 版本号 * - 0x4 - GIT_VER - RO - GIT 版本号 * - 0x8 - CSR - RW - 邮箱控制/状态寄存器 * - 0xC - RESET - RO - 邮箱复位寄存器 * - 0x10 - LINKID0 - RO - 邮箱连接 ID 寄存器 * - 0x14 - LINKID1 - RO - 邮箱连接 ID 寄存器。如果邮箱数量小于或等于 4,此寄存器不存在 * - 0x18 - LOCKOUT0 - RO - 邮箱锁定 0 寄存器。位图指示哪些主机被禁止访问邮箱 0,位n 为 1b 则阻止主机 cpu_id n * - 0x1C - LOCKOUT1 - RO - 邮箱锁定 1 寄存器。位图指示哪些主机被禁止访问邮箱 1,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于2,此寄存器不存在。 * - 0x20 - LOCKOUT2 - RO - 邮箱锁定 2 寄存器。位图指示哪些主机被禁止访问邮箱 2,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于3,此寄存器不存在。 * - 0x24 - LOCKOUT3 - RO - 邮箱锁定 3 寄存器。位图指示哪些主机被禁止访问邮箱 3,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于4,此寄存器不存在。 * - 0x28 - LOCKOUT4 - RO - 邮箱锁定 4 寄存器。位图指示哪些主机被禁止访问邮箱 4,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于5,此寄存器不存在。 * - 0x2C - LOCKOUT5 - RO - 邮箱锁定 5 寄存器。位图指示哪些主机被禁止访问邮箱 5,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于6,此寄存器不存在。 * - 0x30 - LOCKOUT6 - RO - 邮箱锁定 6 寄存器。位图指示哪些主机被禁止访问邮箱 6,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于7,此寄存器不存在。 * - 0x34 - LOCKOUT7 - RO - 邮箱锁定 7 寄存器。位图指示哪些主机被禁止访问邮箱 7,位n 为 1b 则阻止主机 cpu_id n,如果邮箱数量小于8,此寄存器不存在。 * - 0x38 - INTEN1 - RW - 每个中断输入的独立使能控制位: 1'b0:禁用。 1'b1:使能。 - bit0:mbx0_in_full 中断使能 - bit1:mbx0_out_free 中断使能 - bit2:mbx1_in_full 中断使能 - bit3:mbx1_out_free 中断使能 - bit4:mbx2_in_full 中断使能 - bit5:mbx2_out_free 中断使能 - bit6:mbx3_in_full 中断使能 - bit7:mbx3_out_free 中断使能 - bit8:mbx4_in_full 中断使能 - bit9:mbx4_out_free 中断使能 - bit10:mbx5_in_full 中断使能 - bit11:mbx5_out_free 中断使能 - bit12:mbx6_in_full 中断使能 - bit13:mbx6_out_free 中断使能 - bit14:mbx7_in_full 中断使能 - bit15:mbx7_out_free 中断使能 - bit16-bit31:保留 * - 0x3C - INTST1 - RW - 这些位反映中断的状态: 1'b0:不活动。 1'b1:挂起。 - bit0:mbx0_in_full 中断状态 - bit1:mbx0_out_free 中断状态 - bit2:mbx1_in_full 中断状态 - bit3:mbx1_out_free 中断状态 - bit4:mbx2_in_full 中断状态 - bit5:mbx2_out_free 中断状态 - bit6:mbx3_in_full 中断状态 - bit7:mbx3_out_free 中断状态 - bit8:mbx4_in_full 中断状态 - bit9:mbx4_out_free 中断状态 - bit10:mbx5_in_full 中断状态 - bit11:mbx5_out_free 中断状态 - bit12:mbx6_in_full 中断状态 - bit13:mbx6_out_free 中断状态 - bit14:mbx7_in_full 中断状态 - bit15:mbx7_out_free 中断状态 - bit16-bit31:保留 * - 0x5C - OPT - RO - 邮箱内部配置选项,与 MAILBOX_RF 寄存器的 OPT 相同。 * - 0x60 - FROZE - RW - - Bit0 写入 1'b1 冻结 RID_VAL,RID_MASK,WID_VAL 和 WID_MASK 寄存器。 - 如果 froze 位为 1,写入 RID_VAL, RID_MASK,WID_VAL 和 WID_MASK 将被忽略且读取返回 0,除非系统复位否则无法清除。 - 仅内部 CPU 有,主机无该寄存器 * - 0x64 - RID_VAL0 - RW - 主机 id0 的 rid_val,当 host_bus_rid & rid_mask0 = rid_val0 & rid_mask0 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x68 - RID_VAL1 - RW - 主机 id1 的 rid_val,当 host_bus_rid & rid_mask1 = rid_val1 & rid_mask1 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x6C - RID_VAL2 - RW - 主机 id2 的 rid_val,当 host_bus_rid & rid_mask2 = rid_val2 & rid_mask2 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x70 - RID_VAL3 - RW - 主机 id3 的 rid_va3,当 host_bus_rid & rid_mask1 = rid_val3 & rid_mask3 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0xE4 - RID_MASK0 - RW - 主机 id0 的 rid_mask,当 host_bus_rid & rid_mask0 = rid_val0 & rid_mask0 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0xE8 - RID_MASK1 - RW - 主机 id1 的 rid_mask,当 host_bus_rid & rid_mask1 = rid_val1 & rid_mask1 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0xEC - RID_MASK2 - RW - 主机 id2 的 rid_mask,当 host_bus_rid & rid_mask2 = rid_val2 & rid_mask2 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0xF0 - RID_MASK3 - RW - 主机 id3 的 rid_mask,当 host_bus_rid & rid_mask3 = rid_val3 & rid_mask3 时,主机有 mailbox 的读访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x164 - WID_VAL0 - RW - 主机 id0 的 wid_val,当 host_bus_wid & wid_mask0 = wid_val0 & wid_mask0 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x168 - WID_VAL1 - RW - 主机 id1 的 wid_val,当 host_bus_wid & wid_mask1 = wid_val1 & wid_mask1 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x16C - WID_VAL2 - RW - 主机 id2 的 wid_val,当 host_bus_wid & wid_mask2 = wid_val2 & wid_mask2 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x170 - WID_VAL3 - RW - 主机 id3 的 wid_val,当 host_bus_wid & wid_mask3 = wid_val3 & wid_mask3 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x1E4 - WID_MASK0 - RW - 主机 id0 的 wid_mask,当 host_bus_wid & wid_mask0 = wid_val0 & wid_mask0 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x1E8 - WID_MASK1 - RW - 主机 id1 的 wid_mask,当 host_bus_wid & wid_mask1 = wid_val1 & wid_mask1 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x1EC - WID_MASK2 - RW - 主机 id2 的 wid_mask,当 host_bus_wid & wid_mask2 = wid_val2 & wid_mask2 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 * - 0x1F0 - WID_MASK3 - RW - 主机 id3 的 wid_mask,当 host_bus_wid & wid_mask3 = wid_val3 & wid_mask3 时,主机有 mailbox 的写访问权限,由内部 CPU 设置,,主机无该寄存器 编程模型 ------------------- 连接步骤 ~~~~~~~~~~~~~~~~~~~~ 1. 主主机编程 LOCKOUT 寄存器以解锁邮箱 2. 主机编程 INTEN 寄存器中的 mbx_linkable 位,然后读取 CSR 寄存器中的 mbx_alb_unlink 位,确认所要访问的邮箱处于可连接状态 3. 主机编程 CSR 寄存器中的 mbx_link 位以连接对应的邮箱 4. 主机读取 CSR 寄存器中的 mbx_link 位并读取 LINKID 寄存器中的 mbx_link_id,判断连接成功还是失败 5. 如果连接成功,主机编程 INTEN 寄存器中的 mbx_ifre 和 mbx_done 位 主机写步骤 ~~~~~~~~~~~~~~~~~~~~ 1. 主机将数据编程到 MAILBOX_IN SRAM 2. 主机编程 CSR 寄存器中的 mbx_in_full 位,表示写结束,等待内部 CPU 读取。 主机读步骤 ~~~~~~~~~~~~~~~~~~~~ 1. 主机读取 INTST 寄存器中的 mbx_done 位,直到 mbx_done 为 1 2. 主机从 SRAM MAILBOX_OUT 读取数据 3. 主机清除 INIST 寄存器中的 mbx_done 位 4. 主机清除 CSR 寄存器中的 mbx_out_full 位 内部 CPU 初始化 ~~~~~~~~~~~~~~~~~~~~ 1. 内部 CPU 在 INTEN1 寄存器中编程中断使能 2. 如果存在 ID_VAL 和 ID_MASK 寄存器,则需要配置 ID_VAL、ID_MASK 和 FROZE 寄存器 内部 CPU 读步骤 ~~~~~~~~~~~~~~~~~~~~ 1. 内部 CPU 读取 INTST 寄存器中的 mbx_in_full 位。直到 mbx_in_full 为 1 2. 内部 CPU 从 SRAM MAILBOX_IN 读取数据 3. 内部 CPU 清除 INTST 寄存器中的 mbx_in_full 位 4. 内部 CPU 清除 CSR 寄存器中的 mbx_in_full 位 内部 CPU 写步骤 ~~~~~~~~~~~~~~~~~~~~ 1. 内部 CPU 将数据编程到 MAILBOX_OUT SRAM 2. 内部 CPU 编程 CSR 寄存器中的 mbx_out_full 位 4. 中断 >>>>>>>>>>> 中断控制器的实现方式是每个活动主机都连接到自己的控制器,而所有中断控制器都位于存储映射中的相同地址。这是通过在寄存器访问期间考虑 cpu_id 和 prot 输入来实现的。 中断使能控制(INTEN)寄存器用于选择启用哪个中断源。中断状态(INTST)寄存器允许主机读取状态。 5. 寄存器 >>>>>>>>>>>>>> MAILBOX_RF 寄存器 ------------------------ MAILBOX_RF 中的寄存器及其对应的偏移量见表 MAILBOX_RF 中寄存器的偏移地址 .. list-table:: 表 5.1:MAILBOX_RF 中寄存器的偏移地址 :widths: 10 25 46 :header-rows: 1 * - 偏移量 - 寄存器名称 - 功能描述 * - 0x0 - IP_VER - IP 版本号 * - 0x4 - GIT_VER - Git 版本号 * - 0x8 - CSR - 邮箱控制/状态寄存器 * - 0xC - RESET - 邮箱复位寄存器 * - 0x10 - LINKIDO - 邮箱连接 ID 0 寄存器 * - 0x14 - LINKID1 - 邮箱连接 ID 1 寄存器 * - 0x18 - LOCKOUTO - 邮箱锁定 0 寄存器 * - 0x1C - LOCKOUT1 - 邮箱锁定 1 寄存器 * - 0x20 - LOCKOUT2 - 邮箱锁定 2 寄存器 * - 0x24 - LOCKOUT3 - 邮箱锁定 3 寄存器 * - 0x28 - LOCKOUT4 - 邮箱锁定 4 寄存器 * - 0x2C - LOCKOUT5 - 邮箱锁定 5 寄存器 * - 0x30 - LOCKOUT6 - 邮箱锁定 6 寄存器 * - 0x34 - LOCKOUT7 - 邮箱锁定 7 寄存器 * - 0x38 - INTEN - 中断使能控制寄存器 * - 0x3C - INTST - 中断状态寄存器 * - 0x5C - OPT - 邮箱内部配置选项 IP 版本号寄存器 ~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x0`` .. list-table:: 表 5.2:IP_VER 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - IP_VER - 23:0 - RO - 0x020100 - IP 版本号 * - Reserved - 31:24 - / - 0x0 - / GIT 版本号寄存器 ~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x4`` .. list-table:: 表 5.3:GIT_VER 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - GIT_VER - 31:0 - RO - 0x0 - Git 版本号 邮箱控制/状态寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x8`` .. list-table:: 表 5.4:CSR 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx0_in_full - 0 - RW - 0x0 - - 读取:只能被连接到邮箱 0 的主机读取为 1b - 1'b0: 未满,输入邮箱 0 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 0 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 0 后设置此位为 1;内部控制器从输入邮箱 0 读取数据后,此位将被清除 * - mbx0_out_full - 1 - RW - 0x0 - - 读取:只能被连接到邮箱 0 的主机读取为 1b - 1'b0: 未满,输出邮箱 0 为空 - 1'b1: 已满,输出邮箱 0 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 0 中令牌的目标主机可以通过在此写入 1b 来清除 mbx0_out_full 位;mbx0_out_full 将由内部控制器设置。 * - mbx0_link - 2 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 0 - 1'b1: 已连接,该主机已连接到邮箱 0 - 写入 1b 将邮箱 0 连接到该主机,仅当在此写入操作时输入邮箱 0 未满且输入邮箱 0 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx0_alb_unlink - 3 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 0 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 0 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 0 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx0_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx1_in_full - 4 - RW - 0x0 - - 读取:只能被连接到邮箱 1 的主机读取为 1b - 1'b0: 未满,输入邮箱 1 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 1 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 1 后设置此位为 1;内部控制器从输入邮箱 1 读取数据后,此位将被清除 * - mbx1_out_full - 5 - RW - 0x0 - - 读取:只能被连接到邮箱 1 的主机读取为 1b - 1'b0: 未满,输出邮箱 1 为空 - 1'b1: 已满,输出邮箱 1 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 1 中令牌的目标主机可以通过在此写入 1b 来清除 mbx1_out_full 位;mbx1_out_full 将由内部控制器设置。 * - mbx1_link - 6 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 1 - 1'b1: 已连接,该主机已连接到邮箱 1 - 写入 1b 将邮箱 1 连接到该主机,仅当在此写入操作时输入邮箱 1 未满且输入邮箱 0 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx1_alb_unlink - 7 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 1 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 1 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 1 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx0_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx2_in_full - 8 - RW - 0x0 - - 读取:只能被连接到邮箱 2 的主机读取为 1b - 1'b0: 未满,输入邮箱 2 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 2 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 2 后设置此位为 1;内部控制器从输入邮箱 2 读取数据后,此位将被清除 * - mbx2_out_full - 9 - RW - 0x0 - - 读取:只能被连接到邮箱 2 的主机读取为 1b - 1'b0: 未满,输出邮箱 2 为空 - 1'b1: 已满,输出邮箱 2 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 2 中令牌的目标主机可以通过在此写入 1b 来清除 mbx0_out_full 位;mbx2_out_full 将由内部控制器设置。 * - mbx2_link - 10 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 2 - 1'b1: 已连接,该主机已连接到邮箱 2 - 写入 1b 将邮箱 2 连接到该主机,仅当在此写入操作时输入邮箱 2 未满且输入邮箱 2 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx2_alb_unlink - 11 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 2 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 2 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 2 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx2_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx3_in_full - 12 - RW - 0x0 - - 读取:只能被连接到邮箱 3 的主机读取为 1b - 1'b0: 未满,输入邮箱 3 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 3 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 3 后设置此位为 1;内部控制器从输入邮箱 3 读取数据后,此位将被清除 * - mbx3_out_full - 13 - RW - 0x0 - - 读取:只能被连接到邮箱 3 的主机读取为 1b - 1'b0: 未满,输出邮箱 3 为空 - 1'b1: 已满,输出邮箱 3 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 3 中令牌的目标主机可以通过在此写入 1b 来清除 mbx3_out_full 位;mbx3_out_full 将由内部控制器设置。 * - mbx3_link - 14 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 3 - 1'b1: 已连接,该主机已连接到邮箱 3 - 写入 1b 将邮箱 3 连接到该主机,仅当在此写入操作时输入邮箱 3 未满且输入邮箱 3 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx3_alb_unlink - 15 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 3 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 3 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 3 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx3_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx4_in_full - 16 - RW - 0x0 - - 读取:只能被连接到邮箱 4 的主机读取为 1b - 1'b0: 未满,输入邮箱 4 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 4 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 4 后设置此位为 1;内部控制器从输入邮箱 4 读取数据后,此位将被清除 * - mbx4_out_full - 17 - RW - 0x0 - - 读取:只能被连接到邮箱 4 的主机读取为 1b - 1'b0: 未满,输出邮箱 4 为空 - 1'b1: 已满,输出邮箱 4 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 4 中令牌的目标主机可以通过在此写入 1b 来清除 mbx4_out_full 位;mbx4_out_full 将由内部控制器设置。 * - mbx4_link - 18 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 4 - 1'b1: 已连接,该主机已连接到邮箱 4 - 写入 1b 将邮箱 4 连接到该主机,仅当在此写入操作时输入邮箱 4 未满且输入邮箱 4 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx4_alb_unlink - 19 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 4 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 4 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 4 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx4_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx5_in_full - 20 - RW - 0x0 - - 读取:只能被连接到邮箱 5 的主机读取为 1b - 1'b0: 未满,输入邮箱 5 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 5 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 5 后设置此位为 1;内部控制器从输入邮箱 5 读取数据后,此位将被清除 * - mbx5_out_full - 21 - RW - 0x0 - - 读取:只能被连接到邮箱 5 的主机读取为 1b - 1'b0: 未满,输出邮箱 5 为空 - 1'b1: 已满,输出邮箱 5 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 5 中令牌的目标主机可以通过在此写入 1b 来清除 mbx5_out_full 位;mbx5_out_full 将由内部控制器设置。 * - mbx5_link - 22 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 5 - 1'b1: 已连接,该主机已连接到邮箱 5 - 写入 1b 将邮箱 5 连接到该主机,仅当在此写入操作时输入邮箱 5 未满且输入邮箱 5 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx5_alb_unlink - 23 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 5 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 5 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 5 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx5_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx6_in_full - 24 - RW - 0x0 - - 读取:只能被连接到邮箱 6 的主机读取为 1b - 1'b0: 未满,输入邮箱 6 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 6 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 6 后设置此位为 1;内部控制器从输入邮箱 6 读取数据后,此位将被清除 * - mbx6_out_full - 25 - RW - 0x0 - - 读取:只能被连接到邮箱 6 的主机读取为 1b - 1'b0: 未满,输出邮箱 6 为空 - 1'b1: 已满,输出邮箱 6 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 6 中令牌的目标主机可以通过在此写入 1b 来清除 mbx6_out_full 位;mbx6_out_full 将由内部控制器设置。 * - mbx6_link - 26 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 6 - 1'b1: 已连接,该主机已连接到邮箱 6 - 写入 1b 将邮箱 6 连接到该主机,仅当在此写入操作时输入邮箱 6 未满且输入邮箱 6 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx6_alb_unlink - 27 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 6 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 6 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 6 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx6_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 * - mbx7_in_full - 28 - RW - 0x0 - - 读取:只能被连接到邮箱 7 的主机读取为 1b - 1'b0: 未满,输入邮箱 7 可用并准备接收新数据 - 1'b1: 已满,输入邮箱 7 包含已交给内部控制器的数据 - 写入:连接的主机在将数据写入输入邮箱 7 后设置此位为 1;内部控制器从输入邮箱 7 读取数据后,此位将被清除 * - mbx7_out_full - 29 - RW - 0x0 - - 读取:只能被连接到邮箱 7 的主机读取为 1b - 1'b0: 未满,输出邮箱 7 为空 - 1'b1: 已满,输出邮箱 7 包含给该主机的输出数据,主机现在可以读取输出邮箱 RAM 获取 - 写入:输出邮箱 7 中令牌的目标主机可以通过在此写入 1b 来清除 mbx7_out_full 位;mbx7_out_full 将由内部控制器设置。 * - mbx7_link - 30 - RW - 0x0 - - 读取 - 1'b0: 未连接,该主机未连接到邮箱 7 - 1'b1: 已连接,该主机已连接到邮箱 7 - 写入 1b 将邮箱 7 连接到该主机,仅当在此写入操作时输入邮箱 7 未满且输入邮箱 7 尚未连接到另一个主机时才能执行。如果连接成功,则此位将变为 1b - 注意:当使用保护写访问设置此位时,MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位将设置:表示所有对该邮箱的进一步访问必须使用保护访问执行 * - mbx7_alb_unlink - 31 - RW - 0x1 - - 读取,可用于连接 - 1'b0: 输入邮箱 7 已连接到主机或已装满正在处理的数据 - 1'b1: 输入邮箱 7 可供该主机连接且不包含数据 - 写入,可取消连接 - 写入 1b 将邮箱 7 从该主机取消连接,并清除 MAILBOX_STAT 中的 mbx7_linked 位; - 注意:如果 MAILBOX_LINKID 寄存器中对应邮箱的 mbx_prot_acc 位被设置,则取消连接操作必须通过保护写访问执行 邮箱复位寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0xC`` .. list-table:: 表 5.5:RESET 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - 保留 - 0 - / - 0x0 - / * - mbx0_out_empty - 1 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx0_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 2 - / - 0x0 - / * - mbx0_unlink - 3 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx0_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 4 - / - 0x0 - / * - mbx1_out_empty - 5 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx1_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 6 - / - 0x0 - / * - mbx1_unlink - 7 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx1_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 8 - / - 0x0 - / * - mbx2_out_empty - 9 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx2_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 10 - / - 0x0 - / * - mbx2_unlink - 11 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx2_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 12 - / - 0x0 - / * - mbx3_out_empty - 13 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx3_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 14 - / - 0x0 - / * - mbx3_unlink - 15 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx3_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 16 - / - 0x0 - / * - mbx4_out_empty - 17 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx4_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 18 - / - 0x0 - / * - mbx4_unlink - 19 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx4_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 20 - / - 0x0 - / * - mbx5_out_empty - 21 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx5_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 22 - / - 0x0 - / * - mbx5_unlink - 23 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx5_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 24 - / - 0x0 - / * - mbx6_out_empty - 25 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx6_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 26 - / - 0x0 - / * - mbx6_unlink - 27 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx6_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 * - 保留 - 28 - / - 0x0 - / * - mbx7_out_empty - 29 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 来清除 MBX_CSR 中的 mbx7_out_full 位。其他主机写入 1b 或任何主机写入 0b 无效 * - 保留 - 30 - / - 0x0 - / * - mbx7_unlink - 31 - W1C - 0x0 - 仅可设置:主主机可以通过在此写入 1b 将邮箱 0 从其当前主机取消连接,清除 MBX_CSR 中的 mbx7_linked 位。其他主机写入 1b 或任何主机写入 0b 无效。注意:主主机必须使用保护写访问;非保护访问无效。 邮箱连接 ID 0 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x10`` .. list-table:: 表 5.6:LINKID0 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx0_link_id - 1:0 - RO - 0x0 - 指示连接到输入邮箱 0 的主机的 cpu_id * - 保留 - 6:2 - / - 0x0 - / * - mbx0_prot_acc - 7 - RO - 0x0 - - 1'b0:非保护,邮箱 0 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 0 仅当主机使用保护访问时才可访问 * - mbx1_link_id - 9:8 - RO - 0x0 - 指示连接到输入邮箱 1 的主机的 cpu_id * - 保留 - 14:10 - / - 0x0 - / * - mbx1_prot_acc - 15 - RO - 0x0 - - 1'b0:非保护,邮箱 1 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 1 仅当主机使用保护访问时才可访问 * - mbx2_link_id - 17:16 - RO - 0x0 - 指示连接到输入邮箱 2 的主机的 cpu_id * - 保留 - 22:18 - / - 0x0 - / * - mbx2_prot_acc - 23 - RO - 0x0 - - 1'b0:非保护,邮箱 2 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 2 仅当主机使用保护访问时才可访问 * - mbx3_link_id - 25:24 - RO - 0x0 - 指示连接到输入邮箱 3 的主机的 cpu_id * - 保留 - 30:26 - / - 0x0 - / * - mbx3_prot_acc - 31 - RO - 0x0 - - 1'b0:非保护,邮箱 3 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 3 仅当主机使用保护访问时才可访问 邮箱连接 ID 1 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x14`` .. list-table:: 表 5.7:LINKID1 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx4_link_id - 1:0 - RO - 0x0 - 指示连接到输入邮箱 4 的主机的 cpu_id * - 保留 - 6:2 - / - 0x0 - / * - mbx4_prot_acc - 7 - RO - 0x0 - - 1'b0:非保护,邮箱 4 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 4 仅当主机使用保护访问时才可访问 * - mbx5_link_id - 9:8 - RO - 0x0 - 指示连接到输入邮箱 5 的主机的 cpu_id * - 保留 - 14:10 - / - 0x0 - / * - mbx5_prot_acc - 15 - RO - 0x0 - - 1'b0:非保护,邮箱 5 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 5 仅当主机使用保护访问时才可访问 * - mbx6_link_id - 17:16 - RO - 0x0 - 指示连接到输入邮箱 6 的主机的 cpu_id * - 保留 - 22:18 - / - 0x0 - / * - mbx6_prot_acc - 23 - RO - 0x0 - - 1'b0:非保护,邮箱 6 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 6 仅当主机使用保护访问时才可访问 * - mbx7_link_id - 25:24 - RO - 0x0 - 指示连接到输入邮箱 7 的主机的 cpu_id * - 保留 - 30:26 - / - 0x0 - / * - mbx7_prot_acc - 31 - RO - 0x0 - - 1'b0:非保护,邮箱 7 可以通过主机的保护或非保护访问访问 - 1'b1:保护,邮箱 7 仅当主机使用保护访问时才可访问 邮箱锁定 0 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x18`` .. list-table:: 表 5.8:LOCKOUTO 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx0 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 0,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 1 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x1C`` .. list-table:: 表 5.9:LOCKOUT1 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx1 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 1,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 2 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x20`` .. list-table:: 表 5.10:LOCKOUT2 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx2 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 2,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 3 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x24`` .. list-table:: 表 5.11:LOCKOUT3 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx3 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 3,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 4 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x28`` .. list-table:: 表 5.12:LOCKOUT4 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx4 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 4,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 5 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x2C`` .. list-table:: 表 5.13:LOCKOUT5 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx5 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 5,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 6 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x30`` .. list-table:: 表 5.14:LOCKOUT6 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx6 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 6,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱锁定 7 寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x34`` .. list-table:: 表 5.15:LOCKOUT7 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx7 - 3:0 - RW - 0xE - 位图指示哪些主机被禁止访问邮箱 7,位 n 为 1b 则阻止主机 cpu_id n。 * - 保留 - 31:4 - / - 0x0 - / 邮箱中断使能寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x38`` .. list-table:: 表 5.16:INTEN 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx0_ifre - 0 - RW - 0x0 - 该主机已连接到邮箱 0,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx0_done - 1 - RW - 0x0 - 输出邮箱 0 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx1_ifre - 2 - RW - 0x0 - 该主机已连接到邮箱 1,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx1_done - 3 - RW - 0x0 - 输出邮箱 1 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx2_ifre - 4 - RW - 0x0 - 该主机已连接到邮箱 2,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx2_done - 5 - RW - 0x0 - 输出邮箱 2 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx3_ifre - 6 - RW - 0x0 - 该主机已连接到邮箱 3,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx3_done - 7 - RW - 0x0 - 输出邮箱 3 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx4_ifre - 8 - RW - 0x0 - 该主机已连接到邮箱 4,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx4_done - 9 - RW - 0x0 - 输出邮箱 4 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx5_ifre - 10 - RW - 0x0 - 该主机已连接到邮箱 5,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx5_done - 11 - RW - 0x0 - 输出邮箱 5 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx6_ifre - 12 - RW - 0x0 - 该主机已连接到邮箱 6,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx6_done - 13 - RW - 0x0 - 输出邮箱 6 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx7_ifre - 14 - RW - 0x0 - 该主机已连接到邮箱 7,并且该邮箱当前未满 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx7_done - 15 - RW - 0x0 - 输出邮箱 7 包含一个给该主机的邮箱数据 - 1'b0:中断禁用 - 1'b1:中断使能 * - mbx_linkable - 16 - RW - 0x0 - 该中断信号表示至少还有一个邮箱可以被访问此寄存器的主机连接(存在一个未连接、空的输入邮箱,其锁定位对该主机为 0b) * - 保留 - 31:17 - / - 0x0 - / 邮箱中断状态寄存器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x3C`` .. list-table:: 表 5.17:INTST 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx0_ifre - 0 - RW - 0x0 - 该主机已连接到邮箱 0,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx0_done - 1 - RW - 0x0 - 输出邮箱 0 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx1_ifre - 2 - RW - 0x0 - 该主机已连接到邮箱 1,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx1_done - 3 - RW - 0x0 - 输出邮箱 1 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx2_ifre - 4 - RW - 0x0 - 该主机已连接到邮箱 2,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx2_done - 5 - RW - 0x0 - 输出邮箱 2 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx3_ifre - 6 - RW - 0x0 - 该主机已连接到邮箱 3,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx3_done - 7 - RW - 0x0 - 输出邮箱 3 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx4_ifre - 8 - RW - 0x0 - 该主机已连接到邮箱 4,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx4_done - 9 - RW - 0x0 - 输出邮箱 4 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx5_ifre - 10 - RW - 0x0 - 该主机已连接到邮箱 5,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx5_done - 11 - RW - 0x0 - 输出邮箱 5 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx6_ifre - 12 - RW - 0x0 - 该主机已连接到邮箱 6,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx6_done - 13 - RW - 0x0 - 输出邮箱 6 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx7_ifre - 14 - RW - 0x0 - 该主机已连接到邮箱 7,并且该邮箱当前未满 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx7_done - 15 - RW - 0x0 - 输出邮箱 7 包含一个给该主机的邮箱数据 - 1'b0:不活动 - 1'b1:挂起,写入 1 清除状态位 * - mbx_linkable - 16 - RW - 0x0 - 该中断状态表示至少还有一个邮箱可以被访问此寄存器的主机连接(存在一个未连接、空的输入邮箱,其锁定位对该主机为 0b) * - 保留 - 31:17 - / - 0x0 - / 邮箱内部配置选项 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 地址偏移:``0x5C`` .. list-table:: 表 5.18:OPT 寄存器格式 :widths: 15 10 10 15 50 :header-rows: 1 * - 字段 - 位 - 访问 - 复位值 - 描述 * - mbx_num - 3:0 - RO - 0x4 - 直接指示存在的输入/输出邮箱对数量,范围 1 ~ 8(默认为 4) * - mbx_size - 5:4 - RO - 0x1 - 指示每个输入/输出邮箱的实际实现大小 - 2'b00:128 字节 - 2'b01:256 字节 - 2'b10:512 字节 - 2'b11:1K 字节 * - active_host_n - 8:6 - RO - 0x0 - 指示活动主机数量,范围 1~32 * - 保留 - 11:9 - / - 0x0 - / * - master_id - 13:12 - RO - 0x0 - 指示主主机的 cpu_id 值 * - 保留 - 16:14 - / - 0x0 - / * - prot_av - 17 - RO - 0x0 - - 1'b0:不支持保护 - 1'b1:支持保护 * - my_id - 19:18 - RO - 0x0 - 实际读取此寄存器的主机 ID 代码,即读访问期间使用的 cpu_id 输入值。 * - 保留 - 22:20 - / - 0x0 - / * - prot - 23 - RO - 0x0 - 指示实际读取此寄存器的主机的当前保护位值