CXL中的mailbox通信架构实现

		CXL MLD Config Mechanism

1 前言
本文主要描述了两种核间通信的方法,用于host侧与device侧进行通信,实现FM配置下发等功能。两种方案一种是基于cxl2.0协议的mailbox,另一种是基于cxl.io共享内存及中断的IPC。
Mailbox为cxl2.0增加的特性,其中包含了FM相关的命令定义。也因此需要得到rambus的IP支持,目前还有待商定。IPC是一种确定的可以替代的实现方案,基于pcie或cxl.io的特性都可以实现,在支持pcie或cxl的设备环境可以进行一定的demo验证。
在这里插入图片描述

2 mailbox解析
mailbox提供了向设备发出命令的能力。本节参考了CXL2.0协议中8.2.8节,mailbox的相关寄存器的描述,及8.2.9中对command接口定义,还有7.6.8中FM模块的命令格式,对通过mailbox对FM模块的配置机制进行了梳理。基于寄存器层级,对相关配置方法,通信流程进行简要说明。
2.1 mailbox命令的执行流程
Host侧
在这里插入图片描述

Device侧
对应于host侧第4条之后

  1. device polls for doorbell to be set or waits for interrupt if configure
  2. device reads command register
  3. device reads command payload registers if input payload is non-empty
  4. device execute command (set FM regs and bram) or handler in background if configured
  5. device writes MB status register with return code
  6. device writes command register with payload length
  7. device writes command payload registers if needed
  8. device clear the doorbell register
    2.2 mailbox寄存器
    2.2.1 CXL device capabilities
    用于使能配置空间mailbox特性
     Primary Mailbox Registers
    支持8.2.9中的所有命令,可以在pre-boot及os中使用,同时只有一个主体使用,注意切换事项。
     Secondary Mailbox Registers(optional)
    支持8.2.9中的部分命令,不支持中断。CXL建议备用邮箱支持8.2.9节中定义的Events, Logs, and Identify command sets。每次使时,使用它的软件都需要读取相应的配置寄存器,以找到mailbox寄存器的当前位置。
    2.2.2 Mailbox Registers(cap offset varies)
    在这里插入图片描述

 MB capabilities register(MB reg offse

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值