问题标签 [device-tree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - 如何将 dts Linux 设备树源文件编译成 dtb?
我有一个设备树文件 (.dts),我想为基于 powerpc 的板编译该文件。
我怎样才能在我的机器上做到这一点,这不是基于 powerpc 的?我可以使用安装在我的 Ubuntu 系统上的 DTC 来执行此操作吗?还是更像是使用单独的编译器并传递 ARCH 信息(如使用工具链)?
linux - 没有设备树 blob 的 bootm
以下是bootm命令的 U-Boot 帮助的摘录:
正如我在上面看到的bootm [addr]
应该可以正常工作,arg
是可选的。
所以类似的东西bootm 0x1000000
应该工作。
我tftp了linux内核uImage到0x1000000,然后想用上面的命令。
不可能吗?
当我使用它时它工作正常bootm 0x1000000 - 0x3000000
,其中第三个参数是 dtb 的地址。
但是当我尝试在没有 dtb 的情况下启动时,它会停在
“解压缩内核映像”处
linux-kernel - 扁平化设备树有什么用 - Linux Kernel
我正在经历 Uboot 和内核启动过程。FDT(平面设备树)到底有什么用?
我读过的许多链接都指出,uboot 以 FDT 的形式将板和 SOC 配置信息传递给内核
https://wiki.freebsd.org/FlattenedDeviceTree
为什么内核需要主板配置信息?
我问这个问题是因为当我们在 linux 中制作设备驱动程序时,我们使用在 probe() 或 module_init() 调用时初始化设备并使用 request_mem_region() 和 ioremap() 函数来获取地址范围然后设置时钟&其他司机登记。
request_mem_region() 实际做什么以及何时需要?
现在,如果我的片上和片外设备的设备驱动程序正在进行全板初始化。
那么flattened device tree
内核有什么用呢?
comments - 如何在设备树源文件中添加注释
如何在设备树源文件中放置多行或单行注释。我在任何地方都找不到它。使用注释的默认 c 方式是否有效?
linux-kernel - 树莓派的设备树驱动内核
我想用设备树驱动的 linux 内核启动树莓派,有什么特别的事情要做吗?
任何人都可以指出为树莓派设置基于设备树的内核启动所需的内容。
我可能需要树莓派内核源代码,其中设备驱动程序应与设备树兼容。如果是这样,我在哪里可以找到 Raspberry Pi 的此类内核源代码?
device-tree - 设备树绑定?
当您开始使用它时,我们是否必须阅读 linux 内核的设备树绑定文档。
设备树中是否没有所有发行版/内核源都遵循的标准字段集?
其次,我需要一些关于使用设备树为 gpio 总线上的设备添加节点的指导。我已经咨询过http://devicetree.org/Device_Tree_Usage。
c - 使用设备树引导主线 Linux 内核
我按照以下步骤构建和刷新我的内核QEMU
:
make ARCH=arm distclean
make ARCH=arm versatile_defconfig
make ARCH=arm menuconfig
在这里您需要启用以下功能。
Kernel Features ---> [*] 使用ARM EABI
编译内核。(启用此功能)。make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
qemu-system-arm -M versatilepb -m 128M -kernel arch/arm/boot/uImage -append "console=tty1"
在这里你会得到控制台说内核恐慌。为避免这种情况,请传递您的rootfs
参数。
我猜你是从busybox构建的rootfs,如果是这样的话,试试下面的命令来完全引导系统qemu-system-arm -M versatilepb -m 128M -kernel arch/arm/boot/uImage -initrd rootfs.img -append "root=/dev/ram mem=128M rdinit=/sbin/init" -serial stdio
在运行时,内核是否使用设备树来加载设备?如果是,如何确认以及设备树位于何处?(我需要对设备树文件(.dts)进行更改,但无法找到该文件的位置)请帮助
linux-kernel - 在设备树探测之前加载内核模块
我为我的custom_hardware开发了一个工作驱动程序,它依赖于设备树。因为我的驱动程序可能会发展,所以我不希望我的驱动程序成为内核的一部分(当我说“成为内核的一部分”时,我的意思是在内核创建期间与内核一起编译)
这是我的dts的一瞥:
existing_hardware的驱动程序已经与内核一起编译(existing_hardware的驱动程序在内核创建期间已与内核一起编译)。
我想做的是将我的custom_hardware的驱动程序附加到 ramfs 并让内核在 existing_hardware 的驱动程序之前加载 custom_hardware的驱动程序。
这很重要,因为existing_hardware的驱动程序从custom_hardware的驱动程序的irq_domain请求一个virq。为了获得irq_domain,必须首先加载custom_hardware的驱动程序。
请注意,existing_hardware的驱动程序在设备树的探测过程中被加载,这似乎发生在内核启动序列的早期阶段。
linux-kernel - 跟踪嵌入式Linux开发中的内核驱动程序代码
我正在做一些嵌入式 Linux 开发,并试图实现 EMIF 接口的新实例。Linux 内核中已经安装了一个 EMIF 驱动程序,并使用它来读取和写入 NAND 内存。EMIF 接口有 4 条独立的片选线,我想使用片选 2 在 EMIF 总线上添加第二个设备。
我该如何实例化该设备并对其进行读写。(设备树添加?)
我一直在尝试从内核源代码跟踪驱动程序代码,但对驱动程序开发非常陌生,内核从驱动程序执行的函数调用是什么,它们发生在源代码的什么位置?
compatible = "ti,davinci-nand"
我相信我已经找到了驱动程序的源文件,因为它们与设备树中的行同名。我是否正确假设驱动程序源文件将被调用davinci_nand.c
并位于{linux source}/drivers/mtd/nand
编辑:
借助一些新信息并查看设备树,我发布了这个问题,这可能对遇到此线程的任何人都有用。