首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编译dts文件时出现"/pl061@9030000:clocks: cell 0 is not a phandle reference“

编译dts文件时出现"/pl061@9030000:clocks: cell 0 is not a phandle reference"是指在编译设备树源文件(Device Tree Source,DTS)时遇到了一个错误。这个错误提示表明在设备树中的"/pl061@9030000"节点的"clocks"属性的第一个元素不是一个有效的phandle引用。

设备树是一种描述硬件设备和资源的数据结构,用于在Linux系统中动态配置硬件。它以一种与硬件无关的方式描述了系统的硬件组件、设备驱动程序和资源分配。编译设备树源文件时,会将其转换为二进制格式(Device Tree Blob,DTB),供操作系统内核使用。

对于这个错误,可能有以下几种原因和解决方法:

  1. 错误的设备树节点引用:检查"/pl061@9030000"节点的定义,确保其在设备树中正确引用了其他节点。可能是节点名称或路径错误导致的。
  2. 缺少必要的设备树节点:检查设备树中是否缺少了必要的节点定义,例如与"/pl061@9030000"节点相关的时钟节点。确保所有必要的节点都正确定义和引用。
  3. 设备树版本不匹配:确保使用的设备树源文件与当前系统内核版本兼容。不同的内核版本可能对设备树的要求有所不同,因此需要使用与当前内核版本匹配的设备树源文件。
  4. 编译工具链问题:检查使用的编译工具链是否正确配置和安装。确保使用的工具链版本与当前系统兼容,并且没有缺少必要的组件。

如果以上方法都无法解决问题,建议查阅相关设备树文档、社区论坛或联系设备厂商获取更多支持和帮助。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云产品:https://cloud.tencent.com/product
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux common clock framework(2)_clock provider

另外,增加了“clock-frequency”自定义关键字,这样在板子使用的OSC频率改变,如变为12M,不需要重新编译代码,只需更改DTS的频率即可(这不正是Device Tree的核心思想吗!)。...,会以它为关键字,去device_node中搜索,以得到对应的struct clk指针; clocks需要指明的信息,由clock provider的“#clock-cells”规定:为0,只需要提供一个...clock provider name(称作phandle);为1,表示phandle有多个输出,则需要额外提供一个ID,指明具体需要使用那个输出。...这个例子直接用立即数表示,更好的做法是,将系统所有clock的ID,定义在一个头文件中,而DTS可以包含这个头文件,如“clocks = ”; clock-names...类型的指针,由DTS在解析参数传递。

1.3K10
  • 第二课:linux设备树的规范(dts和dtb)

    转载请注明文章地址 http://wiki.100ask.org/Linux_devicetree 第01节_DTS格式 dts文件通过编译生成dtb格式文件 ?...Arrays of cells : cell就是一个32位的数据interrupts = ; b. 64bit数据使用2个cell来表示: clock-frequency = <0x00000001...phandle来引用, // 在编译dts文件为dtb文件, 编译器dtc会在dtb中插入phandle属性 }; 举例说明 如果我想在dts中包含dtsi文件 新建 jz2440....dtsi 拷贝jz2440.dts dtsi文件dts的父节点可以直接引用,语法格式相同, 在dts文件中引用dtsi,比如想修改某个引脚,但是又不想修改dtsi文件,则只需要在dts文件中覆盖掉原来的的配置即可...dtsi文件,这就意味着源文件有很多,需要将它们编译成一个唯一的文件; dtsi和dts文件中,后面属性的值要覆盖前面同名的属性的值; 使用dtc工具将dtsi和dts变成dtb文件,该工具就自动完成前面的四个操作

    5.2K32

    linux驱动开发中与设备树相关的6种debug方法

    #1. dtdiff工具 这个文件需要在宿主机安装,在对比二进制的dtb文件比较方便。文本格式的dts文件对比并不需要这个工具。 ? 对比以下两个dtb文件的结果如下: ?...将dtb文件从mmc中加载到DDR的0x61000000地址处,并告知U-Boot FDT文件在内存中所在的位置为0x61000000。 ?...driver-test的设备树定义在源文件dts如下图,dtb内的信息是完全展开的,实际上和dts中信息完全一致。...clocks = 是dtc编译对结点引用label重新插入的phandle值。 ? ##3....oscclk1在dtc编译后的label编号0x00000012。 ? 修改后如下图: ? ? 修改完之后,手动加载kernel镜像来启动系统。系统启动后查看设备树信息是否修改成功。

    2.2K10

    万字长文教你设备树语法 | 设备树实例解析

    DTS、DTSI、DTB (1)DTS:设备树描述文件为.dts格式,这个也是我们重点需要掌握编写的。(2)DTSI 为了减少冗余,设备树头文件格式为.dtsi文件,可以被不同的.dts文件引用。...(3)DTC 编写.dtc文件使用设备树语法,则需要一个特定的编译器来编译,称为dtc工具,源码在 Linux 内核的scripts/dtc目录下。...(4)DTB:设备树源码.dts、.dtsi文件最终经过 dtc 编译器,会生成.dtb文件。 4....设备树编译 (1)简单粗暴,编译内核 make (2)编译全部设备树文件 make dtbs (3)编译指定的设备树文件 make 二、设备树语法 1....A7 的中断控制器,看不懂 clocks:时钟源,clks 节点的 IMX6UL_CLK_I2C1 这个时钟 status:节点状态,禁用 3. imx6ull ATK 开发板描述文件 imx6ull-atk-emmc.dts

    6.5K61

    一文搞定 Linux 设备树

    (2) DTC:DTC是将.dts编译为.dtb的工具,相当于gcc。 (3) DTB:.dtb文件是 .dts 被 DTC 编译后的二进制格式的设备树文件,它可以被linux内核解析。 2....// 使用phandle值为1来引用上述节点 }; 注:DTS中的大多数设备树将不包含显式的phandle属性,当DTS编译成二进制DTB格式,DTC工具会自动插入phandle属性。...phandle来引用, // 在编译dts文件为dtb文件, 编译器dtc会在dtb中插入phandle属性 }; 2.2.4 DTB...格式 .dtb文件是 .dts 被 DTC 编译后的二进制格式的设备树文件,它的文件布局如下: 从上图可以看出,DTB文件主要包含四部分内容:struct ftdheader、memory reservation...编译生成dtb文件的源设备树jz2440.dts文件如下: // SPDX-License-Identifier: GPL-2.0 /* * SAMSUNG SMDK2440 board device

    5.6K30

    网友说Linux驱动讲不彻底,原来这才是Linux驱动

    Linux 设备树(DTS)的深入理解设备树的出现上面说过设备树的出现是为了解决内核中大量的板级文件代码,通过 DTS 可以像应用程序里的那样 XML 语言一样很方便地对硬件信息进行配置。...所以就需要把 dts 文件编译成 dtb 文件。...这里设备文件就是根据各种内核态的 API 来调用设备树里的板级信息:struct device_node *of_find_node_by_phandle(phandle handle);struct...DTS编译在 arch/arm/boot/dts/Makefile 里添加我们的板子:刚刚平台目录下我们已经对 MACH_GITCHAT 进行了定义,这里就会把设备树编译成 dtb 文件。...我们也可以通过命令手动来编译生成 csdn-gitchat-evb.dtb 文件:$ dtc -I dts -O dtb csdn-gitchat-evb.dts -o csdn-gitchat-evb.dtb

    1.5K20

    Linux设备树详解(一) 基础知识

    所以对于后期知识各个知识点进行总结,本章主要讨论一下内容,能看懂和修改对应模块的dts文件。...DTS基本知识 2.1 dts 硬件的相应信息都会写在.dts为后缀的文件中,每一款硬件可以单独写一份xxxx.dts,一般在Linux源码中存在大量的dts文件,对于arm架构可以在arch/arm/...boot/dts找到相应的dts,一个dts文件对应一个ARM的machie。...2.2 dtsi 值得一提的是,对于一些相同的dts配置可以抽象到dtsi文件中,然后类似于C语言的方式可以include到dts文件中,对于同一个节点的设置情况,dts中的配置会覆盖dtsi中的配置。...dtc工具; 2.4 dtb dtb(Device Tree Blob),dts经过dtc编译之后会得到dtb文件,dtb通过Bootloader引导程序加载到内核。

    2.4K30

    Linux 设备树(DTS)的深入理解

    设备树的出现 上一节说过设备树的出现是为了解决内核中大量的板级文件代码,通过 DTS 可以像应用程序里的 XML 语言一样很方便的对硬件信息进行配置。...从上幅图里不难看出,其实设备树的出现在软件模型上相对于之前并没有太大的改变,设备树的出现主要在设备维护上有了更上一层楼的提高,此外在内核编译上使内核更精简,镜像更小。...所以就需要把 dts 文件编译成 dtb 文件。...把 dts 编译成 dtb 文件的工具是 dtc,位于内核目录下 scripts/dtc,也可以手动安装:sudo apt-get install device-tree-compiler 工具。...这里设备文件就是根据各种内核态的 API 来调用设备树里的板级信息: struct device_node *of_find_node_by_phandle(phandle handle); struct

    22.4K53

    全志 Tina Linux 系统资源配置 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板

    通常,chosen节点在.dts文件中为空,并在启动填充。它必须是根节点的孩子。...DTC 的源代码位于内核的 scripts/dtc目录,在 Linux内核使能了Device Tree的情况下,编译内核同时会编译dtc。...sun50iw1p1.dtsi,当board级配置文件跟 soc级配置文件出现相同节点的同名属性,Board级配置文件的属性值会去覆盖soc级的相同属性值。...如果出现这样的情况,内核编译的时候,就会采用sun50iw1p1-soc.dts,作为该客户方案的board级配置文件。...如果出现这样的情况,内核编译的时候,就会采用sun50iw1p1-soc.dts,作为该客户方案的board级配置文件

    9K10

    全志平台Tina系统启动阶段改设备DTS的方法

    原文链接:https://bbs.aw-ol.com/topic/276 更多信息,欢迎来全志在线开发者社区看~ 在设备BSP调试的过程中,经常会出现需要修改DTS的情况,比如调试一个新的屏幕、传感器或者...wifi模组,传统的方法是: 在源码中直接修改board.dts文件->重新编译&打包->烧写到设备里 这种方法繁杂,编译和烧写都要花费时间,严重影响开发效率。...因此,全志(其实是uboot提供的)提供了一个启动阶段DTS调试的方法,可以让我们在启动阶段就把DTS改掉,这次启动加载的就是改后的DTS。...for bad PEB handling: 40 [01.251]sunxi flash init ok [01.254]line:714 init_clocks __clk_init: clk pll_periph0x2...; status = "okay"; phandle = ; }; 3.如果要修改某个节点的参数,则使用 *fdt set 节点名称 参数名称

    25410
    领券