[U-Boot] loading environment from SATA
Ben Hewson
ben at frazer-nash.com
Thu Apr 30 14:57:58 CEST 2015
booting from SATA works very well on my iMX6 based board, however if I do
#define CONFIG_ENV_IS_IN_FAT
#if defined(CONFIG_ENV_IS_IN_FAT)
#define CONFIG_FAT_WRITE
#define FAT_ENV_INTERFACE "sata"
#define FAT_ENV_DEVICE_AND_PART "0:1"
#define FAT_ENV_FILE "u-boot.env"
#endif
nothing is loaded as the SATA has not been initialised.
Looking at board_r.c I can see lots of inits, for mmc, nand and other stuff,
but not sata.
Following the format I have added a function
#ifdef CONFIG_CMD_SATA
static int initr_sata(void)
{
puts("SATA: ");
sata_initialize();
return 0;
}
#endif
and inside init_fnc_t init_sequence_r[] = { after
#ifdef CONFIG_GENERIC_MMC
initr_mmc,
#endif
I have added
#ifdef CONFIG_CMD_SATA
initr_sata,
#endif
So this compiled and booted and to my surprise worked.
Is this the best way to achieve this. I can see potential problems if
sata_inialize() depends on other sub-systems being initialized first. I am
perhaps lucky that it works for me.
regards
Ben
More information about the U-Boot
mailing list