uboot阶段修改dts使用分析
前言
为方便调试某些设备树中配置的timing而不需要重新烧录固件,故做此记录
uboot的fdt命令
移植参考说明简略参考:
https://blog.csdn.net/u013165704/article/details/80374702
fdt help
t7_an400_lpddr4x# fdt
fdt - flattened device tree utility commandsUsage:
fdt addr [-c] <addr> [<length>] - Set the [control] fdt location to <addr>
fdt boardsetup - Do board-specific set up
fdt move <fdt> <newaddr> <length> - Copy the fdt to <addr> and make it active
fdt resize [<extrasize>] - Resize fdt to size + padding to 4k addr + some optional <extrasize> if needed
fdt print <path> [<prop>] - Recursive print starting at <path>
fdt list <path> [<prop>] - Print one level starting at <path>
fdt get value <var> <path> <prop> - Get <property> and store in <var>
fdt get name <var> <path> <index> - Get name of node <index> and store in <var>
fdt get addr <var> <path> <prop> - Get start address of <property> and store in <var>
fdt get size <var> <path> [<prop>] - Get size of [<property>] or num nodes and store in <var>
fdt set <path> <prop> [<val>] - Set <property> [to <val>]
fdt mknode <path> <node> - Create a new node after <path>
fdt rm <path> [<prop>] - Delete the node or <property>
fdt header [get <var> <member>] - Display header infoget - get header member <member> and store it in <var>
fdt bootcpu <id> - Set boot cpuid
fdt memory <addr> <size> - Add/Update memory node
fdt rsvmem print - Show current mem reserves
fdt rsvmem add <addr> <size> - Add a mem reserve
fdt rsvmem delete <index> - Delete a mem reserves
fdt chosen [<start> <end>] - Add/update the /chosen branch in the tree<start>/<end> - initrd start/end addr
NOTE: Dereference aliases by omitting the leading '/', e.g. fdt print ethernet0.
查看某节点命令
直接使用fdt list xx,注意这里的设备节点的路径要带上绝对路径 即 /xx/xx
这样
t7_an400_lpddr4x# fdt list /lcd1/vbyone_1
vbyone_1 {model_name = "public_1region";interface = "vbyone";basic_setting = <0x00000f00 0x00000870 0x00001130 0x000008ca 0x0000000a 0x00000010 0x00000009>;range_setting = <0x00001090 0x000012c0 0x00000898 0x00000ae6 0x20e6da00 0x25ab8e00>;lcd_timing = <0x00000021 0x000001dd 0x00000000 0x00000006 0x00000041 0x00000000>;clk_attr = <0x00000002 0x00000000 0x00000001 0x00000000>;vbyone_attr = <0x00000008 0x00000001 0x00000004 0x00000004>;vbyone_intr_enable = <0x00000001 0x00000003>;phy_attr = <0x00000007 0x00000001>;hw_filter = <0x00000000 0x00000000>;power_on_step = <0x00000000 0x00000000 0x00000001 0x000000c8 0x00000002 0x00000000 0x00000000 0x0000000a 0x000000ff 0x00000000 0x00000000 0x00000000>;power_off_step = <0x00000002 0x00000000 0x00000000 0x0000000a 0x00000000 0x00000000 0x00000000 0x000001f4 0x000000ff 0x00000000 0x00000000 0x00000000>;backlight_index = <0x000000ff>;
};
修改某节点命令
使用 fdt set path prop
,注意这里的设备节点的路径也要带上绝对路径
- 修改整数数组
*需要注意的是不能增大原数组大小,只能减少或者修改某数组成员
如修改power_on_step 某type的delay值
将原来的0x000000c8 修改成0x000001f4
fdt set /lcd1/vbyone_1 power_on_step <0x00000000 0x00000000 0x00000001 0x000001f4 0x00000002 0x00000000 0x00000000 0x0000000a 0x000000ff 0x00000000 0x00000000 0x00000000>
修改后再获取确认
t7_an400_lpddr4x# fdt list /lcd1/vbyone_1
vbyone_1 {model_name = "public_1region";interface = "vbyone";basic_setting = <0x00000f00 0x00000870 0x00001130 0x000008ca 0x0000000a 0x00000010 0x00000009>;range_setting = <0x00001090 0x000012c0 0x00000898 0x00000ae6 0x20e6da00 0x25ab8e00>;lcd_timing = <0x00000021 0x000001dd 0x00000000 0x00000006 0x00000041 0x00000000>;clk_attr = <0x00000002 0x00000000 0x00000001 0x00000000>;vbyone_attr = <0x00000008 0x00000001 0x00000004 0x00000004>;vbyone_intr_enable = <0x00000001 0x00000003>;phy_attr = <0x00000007 0x00000001>;hw_filter = <0x00000000 0x00000000>;power_on_step = <0x00000000 0x00000000 0x00000001 0x000001f4 0x00000002 0x00000000 0x00000000 0x0000000a 0x000000ff 0x00000000 0x00000000 0x00000000>;power_off_step = <0x00000002 0x00000000 0x00000000 0x0000000a 0x00000000 0x00000000 0x00000000 0x000001f4 0x000000ff 0x00000000 0x00000000 0x00000000>;backlight_index = <0x000000ff>;
};
修改字符串
如关闭某设备节点
t7_an400_lpddr4x# fdt set /backlight1/ status "disable"
t7_an400_lpddr4x# fdt list /backlight1
backlight1 {compatible = "amlogic, backlight-t7";status = "disable";}
平台版本若支持保存修改,可使用 fdt save
保存修改的设备树,这样的话即使重启之前的修改也保留着
uboot阶段修改dts使用分析相关推荐
- U-Boot启动阶段修改启动参数方法及分析
作者:围补 本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织.毕竟文字跟有声语言表达有别.但愿简单的东西别让我讲的太复杂! Arm板系统文件一般有三个--bootloa ...
- uboot 2021.10源码分析(启动流程)
uboot版本:2021.10 平台:armv8 rk3399 eMMC 16G LPDDR4 4G 本文主要基于uboot的执行流程进行分析而忽略了相关细节,从uboot的基本框架结构着手,新 ...
- Map阶段环形缓冲区详细分析
Map阶段环形缓冲区详细分析 这几天不是很忙,抽了点闲着的时间回头看了一下hadoop,看到map阶段的环形缓冲区想到自己刚开始的的时候每太弄明白,这次好好仔细看了一下,顺便把学习成果记录了下来 在m ...
- linux命令进u 盘,在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法...
在Linux 下制作一个磁盘文件, 可以给他分区,以及存储文件,然后dd 到SD卡便可启动系统. 在u-boot 下启动后可以读取该文件,直接在u-boot 阶段就可以做烧写操作,省略了进入系统后才进 ...
- 移植uboot之修改代码支持NorFlash记录续集
接着上一篇文章写的内容(上一篇文章链接:移植uboot之修改代码支持NORFLASH),上一篇结尾测试flash的擦除读写功能,结果无法写flash,卡在了这里: 前面已经擦除成功,这里写内容写不进去 ...
- uboot源码——内核启动分析
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6403863.html 总结:uboot启动linux内核的整个 ...
- 关于烧饼游戏修改器的分析
一.前言 烧饼游戏修改器是一款元老级的游戏修改器,提供了精确搜索.模糊搜索.联合搜索.数据过滤.存储搜索与读取搜索等功能.主要实现搜索手机进程的内存数据并做相应修改. 本文中分析的版本为2.0.2(3 ...
- AVB源码学习(二):Uboot阶段AVB2.0校验流程
参考资料 感谢前辈的blog,安全相关的资料可太少了,很详细很卓越 https://blog.csdn.net/jackone12347/article/details/116241676 (我是真的 ...
- android AVB2.0(二)Uboot阶段AVB2.0校验流程
android AVB2.0学习总结传送门 本篇属于android AVB2.0学习总结系列的第二篇文章,本篇主要介绍一下UBOOT或者UEFI阶段AVB2.0的介绍. 支持原创,转载请标明链接 ht ...
最新文章
- 360浏览器5兼容模式吗_Vue-cli项目,打包生产模式,部分用户360浏览器极速模式下奔溃...
- C#内容分页简单实现代码及祥解
- python列表去重效率_python面试题 - osc_yztbpii7的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【阿里云课程】注意力机制原理,应用与设计
- Nginx 教程- 获取真实IP模块 - http_realip_module
- python TypeError can only concatenate tuple not str to tuple
- java二进制 字节数组 字符 十六进制 BCD编码转换
- iOS开发UI篇—常见的项目文件介绍
- python整型为空的情况_深度剖析凭什么python中整型不会溢出
- 不会开会,就管不好工作
- Java自学指南一、找一个开始并能坚持下去的理由
- csu1706irrational root
- 数理统计中95%置信区间的含义
- Skipping MapperFactoryBean with name ‘xxx‘ and ‘xxx‘. Bean already defined with the same name’警告
- 剑客vs刀客 Java vs .NET之霸道的.NET
- 计算机显示器文字不清楚,电脑显示器字体模糊,请问怎么解决
- 在python中调用高德地图(Amap)api
- 麻省理工学院计算机博士奖学金,获麻省理工博士全额奖学金录取的经验分享
- 遥测终端机RTU的特点以及应用领域
- 学区块链开发有前途吗?