一、uboot对fdt(flattened device tree)的支持
在xxx_defconfig中加入
#define CONFIG_OF_LIBFDT 1 /* Device Tree support */
重新编译u-boot,就可以实现对device tree的支持。
1、在uboot命令行输入: fdt
有类似显示证明支持device tree:
dt - flattened device tree utility commands
Usage:
fdt addr [-c] fdt move fdt resize [ 2、bootm 31000000 - 32000000 (uImage地址、文件系统地址、DTB设备树地址) 执行以上指令后,看到如下打印证明支持device tree: ## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000 Loading Ramdisk to 06c59000, end 081ff864 ... OK Loading Device Tree to 6c44000, end 6c58399 ... OK 二、Linux 1、在 arch/arm/boot/dts/目录下添加设备树文件 2、修改设备树的Makefile vim arch/arm/boot/dts/Makefile 这样make dtbs的时候就会编译出指定的.dtb 3、使能单板型号时,select xxx CONFIG_CLKSRC_OF/CONFIG_USE_OF/等需要的配置需加上。 4、修改单板文件 例如arch/arm/mach-s3c24xx/mach-jz2440-dt.c文件 #include #include #include #include #include #include #include #include "common.h" static void __init jz2440_dt_map_io(void) { s3c24xx_init_io(NULL, 0); } static void __init jz2440_dt_machine_init(void) { s3c_pm_init(); } static const char *const jz2440_dt_compat[] __initconst = { "samsung,s3c2440", "samsung,jz2440", NULL }; DT_MACHINE_START(S3C2440_DT, "Samsung S3C2440 (Flattened Device Tree)") .dt_compat = jz2440_dt_compat, .map_io = jz2440_dt_map_io, .init_irq = irqchip_init, .init_machine = jz2440_dt_machine_init, MACHINE_END 5、Linux支持设备树 make menuconfig ---> Boot options ---> Flattened Device Tree support 选择该选项后,内核在启动时,不会通过u-boot传入的machid来找到单板文件;而是通过上面的dt_compat数组中的信息和设备树中的compatible进行匹配,以此来找到相应单板文件。 例如 static const char *const s3c2416_dt_compat[] __initconst = { "samsung,s3c2416", "samsung,s3c2450", NULL }; DT_MACHINE_START(S3C2416_DT, "Samsung S3C2416 (Flattened Device Tree)") .dt_compat = s3c2416_dt_compat, .map_io = s3c2416_dt_map_io, .init_irq = irqchip_init, .init_machine = s3c2416_dt_machine_init, MACHINE_END 扩展为: static const struct machine_desc __mach_desc_S3C2416_DT __used __attribute__((__section__(".arch.info.init"))) = { .nr = ~0, .name = "Samsung S3C2416 (Flattened Device Tree)", .dt_compat = s3c2416_dt_compat, .map_io = s3c2416_dt_map_io, .init_irq = irqchip_init, .init_machine = s3c2416_dt_machine_init, } 6、编译内核和设备树 make uImage -j4 make dtbs /*编译设备树,生成.dtb文件*/ 如果无法生成uImage,将zImage转为uImage mkimage -A arm -O linux -T kernel -C none -a 0x31000000 -e 0x31000040 -n "jz2440" -d zImage uImage 7、在线烧写和启动 先将生成的uImage文件和s3c2440-jz2440.dtb文件放入/tftpboot目录,使用tftp服务,在uboot启动时使用tftp服务将内核和设备树从tftp服务器中加载到内存,然后bootm。具体的bootcmd参数如下: bootcmd=tftp 31000000 uImage; tftp 32000000 s3c2440-jz2440.dtb; bootm 31000000 - 32000000 8、对于Linux中设备树常用的 OF 操作函数,介绍见以下博客 https://blog.csdn.net/qq_35031421/article/details/105107629
上一篇:【bootloader】关于2440+WinCE5.0,2440init.s文件代码问题
下一篇:病症:arm启动后应用程序界面显示不正常
推荐阅读最新更新时间:2024-11-11 14:12
推荐帖子
- 传说中的2019年模拟芯片十大厂商
- 这是我从一网站看到的2019年十大模拟芯片厂商。我除了第十名的瑞萨其它厂家的芯片都有用过。今年ADI和Maxim合并是不是能超过TI呢。目前看TI(19%)ADI+Maxim(14%=10%+4%)好像还是差点啊。ADI与Maxim的产品重合的部分较多,难道是为了消灭竞争对手吗。各位如何看呢传说中的2019年模拟芯片十大厂商已经没有maxim了收购的一点风声都没吹出来,有点突然。美信还是不错的,从此就消失了。看不懂。
- bigbat 模拟电子
- JFET管的应用电路疑问
- 如上图所示。Q3是N沟道的JFET管(型号J113),U3是LDO电源芯片,VC-BAT是电池电源输入(12-16.8V),VC_MCU是LDO输出的3.3V.现在想知道这个JFET管是怎么去工作的?听同事说是利用JFET管Q3的Vgs钳制LDO的输入。图中LDO最大输入是5.5V.对此表示疑惑,如果我JFET管Q3在没有完全夹断的情况下,源极的电压S又如何去确定呢?请大神指点,谢谢。JFET管的应用电路疑问【如上图所示。Q3是N沟道的JFET管(型号J113),U3是L
- 反倒是fdsf 模拟电子
- GD32E231的熏香机控制板
- 作品简介熏香机控制板基于GD32E231做为主控,利用定时器和PWM对直流泵的运行时间和强度的控制。4相5线步进电机对香水瓶更换和安装是的升降操作。显示应用了常用的ST7567主控的12864显示屏,可以直观的显示熏香机的工作状态。熏香机工作原理介绍,1、上电步进电机位置校准。2、熏香机气泵根据设置的定时模式,循环定时开启和关闭。3、应用在不同的环境比如机场、车站的候车大厅、酒店、办公室、家等不同的室内空间的大小可以调节熏香机泵的强度。4、为了美观和方便熏香机的
- 小涛电子 GD32 MCU
- 遇到 VXworks 下 Intel 82541千兆网卡驱动的问题
- 在VXWORKS5.5下调试82541的网卡驱动,一开始VXWORKS加载时提示CHECKCAPBLECONNECTION!如何修改了MIILIB.C中的MIIAUTONEGSTART与MIIAUTOPHYINIT函数?就可以正常启动也可以PING通了,FTP也可以连上,但是无法通过FTP传输文件.请高手指教!遇到VXworks下Intel82541千兆网卡驱动的问题如何更改函数就能从Download阿!求教
- junliyang 实时操作系统RTOS
- 关于codewarrior 10.3
- 我是新手,这个codewarrior10.3我按照例子,可是这个processorexpert不能用,请问一下是不是和破解license有关还是自己设置不对,还是要装个专家包?关于codewarrior10.3
- fantianchen NXP MCU
- 【Follow me第二季第2期】任务汇总贴
- 非常荣幸能够参加电子工程世界和得捷电子举办得Followme第二季第2期活动。我以前没有接触过嵌入式系统的开发,对电子技术略有了解。本次活动让我有机会接触到一些新的领域,学习了不少新知识。实验过程中遇到不少问题,有些通过参考各位大佬的帖子解决了,有些还需要将来进一步探索。我的代码:https://download.eeworld.com.cn/detail/tangye/634556我的视频:https://training.eeworld.com.cn/vide
- tangye DigiKey得捷技术专区
设计资源 培训 开发板 精华推荐
- LTC3407-3 的典型应用 - 双路同步、1.8V/0.8A 和 3.3V/0.8A 2.25MHz 降压型 DC/DC 稳压器
- 【RA】OLED小时钟+1500720A
- EVAL-AD7763EDZ,使用 EVAL-CED1Z 的 AD7763、24 位、625 kSPS Sigma Delta ADC 评估板
- AT32F437固定翼飞控
- 【立创开发板】基于GD32游戏拓展机
- 【CW32】无刷电机驱动器
- STEVAL-MET001V1,适配器评估板旨在促进 LPS22HB 产品系列中的 MEMS 器件的评估
- M5272C3UM、M5272C3 评估板是一款基于 MCF5272 ColdFire 处理器的多功能单板计算机
- EVAL-ADAU1977Z,用于评估 ADAU1977 4 通道 ADC 的评估板
- LM317稳压电路