mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 06:24:17 +00:00
board: phycore-am62x: Extend for better environment handling
Select environment location based on the device we boot from. Also, introduce a "boot" variable that represents the current boot device and can be used by scripts. Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
This commit is contained in:
parent
2f9095e2bf
commit
d5e6401011
2 changed files with 65 additions and 0 deletions
|
@ -57,3 +57,67 @@ void spl_board_init(void)
|
|||
MCU_CTRL_DEVICE_CLKOUT_32K_CTRL);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_ENV_IS_IN_FAT) || IS_ENABLED(CONFIG_ENV_IS_IN_MMC)
|
||||
int mmc_get_env_dev(void)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
return 0;
|
||||
case BOOT_DEVICE_MMC2:
|
||||
return 1;
|
||||
};
|
||||
|
||||
return CONFIG_SYS_MMC_ENV_DEV;
|
||||
}
|
||||
#endif
|
||||
|
||||
enum env_location env_get_location(enum env_operation op, int prio)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
if (prio)
|
||||
return ENVL_UNKNOWN;
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
case BOOT_DEVICE_MMC2:
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_FAT))
|
||||
return ENVL_FAT;
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC))
|
||||
return ENVL_MMC;
|
||||
case BOOT_DEVICE_SPI:
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH))
|
||||
return ENVL_SPI_FLASH;
|
||||
default:
|
||||
return ENVL_NOWHERE;
|
||||
};
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_BOARD_LATE_INIT)
|
||||
int board_late_init(void)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
env_set_ulong("mmcdev", 0);
|
||||
env_set("boot", "mmc");
|
||||
break;
|
||||
case BOOT_DEVICE_MMC2:
|
||||
env_set_ulong("mmcdev", 1);
|
||||
env_set("boot", "mmc");
|
||||
break;
|
||||
case BOOT_DEVICE_SPI:
|
||||
env_set("boot", "spi");
|
||||
break;
|
||||
case BOOT_DEVICE_ETHERNET:
|
||||
env_set("boot", "net");
|
||||
break;
|
||||
};
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -33,6 +33,7 @@ CONFIG_BOOTSTD_FULL=y
|
|||
CONFIG_SYS_BOOTM_LEN=0x800000
|
||||
CONFIG_BOOTCOMMAND="run mmcboot; bootflow scan -lb"
|
||||
CONFIG_DEFAULT_FDT_FILE="oftree"
|
||||
CONFIG_BOARD_LATE_INIT=y
|
||||
CONFIG_SPL_MAX_SIZE=0x58000
|
||||
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
|
||||
CONFIG_SPL_BSS_START_ADDR=0x80c80000
|
||||
|
|
Loading…
Add table
Reference in a new issue