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

ranges属性验证

在设备树节点里增加这3个属性

	#address-cells = <3>; #size-cells = <2>;//含义解释和上面的属性值有关ranges = <0x42000000 0 0xf9c00000 0x0 0xf9d00000 0 0x00300000>;

在代码里增加这么一段代码:

       struct of_pci_range range;struct of_pci_range_parser parser;const char *range_type;of_pci_range_parser_init(&parser, pdev->dev.of_node);for_each_of_pci_range(&parser, &range) { if ((range.flags & IORESOURCE_TYPE_BITS) == IORESOURCE_IO)range_type = "IO";else if ((range.flags & IORESOURCE_TYPE_BITS) == IORESOURCE_MEM)range_type = "MEM";elserange_type = "err";printk("0x%x  %6s %#012llx..%#012llx -> %#012llx\n", \range.flags, range_type, range.cpu_addr, \range.cpu_addr + range.size - 1, range.pci_addr);}

以下是打印:

0x42000000   err 0x00f9d00000..0x00f9ffffff -> 0x00f9c00000
http://www.xdnf.cn/news/713755.html

相关文章:

  • 逻辑回归详解:从原理到实践
  • notion搭建个人知识管理库
  • 利用Python制作环保志愿者招募海报
  • 设计师如何搭建自己的素材库?
  • useRef、useForwardRef 和 useImperativeHandle
  • SpringSecurity
  • 深入了解 C# 异步编程库 AsyncEx
  • Minimax-speech-hd
  • Qt DateTimeEdit(时间⽇期的微调框)
  • 【QQ音乐】sign签名| data参数加密 | AES-GCM加密 | webpack实战 (下)
  • ElasticSearch简介及常用操作指南
  • TypeScript中?和!号用法
  • Asp.Net Core 托管服务
  • Cannot find any provider supporting AES/ECB/PKCS7Padding
  • 智能外呼系统中 NLP 意图理解的工作原理与技术实现
  • 【前端】Vue3 中实现两个组件的动态切换保活
  • 制造企业生产数据分析全解析:5大类数据定义、分析方法与落地指南
  • 【Oracle】DCL语言
  • 【深度学习新浪潮】什么是混合精度分解?
  • Docker常用命令操作指南(一)
  • OPC Client第6讲(wxwidgets):Logger.h日志记录文件(单例模式);登录后的主界面
  • 【HTML/CSS面经】
  • 各国竞争的下一代液晶技术:中国铁电液晶取得重大突破突破
  • python和风api获取天气(JSON Web Token)
  • PostgreSQL如何更新和删除表数据
  • 【达梦数据库】内存使用资源评估
  • 图片压缩工具 | 发布到咸鱼并配置网盘自动发货
  • 通义灵码2.5——基于MCP实现我的12306火车票智能查询小助手
  • 66常用控件_QTableWidget的使用
  • 如何在 Odoo 18 中创建 PDF 报告