提交 2db1eba1 编写于 作者: H Heinrich Schuchardt 提交者: Alexander Graf

efi_loader: correctly determine the boot partition

The device path of the loaded image should be set to the partition
from which the image was loaded. This requires using the same logic as
the load command.

Without the patch the device path pointed to the whole disk after executing

	load mmc 0: 0x43000000 FILE

and not to the boot partition from which the file was actually loaded.
Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: NAlexander Graf <agraf@suse.de>
上级 b6dd5777
......@@ -468,16 +468,6 @@ U_BOOT_CMD(
bootefi_help_text
);
static int parse_partnum(const char *devnr)
{
const char *str = strchr(devnr, ':');
if (str) {
str++;
return simple_strtoul(str, NULL, 16);
}
return 0;
}
void efi_set_bootdev(const char *dev, const char *devnr, const char *path)
{
char filename[32] = { 0 }; /* dp->str is u16[32] long */
......@@ -485,12 +475,13 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path)
if (strcmp(dev, "Net")) {
struct blk_desc *desc;
disk_partition_t fs_partition;
int part;
desc = blk_get_dev(dev, simple_strtol(devnr, NULL, 10));
if (!desc)
part = blk_get_device_part_str(dev, devnr, &desc, &fs_partition,
1);
if (part < 0)
return;
part = parse_partnum(devnr);
bootefi_device_path = efi_dp_from_part(desc, part);
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册