mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
cmd: gpt: backup boot code before writing MBR
On some cases the first 440 bytes of MBR are used to keep an additional information for ROM boot loader. 'gpt write' command doesn't preserve that area and makes boot code gone. Preserve boot code area when run 'gpt write' command. Signed-off-by: Vincent Tinelli <vincent.tinelli@intel.com> Signed-off-by: Brennan Ashton <brn@deako.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
d726f225f5
commit
e163a931af
1 changed files with 7 additions and 0 deletions
|
@ -324,6 +324,13 @@ static int set_protective_mbr(struct blk_desc *dev_desc)
|
||||||
printf("%s: calloc failed!\n", __func__);
|
printf("%s: calloc failed!\n", __func__);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Read MBR to backup boot code if it exists */
|
||||||
|
if (blk_dread(dev_desc, 0, 1, p_mbr) != 1) {
|
||||||
|
error("** Can't read from device %d **\n", dev_desc->devnum);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Append signature */
|
/* Append signature */
|
||||||
p_mbr->signature = MSDOS_MBR_SIGNATURE;
|
p_mbr->signature = MSDOS_MBR_SIGNATURE;
|
||||||
p_mbr->partition_record[0].sys_ind = EFI_PMBR_OSTYPE_EFI_GPT;
|
p_mbr->partition_record[0].sys_ind = EFI_PMBR_OSTYPE_EFI_GPT;
|
||||||
|
|
Loading…
Reference in a new issue