]> git.sur5r.net Git - u-boot/commitdiff
disk: part_efi: resolve endianness issues
authorSteve Rae <srae@broadcom.com>
Mon, 26 May 2014 18:52:22 +0000 (11:52 -0700)
committerTom Rini <trini@ti.com>
Thu, 5 Jun 2014 18:44:56 +0000 (14:44 -0400)
Tested on little endian ARMv7 and ARMv8 configurations

Signed-off-by: Steve Rae <srae@broadcom.com>
disk/part_efi.c

index c74b7b91705b8eb1b21385127d5fbbc8d45cbe28..8c8974093020c6f5143684c22b1494e4b0ad6ac4 100644 (file)
@@ -279,7 +279,7 @@ int write_gpt_table(block_dev_desc_t *dev_desc,
        gpt_h->header_crc32 = cpu_to_le32(calc_crc32);
 
        if (dev_desc->block_write(dev_desc->dev,
-                                 le32_to_cpu(gpt_h->last_usable_lba + 1),
+                                 le32_to_cpu(gpt_h->last_usable_lba) + 1,
                                  pte_blk_cnt, gpt_e) != pte_blk_cnt)
                goto err;
 
@@ -300,6 +300,7 @@ int gpt_fill_pte(gpt_header *gpt_h, gpt_entry *gpt_e,
 {
        u32 offset = (u32)le32_to_cpu(gpt_h->first_usable_lba);
        ulong start;
+       u32 last_usable_lba = (u32)le32_to_cpu(gpt_h->last_usable_lba);
        int i, k;
        size_t efiname_len, dosname_len;
 #ifdef CONFIG_PARTITION_UUIDS
@@ -321,7 +322,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 >= gpt_h->last_usable_lba) {
+               if (offset >= last_usable_lba) {
                        printf("Partitions layout exceds disk size\n");
                        return -1;
                }