PCIe INTx 学习笔记
来源:互联网 发布:淘宝的明星店铺有哪些 编辑:程序博客网 时间:2024/06/10 07:11
PCIe INTx study
-v0.1 2015.3.28 Sherlock draft
PCIe总线驱动一般也要支持INTx中断。一般的INTx驱动是在dts中配置好(这里分析的是
ARM架构下的PCI INTx),然后在PCI的子系统中又相关的代码解析得到的。
调用链大致是:
pci_device_add() -->pcibios_add_device(dev) -->dev->irq = of_irq_parse_and_map_pci(dev, 0, 0) -->of_irq_parse_and_map_pci() /* check if pci_dev has a device_node */ -->pci_device_to_OF_node(pdev); ? /* what is pin for? */ -->pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin) -->of_irq_parse_raw /* just parse interrupt-cell, interrupt-map, * interrupt-map-mask */ --> of_get_property(...,"interrupt-cell",...") -->irq_create_of_mapping()
可见,PCI的核心代码pci_device_add()会扫面dts中的信息,然后给对应的中断分配
中断号资源。分配好中断号(virq)会写到pci_dev->irq中,供pci设备驱动注册中断handler
的时候使用。各个pci设备中注册的中断handler有时会共享一个INTx中短线(e.g. INTa)。
这时一旦一个INTx中断被触发,不同设备上的中断handler都会被调用到。可见注册的时候,
这些中断handler都应该时shareable的。
note:
pci_scan_device will set of_node in pci_dev using pci_set_of_node().if pci_dev's bus has of_node, will set of_node in pci_dev usingof_pci_find_child_device(dev->bus->dev.of_node, dev->devfn)
0 0
- PCIe INTx 学习笔记
- PCIe INTx parse in ACPI
- PCIe学习笔记分享
- PCIe 学习笔记(一)
- PCIe 学习笔记(二)
- PCIe 学习笔记(三)
- PCIe 学习笔记(四)
- PCIe学习笔记分享
- PCIe学习笔记(3)---PCIe初步
- hi3536 pcie驱动学习笔记
- DWC PCIE学习笔记(一)----->PCIE PHY接口
- PCIe学习笔记(1)---PCI相关
- PCIe学习笔记(7)--- BDF
- PCIe学习笔记(26)--- PL
- PCIe学习笔记(27)--- PL
- PCIe学习笔记(28)--- PL
- PCIe学习笔记(29)--- PL
- PCIe学习笔记(30)--- PL
- Hibernate性能调优--集合属性的延迟加载
- 2015062307 - 张瑞敏:人不成熟的五个特征(4)
- MyEclipse纯键盘操作生成所有getter setter
- 对list进行排序
- 一起学编程(5--流程)
- PCIe INTx 学习笔记
- 2015062308 - 张瑞敏:人不成熟的五个特征(5)
- list排序
- SpringMVC+Velocity整合配置
- 2015062309 - 思考不成熟的5个表现
- Redis 简单动态字符串
- 重要又容易混淆的基础概念,看了好多帖子,拼到一起了
- leetcode-Remove Duplicates from Sorted List II
- Linux TC(Traffic Control) 简介(一)