kernel动态修改dts对应node节点的值

本文介绍了如何在kernel的start_kernel阶段,通过unflatten_device_tree后修改dts节点,以确保在驱动初始化前完成配置。内容涉及dts配置、驱动内节点修改,并给出了验证结果。
摘要由CSDN通过智能技术生成

如果要在kernel中修改dtb,那就必须在start_kernel中修改了,因为在start_kernel的最后,就需要init驱动了,必须在这之前完成。而在unflatten_device_tree前,dtb是二进制文件,修改难度较大,所以在unflatten_device_tree后,直接修改node节点会相对容易。

dts的配置

&i2c2 {
   
	status = "okay";
	i2c-scl-rising-time-ns = <460>;
	i2c-scl-falling-time-ns = <15>;
	
	rt5640: rt5640@1c {
   
		status = "okay";
		#sound-dai-cells = <0>;
		compatible = "realtek,rt5640";
		reg = <0x1c>;
		clocks = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Linux 内核的 DTS (Device Tree Source) 文件中修改 PMU (Power Management Unit) 和 CPU 的工作电压,可以按照以下步骤进行操作: 1. 打开设备树文件 (通常位于 arch/arm64/boot/dts/ 目录下),找到与 PMU 和 CPU 相关的节点。例如,下面是一个名为 "cpu0" 的 CPU 节点的示例: ``` cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0>; operating-points = <0x0 0x96800 0x1 0x102800 0x2 0x120000>; clock-latency-ns = <0x9c40>; }; ``` 2. 修改 operating-points 属性,以便为 CPU 定义工作电压。operating-points 属性是一个数组,其中每个元素都表示一个电压/频率对,格式为 <vdd vdd-cvdd frequency>. 例如,下面是一个修改后的 operating-points 属性,将 CPU 的工作电压从 0.95V 提高到 1.0V: ``` operating-points = <0x0 0x9b000 0x1 0xb4800 0x2 0xd5000>; ``` 在这个例子中,vdd 为 0x0、0x1 和 0x2,分别对应于 operating-points 数组中的三个电压/频率对。vdd-cvdd 表示 CPU 的工作电压。 3. 修改 PMU 节点的属性,以便为 CPU 定义默认的工作电压。例如,下面是一个名为 "pmu" 的 PMU 节点的示例: ``` pmu { compatible = "arm,armv8-pmuv3"; reg = <0x0 0x1c12000 0x0 0x1000>; #address-cells = <0x1>; #size-cells = <0x0>; ranges; status = "okay"; opp_table { opp_0: opp-0 { opp-hz = /bits/ 64 <0x1f40600>; opp-microvolt = <0x9a98>; clock-latency-ns = <0x9c40>; }; opp_1: opp-1 { opp-hz = /bits/ 64 <0x1f40600>; opp-microvolt = <0x9c40>; clock-latency-ns = <0x9c40>; }; }; }; ``` 在这个例子中,opp_table 节点包含了 PMU 的工作电压信息。修改 opp_table 节点中的 opp-microvolt 属性,以便为 CPU 定义默认的工作电压。例如,将 opp_0 的电压从 0.95V 提高到 1.0V: ``` opp_0: opp-0 { opp-hz = /bits/ 64 <0x1f40600>; opp-microvolt = <0x9c40>; clock-latency-ns = <0x9c40>; }; ``` 在这个例子中,opp-microvolt 属性的为 0x9c40,表示电压为 1.0V。 4. 保存设备树文件后重新编译内核,然后将修改后的设备树文件通过 bootloader 加载到内存中。在启动时,内核将读取设备树文件并使用其中的信息来配置 CPU 的工作电压。 注意:这些步骤可能因不同的设备类型和内核版本而有所不同。在进行任何修改之前,请务必备份设备树文件和内核。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值