完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们有一个使用 LS1046a 的定制板。我们有几个设备连接到专用 IRQ 线路,这些设备是电平触发的,低电平有效。
我们使用的是 Linux 5.4 版本的 LSDK。问题是当我尝试启用 IRQ 时出现以下错误: genirq:为 irq 72 设置触发模式 8 失败(gic_set_type+0x0/0xb0)(我不知道它是如何在这个错误消息中计算出 72 的,LS1046a 内部中断实际上是 163,但让我们忽略它) 在检查 Linux 源代码(irq-gic.c 中的 gic_set_type)后,我在第 302 行或附近看到以下代码: /* SPIs have restrictions on the supported types */ if (gicirq >= 32 && type != IRQ_TYPE_LEVEL_HIGH && type != IRQ_TYPE_EDGE_RISING) return -EINVAL; 在这种情况下,SPI 表示“共享处理器中断”(来自 ARM GIC 手册......我不得不查找它的含义),但我在 ARM 手册中找不到关于支持类型限制的任何限制。它专门讨论了可能是高电平有效或低电平有效的电平敏感中断。所以我不知道这个限制是从哪里来的。谁能给我指出一份解释其起源的文件? 继续,我注意到在 LS1046A 参考手册的第 11.3.28 节中。421,它定义了如下寄存器: 11.3.28 中断极性寄存器(SCFG_INTPCR) IRQ0INTP 0:IRQ0 高电平有效 1:IRQ0 低电平有效 IRQ1INTP 0:IRQ1 高电平有效 1:IRQ1 低电平有效 ETC... 我假设,如果我要完成这项工作,我需要通过 PBI 命令适当地设置这个寄存器。这本身很好,但是这个寄存器到底做了什么?它是否真的在将信号传递给 GIC 之前反转信号,这意味着我应该将中断声明为高电平有效并使用现有的 irq-gic 驱动程序?或者它只是改变上拉以使硅表现正常? 在那种情况下,是否有我应该用于中断的自定义驱动程序而不是 Linux 默认的 irq-gic? 或者我可以简单地注释掉上面的行并期望一切正常工作吗? 这是 DTS 树的相关部分,我在其中创建了一个外部活动低节点: &i2c2 { status = "okay"; dma-coherent; rv3028: rtc@52 { compatible = "microcrystal,rv3028"; reg = <0x52>; status = "okay"; interrupts = }; }; 是否有任何示例代码显示如何配置它以便它适用于活动低外部 IRQ 线路? 如果有人理解这个问题并且可以给我一些如何进行的指导,我将不胜感激。(旁注:我们已经严格定制了这个内核,并且真的非常不想更改版本。也许当我们准备好发布产品的 v2.0 时,但不是现在。) |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1930个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36414 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4782 浏览 1 评论
6099 浏览 1 评论
6807 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4243 浏览 0 评论
641浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
637浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
639浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
724浏览 2评论
833浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:08 , Processed in 1.284619 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号