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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to