mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
part: efi: Fix offset
Both the config option and the DT options specify the offset to set the GPT at in bytes, yet the code treats those values as block numbers. Fix that. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:
parent
41a85fe3b9
commit
89d33a2c0d
1 changed files with 7 additions and 3 deletions
|
@ -534,6 +534,7 @@ int gpt_fill_pte(gpt_header *gpt_h, gpt_entry *gpt_e,
|
|||
static uint32_t partition_entries_offset(struct blk_desc *dev_desc)
|
||||
{
|
||||
uint32_t offset_blks = 2;
|
||||
uint32_t __maybe_unused offset_bytes;
|
||||
int __maybe_unused config_offset;
|
||||
|
||||
#if defined(CONFIG_EFI_PARTITION_ENTRIES_OFF)
|
||||
|
@ -545,8 +546,9 @@ static uint32_t partition_entries_offset(struct blk_desc *dev_desc)
|
|||
* the disk) for the entries can be set in
|
||||
* CONFIG_EFI_PARTITION_ENTRIES_OFF.
|
||||
*/
|
||||
offset_blks =
|
||||
offset_bytes =
|
||||
PAD_TO_BLOCKSIZE(CONFIG_EFI_PARTITION_ENTRIES_OFF, dev_desc);
|
||||
offset_blks = offset_bytes / dev_desc->blksz;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OF_CONTROL)
|
||||
|
@ -558,8 +560,10 @@ static uint32_t partition_entries_offset(struct blk_desc *dev_desc)
|
|||
config_offset = fdtdec_get_config_int(gd->fdt_blob,
|
||||
"u-boot,efi-partition-entries-offset",
|
||||
-EINVAL);
|
||||
if (config_offset != -EINVAL)
|
||||
offset_blks = PAD_TO_BLOCKSIZE(config_offset, dev_desc);
|
||||
if (config_offset != -EINVAL) {
|
||||
offset_bytes = PAD_TO_BLOCKSIZE(config_offset, dev_desc);
|
||||
offset_blks = offset_bytes / dev_desc->blksz;
|
||||
}
|
||||
#endif
|
||||
|
||||
debug("efi: partition entries offset (in blocks): %d\n", offset_blks);
|
||||
|
|
Loading…
Reference in a new issue