|
@@ -17,7 +17,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
|
static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
|
|
|
{
|
|
|
- unsigned long err;
|
|
|
+ unsigned long count;
|
|
|
u32 image_size_sectors;
|
|
|
struct image_header *header;
|
|
|
|
|
@@ -25,8 +25,8 @@ static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
|
|
|
sizeof(struct image_header));
|
|
|
|
|
|
/* read image header to find the image size & load address */
|
|
|
- err = mmc->block_dev.block_read(0, sector, 1, header);
|
|
|
- if (err == 0)
|
|
|
+ count = mmc->block_dev.block_read(0, sector, 1, header);
|
|
|
+ if (count == 0)
|
|
|
goto end;
|
|
|
|
|
|
if (image_get_magic(header) != IH_MAGIC)
|
|
@@ -39,24 +39,29 @@ static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
|
|
|
mmc->read_bl_len;
|
|
|
|
|
|
/* Read the header too to avoid extra memcpy */
|
|
|
- err = mmc->block_dev.block_read(0, sector, image_size_sectors,
|
|
|
- (void *)spl_image.load_addr);
|
|
|
+ count = mmc->block_dev.block_read(0, sector, image_size_sectors,
|
|
|
+ (void *) spl_image.load_addr);
|
|
|
|
|
|
end:
|
|
|
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
|
|
- if (err == 0)
|
|
|
+ if (count == 0)
|
|
|
printf("spl: mmc block read error\n");
|
|
|
#endif
|
|
|
|
|
|
- return (err == 0);
|
|
|
+ if (count == 0)
|
|
|
+ return -1;
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
|
|
|
static int mmc_load_image_raw_partition(struct mmc *mmc, int partition)
|
|
|
{
|
|
|
disk_partition_t info;
|
|
|
+ int err;
|
|
|
|
|
|
- if (get_partition_info(&mmc->block_dev, partition, &info)) {
|
|
|
+ err = get_partition_info(&mmc->block_dev, partition, &info);
|
|
|
+ if (err) {
|
|
|
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
|
|
printf("spl: partition error\n");
|
|
|
#endif
|
|
@@ -70,13 +75,13 @@ static int mmc_load_image_raw_partition(struct mmc *mmc, int partition)
|
|
|
#ifdef CONFIG_SPL_OS_BOOT
|
|
|
static int mmc_load_image_raw_os(struct mmc *mmc)
|
|
|
{
|
|
|
- unsigned long err;
|
|
|
+ unsigned long count;
|
|
|
|
|
|
- err = mmc->block_dev.block_read(0,
|
|
|
- CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
|
|
|
- CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS,
|
|
|
- (void *)CONFIG_SYS_SPL_ARGS_ADDR);
|
|
|
- if (err == 0) {
|
|
|
+ count = mmc->block_dev.block_read(0,
|
|
|
+ CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
|
|
|
+ CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS,
|
|
|
+ (void *) CONFIG_SYS_SPL_ARGS_ADDR);
|
|
|
+ if (count == 0) {
|
|
|
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
|
|
printf("spl: mmc block read error\n");
|
|
|
#endif
|