热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

riscv板子编写设备树

设备树的作用主要用于描述硬件,为操作系统提供硬件的信息。一般用在嵌入式板子上。最近做了riscv相关的操作系统移植,需要编写设备树,期间

 

设备树的作用主要用于描述硬件,为操作系统提供硬件的信息。一般用在嵌入式板子上。

最近做了riscv相关的操作系统移植,需要编写设备树,期间对设备树进行了些许研究。

一般人对于设备树的看法都是觉得没什么技术含量,就描述一下硬件信息嘛。关键是如果不把设备树的一些东西搞清楚,还真的很难。

一、参考文档

设备树最官方的参考就是Releases - DeviceTree 

其次就是linux内核文档,在Documentation\devicetree 目录下,usage-model.rst 是关于设备树用法的, bindings目录下是分设备类型的详细描述。

Linux使用设备树的三个目的:

Linux uses DT data for three major purposes:

1) platform identification,
2) runtime configuration, and
3) device population.

1.平台识别

指的是在dts里面有对主板的描述,用于让内核针对不同的板子运行不同的代码。

compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3";

2.运行时配置

chosen这样用来给内核传参的。

    chosen {
        bootargs = "console=ttyS0,115200 loglevel=8";
        initrd-start &#61; <0xc8000000>;
        initrd-end &#61; <0xc8200000>;
    };

3.设备population

population意为人口。在这里大概也就是硬件描述吧。

内核中有一个 machine_desc的结构体&#xff0c;有一个 .init_machine() &#xff0c;会根据设备树初始化机器的描述。

一般是生成 platform_devices

如果设备的compatible 值为"arm,amba-primecell"&#xff0c;则生成 amba_device 。


推荐阅读
author-avatar
大傻vv_528
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有