CONFIG_IS_ENABLED(DM_MMC),来判断是否打开DM驱动模型。 在管理驱动的Makefile文件中,也能看到obj-$(CONFIG_$(SPL_)DM_MMC) += mmc-uclass.o,来判断是否将驱动模型加入到编译选项中。 总之,我们要打开DM模型,最后反映在几个配置信息上: CONFIG_DM=y,全局DM模型打开 CONFIG_DM_XXX=y,某个驱动的DM模型的...
2. DM模型的初始化:dm_init 在全局数据global_data定义了DM根节点,dm初始化的接口在dm_init_and_scan(bool pre_reloc_only)中,初始化流程主要有两次,入口函数分别是static int initf_dm(void)和static int initr_dm(void)。第一次是在重定位之前,...
CONFIG_ARM=y CONFIG_TARGET_TESTBOARD=y CONFIG_POSITION_INDEPENDENT=y CONFIG_NR_DRAM_BANKS=1 CONFIG_ENV_SIZE=0x40000 CONFIG_ENV_SECT_SIZE=0x40000 CONFIG_DEFAULT_DEVICE_TREE="test-board-minimal" CONFIG_ENV_ADDR=0x4000000 CONFIG_OF_CONTROL=y CONFIG_OF_SEPARATE=y CONFIG_DM_SERIAL=y CONFIG_DM_...
CONFIG_IS_ENABLED(DM_MMC),来判断是否打开DM驱动模型。 在管理驱动的Makefile文件中,也能看到obj-$(CONFIG_$(SPL_)DM_MMC) += mmc-uclass.o,来判断是否将驱动模型加入到编译选项中。 总之,我们要打开DM模型,最后反映在几个配置信息上: CONFIG_DM=y,全局DM模型打开 CONFIG_DM_XXX=y,某个驱动的DM模型的...
若定义了CONFIG_OF_SEPARATE选项,dtb将会被编译为u-boot.dtb文件,而uboot原始镜像被编译为u-boot-nodtb.bin文件,并通过以下命令将它们连接为最终的uboot.bin文件: cat u-boot-nodtb.bin u-boot.dtb >uboot.bin 驱动模型DM U-boot驱动模型与linux的设备模型比较类似,利用它可以将设备与驱动分离。对上可以为...
@echo"=== WARNING ==="@echo"This board uses CONFIG_DM_I2C_COMPAT. Please remove"@echo"(possibly in a subsequent patch in your series)"@echo"before sending patches to the mailing list."@echo"==="endif 5.3 目标$(ALL-y) $(ALL-y)定义了最终需要生成的所有文件,731行 # Always append AL...
dm_root_f:重定向前的根设备 uclass_root:uclass链表的头 typedefstructglobal_data { ... #ifdef CONFIG_DMstructudevice *dm_root;/*Root instance for Driver Model*/structudevice *dm_root_f;/*Pre-relocation root instance*/structlist_head uclass_root;/*Head of core tree*/#endif... ...
在使用dm-gpio之前,我们需要在u-boot的配置文件中开启CONFIG_DM_GPIO选项,以启用dm-gpio功能。 在u-boot中使用dm-gpio的方法如下: 1. 初始化dm-gpio设备:在u-boot启动过程中,我们可以通过调用dm_gpio_init函数来初始化dm-gpio设备。该函数会扫描系统中的GPIO设备,并将其注册到设备模型中。 2. 获取GPIO设备:...
基址由CONFIG_SYS_INIT_SP_ADDR定义。 2)分配global data所需的空间 将堆栈16 bits对齐之后,调用board_init_f_alloc_reserve接口,从堆栈开始的地方,为u-boot的global data(struct global_data)分配空间。如下: 代码语言:javascript 代码运行次数:0 运行 ...
最后我看源码时发现,源码中强制使用了CONFIG_DM_ETH,而以前的旧版本则没有,我尝试着,去掉CONFIG_DM_ETH这个配置选项,选择编译eth_legacy.c这个驱动,但是再次编译会报错。编译无法通过 config TARGET_AM43XX_EVM bool "Support am43xx_evm" select BOARD_LATE_INIT ...