ENVL_MMC, #endif #ifdef CONFIG_ENV_IS_IN_NAND ENVL_NAND, #endif #ifdef CONFIG_ENV_IS_IN_NVRAM ENVL_NVRAM, #endif #ifdef CONFIG_ENV_IS_IN_REMOTE ENVL_REMOTE, #endif #ifdef CONFIG_ENV_IS_IN_SATA ENVL_ESATA, #endif #ifdef CONFIG_ENV_IS_IN_SPI_FLASH ENVL_SPI_FLASH, #endif #i...
通过U_BOOT_ENV_LOCATION宏可以将spi_flash相关驱动放到编译时链接脚本指定的段里面 通过env_driver_lookup_default();函数找到对应的env_driver,如上面的代码,env在spi_flash中。后面env_driver通过load等函数将env读出来放到env_htab一个哈希表中,如果使用的是default_environment也会解析后放到env_htab中。 几个...
void) { struct env_driver *drv; int ret = -ENOENT; int prio; for (prio = 0; (drv = env_driver_lookupENVOP_INIT, prio)); prio) { if (!drv->init || !(ret = drv->init())) env_set_inited(drv->location); debug("%s: Environment %s initdone (ret=%d)...
// 找到对应的driver,调用device_bind进行绑定,会在这个函数中创建对应udevice和uclass并切进行绑定,后面继续说明 if (ret) { dm_warn("Error binding driver '%s': %d\n", entry->name, ret); return ret; } else { dev->driver_data = id->data; found = true; if (devp) *devp = dev; //...
if (data->env) return -EINVAL;np = of_parse_phandle(dev->of_node, "memory-region", 0); if (!np) return -ENODEV;data->rmem = of_reserved_mem_lookup(np); of_node_put(np); if (!data->rmem) return -ENODEV;if (!data->rmem->size || (data->rmem->size > ULONG_MAX)) ...
env_init, /* initialize environment */ #if defined(CONFIG_8xx_CPUCLK_DEFAULT) /* get CPU and bus clocks according to the environment variable */ get_clocks_866, /* adjust sdram refresh rate according to the new clock */ sdram_adjust_866, ...
.driver和udevice的绑定 .部分driver函数的调用 (1)DM初始化调用过程 dm初始化的接口在dm_init_and_scan中。 可以发现在uboot relocate之前的initf_dm和之后的initr_dm都调用了这个函数。 static int initf_dm(void) { #if defined(CONFIG_DM) && defined(CONFIG_SYS_MALLOC_F_LEN) ...
omap_voltage_early_init: voltage driver support not added regulator: core version 0.5 regulator: dummy: NET: Registered protocol family 16 omap_voltage_domain_lookup: Voltage driver init not yet happened.Faulting! omap_voltage_add_dev: VDD specified does not exist!
0.5regulator: dummy:NET: Registered protocol family 16omap_voltage_domain_lookup: Voltage driver ...
- CFG_ENV_IS_IN_EEPROM: Use this if you have an EEPROM or similar serial access device and a driver for it. - CFG_ENV_OFFSET: - CFG_ENV_SIZE: These two #defines specify the offset and size of the environment area within the total memory of your EEPROM. - CFG_I2C_EEPROM_ADDR: ...