当前位置: 首页 > news >正文

如何提升wordpress网站速度网站怎么被收录

如何提升wordpress网站速度,网站怎么被收录,怎么查看网站用什么做的,好看又免费的图片素材PCIe 的 MSI 中断 前言 什么是 MSI 中断 (Message Signaled Interrupts) 概念与内容介绍待补充 正文 对 EP 的初始化 需要对 EP 的配置空间 MSI 相关功能的寄存器进行初始化,主要有两个寄存器 Message Address 和 Message Data。它们分别的含义是 EP 产生 MSI …

PCIe 的 MSI 中断

前言

  1. 什么是 MSI 中断 (Message Signaled Interrupts)
    概念与内容介绍待补充

正文

  1. 对 EP 的初始化
  • 需要对 EP 的配置空间 MSI 相关功能的寄存器进行初始化,主要有两个寄存器 Message Address 和 Message Data。它们分别的含义是 EP 产生 MSI 中断的操作是往 Message Address 寄存器的地址写入 Message Data 指定的数据,从而来产生 MSI 中断。
  • Message Address 在不同的 CPU 有不同的配置,例如 rk3568 写入的地址为 GICD 中断控制器的某个地址,其他有些 CPU 配置任意地址都可。
  • 还需要对 EP MSI 中断能力进行使能。即下图中的 Message Control Configuration MSI Control Status Register Field Descriptions 寄存器进行配置。
    MSI配置空间
    截图来自 F-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* User Guide
  1. 对 RC 的寄存器初始化
    本文以 designware IP 核的某型 CPU 为例。其他的 CPU 会存在写 GICD 的地址,和下面的配置会有区别
  • 写入 PCIE_MSI_ADDR_LO , 即需要和 EP 配置的 Message Address 相匹配。RC 会捕获 EP 写入这个地址的操作,并触发中断。
  • 写入 PCIE_MSI_INTR0_ENABLE,即使能所有的 MSI 中断
#define PCIE_MSI_ADDR_LO		0x820
#define PCIE_MSI_ADDR_HI		0x824
void dw_pcie_msi_init(struct pcie_port *pp)
{struct dw_pcie *pci = to_dw_pcie_from_pp(pp);u64 msi_target = (u64)pp->msi_data;if (!IS_ENABLED(CONFIG_PCI_MSI))return;/* Program the msi_data */dw_pcie_writel_dbi(pci, PCIE_MSI_ADDR_LO, lower_32_bits(msi_target));dw_pcie_writel_dbi(pci, PCIE_MSI_ADDR_HI, upper_32_bits(msi_target));
}
EXPORT_SYMBOL_GPL(dw_pcie_msi_init);
#define PCIE_MSI_INTR0_ENABLE		0x828
#define PCIE_MSI_INTR0_MASK		0x82C
#define PCIE_MSI_INTR0_STATUS		0x830
void dw_pcie_setup_rc(struct pcie_port *pp)
{u32 val, ctrl, num_ctrls;struct dw_pcie *pci = to_dw_pcie_from_pp(pp);/** Enable DBI read-only registers for writing/updating configuration.* Write permission gets disabled towards the end of this function.*/dw_pcie_dbi_ro_wr_en(pci);dw_pcie_setup(pci);if (pci_msi_enabled() && !pp->ops->msi_host_init) {num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL;/* Initialize IRQ Status array */for (ctrl = 0; ctrl < num_ctrls; ctrl++) {pp->irq_mask[ctrl] = ~0;dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK +(ctrl * MSI_REG_CTRL_BLOCK_SIZE),pp->irq_mask[ctrl]);dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_ENABLE +(ctrl * MSI_REG_CTRL_BLOCK_SIZE),~0);}}// 省略了其他操作
}
  1. 中断执行
    在中断服务函数中,需要读 PCIE_MSI_INTR0_STATUS 寄存器来判断是几号MSI中断,这个是由配置的 Message Data 来决定的。

  2. 中断状态清除
    需要写 PCIE_MSI_INTR0_STATUS 寄存器来清除对应的中断,否则中断会持续触发。同时也需要写 GIC 本身的寄存器来清除 PCIe 的中断。

#define PCIE_MSI_INTR0_STATUS		0x830/* MSI int handler */
irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)
{int i, pos, irq;unsigned long val;u32 status, num_ctrls;irqreturn_t ret = IRQ_NONE;struct dw_pcie *pci = to_dw_pcie_from_pp(pp);num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL;for (i = 0; i < num_ctrls; i++) {status = dw_pcie_readl_dbi(pci, PCIE_MSI_INTR0_STATUS +(i * MSI_REG_CTRL_BLOCK_SIZE));if (!status)continue;ret = IRQ_HANDLED;val = status;pos = 0;while ((pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL,pos)) != MAX_MSI_IRQS_PER_CTRL) {irq = irq_find_mapping(pp->irq_domain,(i * MAX_MSI_IRQS_PER_CTRL) +pos);generic_handle_irq(irq);pos++;}}return ret;
}
EXPORT_SYMBOL_GPL(dw_handle_msi_irq);

总结

至此,EP 可以正确触发 MSI 中断,并被 RC 捕获后往 GIC 投递 PCIe 中断。本例的 MSI 中断并不是直接写 GIC 的 ITS ((Interrupt Translation Service)在GICv3中是可选的。ITS负责接收来自外设的中断,并将它们转化为LPI INTID发送到相应的Redistributor) 产生的,而是由 RC 中转了然后投递到 GIC 的。

其他

EP 生成 MSI 中断的消息填充,图中的含义是生成一个 MSI Mwr 的 TLP 消息,其组包的数据来源,包括 Message Address 和 Message Data。
生成MSI消息

http://www.tj-hxxt.cn/news/45420.html

相关文章:

  • 西部数码网站备案北京网站优化外包
  • 陕西网站建设热线如何建立电商平台
  • 罗湖建网站公司写一篇推广商品的软文
  • 做网站用的图片百度竞价排名公司
  • 做竞价网站访问突然变少百度关键词首页排名怎么上
  • 做 cad效果图网站宁波网站推广营销
  • 同城换物网站为什么做不起来企业培训考试系统app
  • 互联网金融网站建设怎么做推广
  • web网页设计图片上海专业seo排名优化
  • 注册一个网站域名一年需要多少钱全网营销骗局揭秘
  • 站长工具爱站网易搜索引擎入口
  • dede小说网站模板下载策划推广
  • 廊坊seo排名公司windows优化大师提供的
  • 安防网站下载网站快速优化排名方法
  • 网站分析怎么做的如何查询域名注册人信息
  • 群晖dsm上的网站建设推广赚钱app排行榜
  • 如何做网站品类下载百度官方网站
  • 做网站开发的有哪些公司好网络营销课程实训报告
  • dede网站版权信息标签做网站公司哪家正规
  • vs音乐网站开发实例如何做企业网页
  • 客户管理crm系统哪家好宁波网站建设网站排名优化
  • 专门做艺术字的网站国外网站怎么推广
  • 重庆网站建设怎么样优化推广网站推荐
  • 圣诞网站怎么做长沙百度推广排名优化
  • 上海大 小企业网站制作搜索引擎推广有哪些
  • 谷德设计网案例设计seo有些什么关键词
  • 长沙公司网站的建设广东宣布即时优化调整
  • 天津建设工程信息网官网查询seo学校
  • 企业网站seo多少钱怎么优化电脑系统
  • 湖北神润建设工程有限公司网站友情链接买卖代理