mmc: fsl_esdhc: fix check_and_invalidate_dcache_range function
[oweals/u-boot.git] / disk / part_efi.c
index 209a671d3eed7f3af337817495ec90a601691874..0af1e9248d0f867e949c29f2a1e2ab4fc69ab65b 100644 (file)
@@ -176,7 +176,7 @@ static void prepare_backup_gpt_header(gpt_header *gpt_h)
  * Public Functions (include/part.h)
  */
 
-void print_part_efi(struct blk_desc *dev_desc)
+void part_print_efi(struct blk_desc *dev_desc)
 {
        ALLOC_CACHE_ALIGN_BUFFER_PAD(gpt_header, gpt_head, 1, dev_desc->blksz);
        gpt_entry *gpt_pte = NULL;
@@ -184,10 +184,6 @@ void print_part_efi(struct blk_desc *dev_desc)
        char uuid[37];
        unsigned char *uuid_bin;
 
-       if (!dev_desc) {
-               printf("%s: Invalid Argument(s)\n", __func__);
-               return;
-       }
        /* This function validates AND fills in the GPT header and PTE */
        if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA,
                         gpt_head, &gpt_pte) != 1) {
@@ -244,7 +240,7 @@ int part_get_info_efi(struct blk_desc *dev_desc, int part,
        gpt_entry *gpt_pte = NULL;
 
        /* "part" argument must be at least 1 */
-       if (!dev_desc || !info || part < 1) {
+       if (part < 1) {
                printf("%s: Invalid Argument(s)\n", __func__);
                return -1;
        }
@@ -319,12 +315,12 @@ int part_get_info_efi_by_name(struct blk_desc *dev_desc,
        return -2;
 }
 
-static int test_part_efi(struct blk_desc *dev_desc)
+static int part_test_efi(struct blk_desc *dev_desc)
 {
        ALLOC_CACHE_ALIGN_BUFFER_PAD(legacy_mbr, legacymbr, 1, dev_desc->blksz);
 
        /* Read legacy MBR from block 0 and validate it */
-       if ((dev_desc->block_read(dev_desc, 0, 1, (ulong *)legacymbr) != 1)
+       if ((blk_dread(dev_desc, 0, 1, (ulong *)legacymbr) != 1)
                || (is_pmbr_valid(legacymbr) != 1)) {
                return -1;
        }
@@ -354,9 +350,9 @@ static int set_protective_mbr(struct blk_desc *dev_desc)
        p_mbr->partition_record[0].nr_sects = (u32) dev_desc->lba - 1;
 
        /* Write MBR sector to the MMC device */
-       if (dev_desc->block_write(dev_desc, 0, 1, p_mbr) != 1) {
+       if (blk_dwrite(dev_desc, 0, 1, p_mbr) != 1) {
                printf("** Can't write to device %d **\n",
-                       dev_desc->dev);
+                       dev_desc->devnum);
                return -1;
        }
 
@@ -386,31 +382,28 @@ int write_gpt_table(struct blk_desc *dev_desc,
        gpt_h->header_crc32 = cpu_to_le32(calc_crc32);
 
        /* Write the First GPT to the block right after the Legacy MBR */
-       if (dev_desc->block_write(dev_desc, 1, 1, gpt_h) != 1)
+       if (blk_dwrite(dev_desc, 1, 1, gpt_h) != 1)
                goto err;
 
-       if (dev_desc->block_write(dev_desc, 2, pte_blk_cnt, gpt_e)
+       if (blk_dwrite(dev_desc, 2, pte_blk_cnt, gpt_e)
            != pte_blk_cnt)
                goto err;
 
        prepare_backup_gpt_header(gpt_h);
 
-       if (dev_desc->block_write(dev_desc,
-                                 (lbaint_t)le64_to_cpu(gpt_h->last_usable_lba)
-                                 + 1,
-                                 pte_blk_cnt, gpt_e) != pte_blk_cnt)
+       if (blk_dwrite(dev_desc, (lbaint_t)le64_to_cpu(gpt_h->last_usable_lba)
+                      + 1, pte_blk_cnt, gpt_e) != pte_blk_cnt)
                goto err;
 
-       if (dev_desc->block_write(dev_desc,
-                                 (lbaint_t)le64_to_cpu(gpt_h->my_lba), 1,
-                                 gpt_h) != 1)
+       if (blk_dwrite(dev_desc, (lbaint_t)le64_to_cpu(gpt_h->my_lba), 1,
+                      gpt_h) != 1)
                goto err;
 
        debug("GPT successfully written to block device!\n");
        return 0;
 
  err:
-       printf("** Can't write to device %d **\n", dev_desc->dev);
+       printf("** Can't write to device %d **\n", dev_desc->devnum);
        return -1;
 }
 
@@ -446,7 +439,7 @@ int gpt_fill_pte(gpt_header *gpt_h, gpt_entry *gpt_e,
                        gpt_e[i].starting_lba = cpu_to_le64(offset);
                        offset += partitions[i].size;
                }
-               if (offset >= last_usable_lba) {
+               if (offset > (last_usable_lba + 1)) {
                        printf("Partitions layout exceds disk size\n");
                        return -1;
                }
@@ -739,7 +732,7 @@ int write_mbr_and_gpt_partitions(struct blk_desc *dev_desc, void *buf)
        /* write MBR */
        lba = 0;        /* MBR is always at 0 */
        cnt = 1;        /* MBR (1 block) */
-       if (dev_desc->block_write(dev_desc, lba, cnt, buf) != cnt) {
+       if (blk_dwrite(dev_desc, lba, cnt, buf) != cnt) {
                printf("%s: failed writing '%s' (%d blks at 0x" LBAF ")\n",
                       __func__, "MBR", cnt, lba);
                return 1;
@@ -748,7 +741,7 @@ int write_mbr_and_gpt_partitions(struct blk_desc *dev_desc, void *buf)
        /* write Primary GPT */
        lba = GPT_PRIMARY_PARTITION_TABLE_LBA;
        cnt = 1;        /* GPT Header (1 block) */
-       if (dev_desc->block_write(dev_desc, lba, cnt, gpt_h) != cnt) {
+       if (blk_dwrite(dev_desc, lba, cnt, gpt_h) != cnt) {
                printf("%s: failed writing '%s' (%d blks at 0x" LBAF ")\n",
                       __func__, "Primary GPT Header", cnt, lba);
                return 1;
@@ -756,7 +749,7 @@ int write_mbr_and_gpt_partitions(struct blk_desc *dev_desc, void *buf)
 
        lba = le64_to_cpu(gpt_h->partition_entry_lba);
        cnt = gpt_e_blk_cnt;
-       if (dev_desc->block_write(dev_desc, lba, cnt, gpt_e) != cnt) {
+       if (blk_dwrite(dev_desc, lba, cnt, gpt_e) != cnt) {
                printf("%s: failed writing '%s' (%d blks at 0x" LBAF ")\n",
                       __func__, "Primary GPT Entries", cnt, lba);
                return 1;
@@ -767,7 +760,7 @@ int write_mbr_and_gpt_partitions(struct blk_desc *dev_desc, void *buf)
        /* write Backup GPT */
        lba = le64_to_cpu(gpt_h->partition_entry_lba);
        cnt = gpt_e_blk_cnt;
-       if (dev_desc->block_write(dev_desc, lba, cnt, gpt_e) != cnt) {
+       if (blk_dwrite(dev_desc, lba, cnt, gpt_e) != cnt) {
                printf("%s: failed writing '%s' (%d blks at 0x" LBAF ")\n",
                       __func__, "Backup GPT Entries", cnt, lba);
                return 1;
@@ -775,7 +768,7 @@ int write_mbr_and_gpt_partitions(struct blk_desc *dev_desc, void *buf)
 
        lba = le64_to_cpu(gpt_h->my_lba);
        cnt = 1;        /* GPT Header (1 block) */
-       if (dev_desc->block_write(dev_desc, lba, cnt, gpt_h) != cnt) {
+       if (blk_dwrite(dev_desc, lba, cnt, gpt_h) != cnt) {
                printf("%s: failed writing '%s' (%d blks at 0x" LBAF ")\n",
                       __func__, "Backup GPT Header", cnt, lba);
                return 1;
@@ -845,7 +838,7 @@ static int is_gpt_valid(struct blk_desc *dev_desc, u64 lba,
        }
 
        /* Read GPT Header from device */
-       if (dev_desc->block_read(dev_desc, (lbaint_t)lba, 1, pgpt_head) != 1) {
+       if (blk_dread(dev_desc, (lbaint_t)lba, 1, pgpt_head) != 1) {
                printf("*** ERROR: Can't read GPT header ***\n");
                return 0;
        }
@@ -913,8 +906,7 @@ static gpt_entry *alloc_read_gpt_entries(struct blk_desc *dev_desc,
        /* Read GPT Entries from device */
        blk = le64_to_cpu(pgpt_head->partition_entry_lba);
        blk_cnt = BLOCK_CNT(count, dev_desc);
-       if (dev_desc->block_read(dev_desc, blk, (lbaint_t)blk_cnt, pte)
-           != blk_cnt) {
+       if (blk_dread(dev_desc, blk, (lbaint_t)blk_cnt, pte) != blk_cnt) {
                printf("*** ERROR: Can't read GPT Entries ***\n");
                free(pte);
                return NULL;
@@ -963,7 +955,7 @@ U_BOOT_PART_TYPE(a_efi) = {
        .name           = "EFI",
        .part_type      = PART_TYPE_EFI,
        .get_info       = part_get_info_ptr(part_get_info_efi),
-       .print          = part_print_ptr(print_part_efi),
-       .test           = test_part_efi,
+       .print          = part_print_ptr(part_print_efi),
+       .test           = part_test_efi,
 };
 #endif