我正在了解Uboot和内核启动过程。FDT(平面设备树)的用途是什么?许多链接中都提到,Uboot将板子和SOC配置信息以FDT形式传递给内核。
我问这个问题是因为每当我们在Linux中制作设备驱动程序时,我们都会在probe()或module_init()调用中初始化设备,并使用request_mem_region()和ioremap()函数来获取地址范围,然后设置驱动程序的时钟和其他寄存器。 request_mem_region()实际上是做什么的,何时需要? 现在,如果我的芯片上和芯片外设备的设备驱动程序正在进行完整的板级初始化。 那么内核中的“扁平设备树”有什么用处?
https://wiki.freebsd.org/FlattenedDeviceTree
为什么内核需要板级配置信息?我问这个问题是因为每当我们在Linux中制作设备驱动程序时,我们都会在probe()或module_init()调用中初始化设备,并使用request_mem_region()和ioremap()函数来获取地址范围,然后设置驱动程序的时钟和其他寄存器。 request_mem_region()实际上是做什么的,何时需要? 现在,如果我的芯片上和芯片外设备的设备驱动程序正在进行完整的板级初始化。 那么内核中的“扁平设备树”有什么用处?