Linux Kernel DT(Device Tree)【转】
转自: https://www.jianshu.com/p/923b380366bb 之前在使用的3.0.8版本内核还没有使用上DT,而最近在研发使用的3.10.37版本内核已使用上了DT,瞬间感觉自己的知识体系更新慢了,查了资料发现3.x版本的内核已经支持DT了,为何ARM也要使用上DT呢? 在旧版本的ARM Linux内核里,我们习惯上会去arch/arm/mach-XXX/目录下进行一些板载级设备配置,尤其在board-YYY.c文件里使用platform_add_devices()等函数去注册一堆硬件设备以及板级初始化操作,还有如下宏: MACHINE_START(project name, "board name") .boot_params = PLAT_PHYS_OFFSET + 0x800, .fixup = XXX_fixup, .reserve = &XXX_reserve, .map_io = XXX_map_io, .init_irq = XXX_init_irq, .timer = &XXX_timer, .init_machine = XXX_init, MACHINE_END 其中的XXX_init函数里就会调用platform_add_devices()。 以及arch/arm/plat-XXX目录下也有一堆平台级的操作,一般在进行移植工作的时候