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_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,然后增加了配置 CONFIG_LED_GPIO=y CONFIG_LED=y CONFIG_DM_GPIO=y。 3,搜索compatible = "gpio-leds"的关键字,找到driver为gpio_led_wrap。 static const struct udevice_id led_gpio_ids[] = { { .compatible = "gpio-leds" }, { } }; U_BOOT_DRIVER(led_gpio_wrap) = { .name = "gpio_...
我以armv8的RK3588为例,写一篇关于U-Boot启动流程如下,仅列出一些重要调用流程 //汇编环境 => reset //start.S save_boot_params //保存上一级镜像传入的参数 save_boot_params_ret lowlevel_init CONFIG_SYS_INIT_SP_ADDR = 0x00800000 //以RK3588为例栈地址是0x00800000,其他平台的设置的栈地址不一样 ...
uboot驱动模型(DM)uboot驱动模型(DM) http://betheme.net/news/txtlist_i88327v.html 两个关键宏U_BOOT_DRIVER及U_BOOT_DEVICES的作用 static const struct driver_info root_info = { .name = "root_driver", }; /* This is the root driver - all drivers are children of this */...
libs-$(CONFIG_SPL_DM) += drivers/core/ libs-$(CONFIG_SPL_I2C_SUPPORT) += drivers/i2c/ libs-$(CONFIG_SPL_GPIO_SUPPORT) += drivers/gpio/ libs-$(CONFIG_SPL_MMC_SUPPORT) += drivers/mmc/ libs-$(CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT) += drivers/ddr/fsl/ libs-$(CONFIG_SYS_MVEBU_DDR...
若定义了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的设备模型比较类似,利用它可以将设备与驱动分离。对上可以为...
*/ #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK) ldr sp, =CONFIG_SPL_STACK #else ldr sp, =CONFIG_SYS_INIT_SP_ADDR #endif bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ #ifdef CONFIG_SPL_DM mov r9, #0 #else /* * Set up global...
基址由CONFIG_SYS_INIT_SP_ADDR定义。 2)分配global data所需的空间 将堆栈16 bits对齐之后,调用board_init_f_alloc_reserve接口,从堆栈开始的地方,为u-boot的global data(struct global_data)分配空间。如下: 代码语言:javascript 代码运行次数:0 复制 ...
configTARGET_MX6ULL_MYBOARDbool"Support mx6ull_myboard"selectMX6ULLselectDMselectDM_THERMAL 然后,在最后一行的endif的前一行添加如下内容: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 source"board/freescale/mx6ull_myboard/Kconfig" ...