]> git.sur5r.net Git - u-boot/blobdiff - disk/part_efi.c
ARM: dts: rmobile: Enable SDHI on E3 Ebisu
[u-boot] / disk / part_efi.c
index bea8b20bbd17967e2d5f28050260f9708ed09bb8..5c1039f01304e4232d771fcb0fc2e8b87dc6fb72 100644 (file)
@@ -1,8 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (C) 2008 RuggedCom, Inc.
  * Richard Retanubun <RichardRetanubun@RuggedCom.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
@@ -24,7 +23,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#ifdef HAVE_BLOCK_DEVICE
+#ifdef CONFIG_HAVE_BLOCK_DEVICE
 /**
  * efi_crc32() - EFI version of crc32 function
  * @buf: buffer to calculate crc32 of
@@ -351,8 +350,6 @@ static int set_protective_mbr(struct blk_desc *dev_desc)
 {
        /* Setup the Protective MBR */
        ALLOC_CACHE_ALIGN_BUFFER_PAD(legacy_mbr, p_mbr, 1, dev_desc->blksz);
-       memset(p_mbr, 0, sizeof(*p_mbr));
-
        if (p_mbr == NULL) {
                printf("%s: calloc failed!\n", __func__);
                return -1;
@@ -364,6 +361,10 @@ static int set_protective_mbr(struct blk_desc *dev_desc)
                return -1;
        }
 
+       /* Clear all data in MBR except of backed up boot code */
+       memset((char *)p_mbr + MSDOS_MBR_BOOT_CODE_SIZE, 0, sizeof(*p_mbr) -
+                       MSDOS_MBR_BOOT_CODE_SIZE);
+
        /* Append signature */
        p_mbr->signature = MSDOS_MBR_SIGNATURE;
        p_mbr->partition_record[0].sys_ind = EFI_PMBR_OSTYPE_EFI_GPT;