void spl_sata_load_image(void) { int err; block_dev_desc_t *stor_dev; err = init_sata(CONFIG_SPL_SATA_BOOT_DEVICE); if (err) { #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT printf("spl: sata init failed: err - %d\n", err); #endif hang(); } else { /* try to recognize storage devices immediately */ scsi_scan(0); stor_dev = scsi_get_dev(0); } #ifdef CONFIG_SPL_OS_BOOT if (spl_start_uboot() || spl_load_image_fat_os(stor_dev, CONFIG_SYS_SATA_FAT_BOOT_PARTITION)) #endif err = spl_load_image_fat(stor_dev, CONFIG_SYS_SATA_FAT_BOOT_PARTITION, CONFIG_SPL_FS_LOAD_PAYLOAD_NAME); if (err) { puts("Error loading sata device\n"); hang(); } }
block_dev_desc_t *get_dev (char* ifname, int dev) { #if (CONFIG_COMMANDS & CFG_CMD_IDE) if (strncmp(ifname,"ide",3)==0) { extern block_dev_desc_t * ide_get_dev(int dev); return(ide_get_dev(dev)); } #endif #if (CONFIG_COMMANDS & CFG_CMD_SCSI) if (strncmp(ifname,"scsi",4)==0) { extern block_dev_desc_t * scsi_get_dev(int dev); return(scsi_get_dev(dev)); } #endif #if ((CONFIG_COMMANDS & CFG_CMD_USB) && defined(CONFIG_USB_STORAGE)) if (strncmp(ifname,"usb",3)==0) { extern block_dev_desc_t * usb_stor_get_dev(int dev); return(usb_stor_get_dev(dev)); } #endif #if defined(CONFIG_MMC) if (strncmp(ifname,"mmc",3)==0) { extern block_dev_desc_t * mmc_get_dev(int dev); return(mmc_get_dev(dev)); } #endif #if defined(CONFIG_SYSTEMACE) if (strcmp(ifname,"ace")==0) { extern block_dev_desc_t * systemace_get_dev(int dev); return(systemace_get_dev(dev)); } #endif return NULL; }