dtsi需要配置硬件中断号

dtsi需要配置硬件中断号,第1张

是的,使用DTSI时需要为其配置硬件中断号。DTSI(Device Tree Source Inclusion)是一种在Linux系统中用于描述硬件设备信息的机制,它岩宏使用一神散种基于文本的语言(即Device Tree Blob或DTB),以树状结构的形式描述硬件设备及其属性。

硬件中断是指在微处理器与外围设备之间进行信息传输的信号粗瞎册,是 *** 作系统中实现异步事件响应和多任务调度的重要机制。在DTSI文件中,可以通过设置中断节点的属性来为设备分配硬件中断号。

Linux内核中可使用 platform_get_irq() 函数获取 dts 文吵灶件中设置的中断号。

函数原型: int platform_get_irq(struct platform_device *dev, unsigned int num)

定义文件: drivers\base\platform.c

中断号获取函数 platform_get_irq() 调用流程如盯知下:

rk3399 使用的是 GICv3 ,对应 irq_domain->name 。

文件: drivers/irqchip/irq-gic-v3.c 。

translate() 函数实现如下:

以 RockPI 4A 单板 Debian 系统Linux 4.4内核中的获取 HDMI 中断号为例。

1、查找中断号

从手册“Rockchip RK3399 TRM V1.3 Part1.pdf”中,可以查到 HDMI_IRQ 中断号,即55。

2、 dts 配置

文件: arch/arm64/boot/dts/rockchip/rk3399.dtsi

hdmi 使用的是 GIC_SPI 中断,按照 gic_irq_domain_translate() 函数中处理,需要将中断号55减去32,得到 dts 中的中断号23。

注: interrupts = <中断类型 中断号 中断触发类型 中断分区(对应哪个CPU cluster,PPI类型中断特有)>

3、驱动函数

文凯碰消件: drivers\gpu\drm\rockchip\dw_hdmi-rockchip.c

此时, irq 返回值为55。

后续会介绍 GIC 和中断注册等实现函数。

本文基于 RockPi 4A 单板 Linux4.4 内核介绍 OPP Table 。

内核中将频咐游率、电压的相关配置放在 DTSI 文件中,这些配置信息组成的节点被称为物简迟 OPP Table(Operating Performance Points) 。

定义文件: arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi ,内容如下:

上面节点中的相关属性含义如下:

1、 opp-shared :表示 opp-table1 是小核的各 CPU 共用。

2、 rockchip,temp-hysteresis :迟滞参数,防止频繁进入高温或低温,单位:毫摄氏度。

3、 rockchip,low-temp :低温阈值。小于该值时,进入低温,大于‘该值+迟滞参数’时,恢复常温。

4、 rockchip,low-temp-min-volt :低温下最低电压,单位:微伏。

5、 nvmem-cells :从 eFUSE 中读取相关信息值(小核漏电流)。

6、 rockchip,pvtm-voltage-sel :min-pvtm(单位KHz)、max-pvtm(单位KHz)和 voltage-selector (用于匹配 opp 节点中 opp-microvolt-L* 属性的序列号)。例:pvtm值为:0 ~ 143500 使用 opp-microvolt-L0 ,143501 ~ 148500使用 opp-microvolt-L1

7、 rockchip,pvtm-freq :时钟频率(KHz),在获取 pvtm 的频率前,先设置 CPU 频率。

8、 rockchip,pvtm-volt :电压(微伏),在获取 pvtm 的频率前,先设置 CPU 电压。

9、 rockchip,pvtm-ch : PVTM 通道,格式<通道号 sel的序号>

10、 rockchip,pvtm-sample-time : PVTM 采样时间,单位:毫秒。

11、 rockchip,pvtm-number : PVTM 采样个数。

12、 rockchip,pvtm-error :允许采样数据之间的误差。

13、 rockchip,pvtm-ref-temp :参考温度

14、 rockchip,pvtm-temp-prop : PVTM 随温度变化的比例系数,格式<小于参考温度的比例系数 大于参考温度的比例系数>。

15、 rockchip,thermal-zone :获取温度的 thermal-zone 。

16、 opp-microvolt-L* :电压(微伏),格式<target min max>

17、 clock-latency-ns :完成变频需要的时间,单位:纳秒。

在 RK3399 中,除了配置上述小核的 opp table 外,还设置了大核( cluster1_opp )、 gpu(gpu_opp_table) 等的相关值。查看命令如下:

注:

CPU PVTM(Process Voltage Temperature Monitor) 是一个位于 CPU 附近,能罩李反应出不同芯片之间性能差异的模块,受工艺,电压和温度 的影响。

参考:

Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt

Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8206104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存