Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Rob Clark's avatar
    884bcf6f
    efi_loader: use proper device-paths for partitions · 884bcf6f
    Rob Clark authored
    
    Also, create disk objects for the disk itself, in addition to the
    partitions.  (UEFI terminology is a bit confusing, a "disk" object is
    really a partition.)  This helps grub properly identify the boot device
    since it is trying to match up partition "disk" object with it's parent
    device.
    
    Now instead of seeing devices like:
    
      /File(sdhci@07864000.blk)/EndEntire
      /File(usb_mass_storage.lun0)/EndEntire
    
    You see:
    
      /ACPI(133741d0,0)/UnknownMessaging(1d)/EndEntire
      /ACPI(133741d0,0)/UnknownMessaging(1d)/HD(0,800,64000,dd904a8c00000000,1,1)/EndEntire
      /ACPI(133741d0,0)/UnknownMessaging(1d)/HD(1,64800,200000,dd904a8c00000000,1,1)/EndEntire
      /ACPI(133741d0,0)/UnknownMessaging(1d)/HD(2,264800,19a000,dd904a8c00000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(0,800,60000,38ca680200000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(1,61000,155000,38ca680200000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(2,20fa800,1bbf8800,38ca680200000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(3,1b6800,1f44000,38ca680200000000,1,1)/EndEntire
    
    This is on a board with single USB disk and single sd-card.  The
    UnknownMessaging(1d) node in the device-path is the MMC device,
    but grub_efi_print_device_path() hasn't been updated yet for some
    of the newer device-path sub-types.
    
    This patch is inspired by a patch originally from Peter Jones, but
    re-worked to use efi_device_path, so it doesn't much resemble the
    original.
    
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    [agraf: s/unsigned/unsigned int/]
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    884bcf6f
    History
    efi_loader: use proper device-paths for partitions
    Rob Clark authored
    
    Also, create disk objects for the disk itself, in addition to the
    partitions.  (UEFI terminology is a bit confusing, a "disk" object is
    really a partition.)  This helps grub properly identify the boot device
    since it is trying to match up partition "disk" object with it's parent
    device.
    
    Now instead of seeing devices like:
    
      /File(sdhci@07864000.blk)/EndEntire
      /File(usb_mass_storage.lun0)/EndEntire
    
    You see:
    
      /ACPI(133741d0,0)/UnknownMessaging(1d)/EndEntire
      /ACPI(133741d0,0)/UnknownMessaging(1d)/HD(0,800,64000,dd904a8c00000000,1,1)/EndEntire
      /ACPI(133741d0,0)/UnknownMessaging(1d)/HD(1,64800,200000,dd904a8c00000000,1,1)/EndEntire
      /ACPI(133741d0,0)/UnknownMessaging(1d)/HD(2,264800,19a000,dd904a8c00000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(0,800,60000,38ca680200000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(1,61000,155000,38ca680200000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(2,20fa800,1bbf8800,38ca680200000000,1,1)/EndEntire
      /ACPI(133741d0,0)/USB(0,0)/USB(0,0)/USB(0,0)/HD(3,1b6800,1f44000,38ca680200000000,1,1)/EndEntire
    
    This is on a board with single USB disk and single sd-card.  The
    UnknownMessaging(1d) node in the device-path is the MMC device,
    but grub_efi_print_device_path() hasn't been updated yet for some
    of the newer device-path sub-types.
    
    This patch is inspired by a patch originally from Peter Jones, but
    re-worked to use efi_device_path, so it doesn't much resemble the
    original.
    
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    [agraf: s/unsigned/unsigned int/]
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>