同大多数的Bootloader一样,uboot的启动过程也分为BL1、BL2两个阶段,分别对应着SPL和Uboot。 SPL(BL1阶段):负责开发板的基础配置和设备初始化,并且搬运Uboot到内存中,由汇编代码和少量的C语言实现 Uboot(BL2阶段):主要负责初始化外部设备,引导Kernel启动,由纯C语言实现。 我们这篇文章,主要介绍Uboot(BL2阶段)的...
AI代码解释 +&i2c2{+u-boot,dm-spl;+clock-frequency=<400000>;+status="okay";++at24:at24@51{+compatible="atmel,24c512";+reg=<0x51>;+pagesize=<128>;+};+}; 3)cmd/i2c.c 代码语言:javascript 代码运行次数:0 运行 AI代码解释 #ifdefCONFIG_DM_I2C-#defineDEFAULT_ADDR_LEN(-1)+#defineDE...
其中-T u-boot-spl.lds表示从u-boot-spl.lds中读取链接脚本;-Ttext 0xfc000000表示从.text段起始地址为0xfc000000,并且start.o是spl的起始;--start-group和--end-group表示一个group的起始和结束标志,中间是group的内容;-Map u-boot-spl.map表示输出map文件到u-boot-spl.map;-o u-boot-spl表示输出可执...
libs-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/ libs-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/ 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/...
同大多数的Bootloader一样,uboot的启动过程也分为BL1、BL2两个阶段,分别对应着SPL和Uboot。 SPL(BL1阶段):负责开发板的基础配置和设备初始化,并且搬运Uboot到内存中,由汇编代码和少量的C语言实现 Uboot(BL2阶段):主要负责初始化外部设备,引导Kernel启动,由纯C语言实现。
驱动模型DM 驱动模型的结构 驱动模型的初始化 环境变量 board_init_f流程 board_init_r流程 U-boot支持的主要特性 uboot在初始化完成后会为用户提供一个命令行交互接口,用户可通过该接口执行uboot定义的命令,以用于查看系统状态,设置环境变量和系统参数等。为了方便对硬件和驱动的管理,uboot还引入了类似linux内核的...
select DM_GPIO select DM_SERIAL select TI_I2C_BOARD_DETECT imply CMD_DM imply SPL_DM imply SPL_DM_SEQ_ALIAS imply SPL_ENV_SUPPORT imply SPL_FS_EXT4 imply SPL_FS_FAT imply SPL_GPIO imply SPL_I2C imply SPL_LIBCOMMON_SUPPORT imply SPL_LIBDISK_SUPPORT ...
在管理驱动的Makefile文件中,也能看到obj-$(CONFIG_$(SPL_)DM_MMC) += mmc-uclass.o,来判断是否将驱动模型加入到编译选项中。 总之,我们要打开DM模型,最后反映在几个配置信息上: CONFIG_DM=y,全局DM模型打开 CONFIG_DM_XXX=y,某个驱动的DM模型的打开 ...
5.6 initf_dm driver model有关的初始化操作。如果定义了CONFIG_DM,则调用dm_init_and_scan初始化并扫描系统所有的device。如果定义了CONFIG_TIMER_EARLY,调用dm_timer_init初始化driver model所需的timer。 5.7 board_early_init_f 代码语言:javascript
修改如下内容:aliases {i2c3 = &i2c4;mmc0 = &sdmmc1;usb0 = &usbotg_hs;};修改为(红色字体为增加内容):aliases {i2c3 = &i2c4;mmc0 = &sdmmc1;mmc1 = &sdmmc2;usb0 = &usbotg_hs;};在sdmmc1节点后sdmmc2的内容(红色字体部分为添加内容):&sdmmc1 {u-boot,dm-spl;};&sdmmc2 {u-...