EFI and OF both support firmware regions which may be in use during loading.
Add support for avoiding these.
---
ChangeLog| 10 +
grub-core/lib/efi/relocator.c| 51 ++
grub-core/lib/ieee1275/relocator.c |
On 08.02.2012 17:55, Matthew Garrett wrote:
EFI and OF both support firmware regions which may be in use during loading.
+unsigned
+grub_relocator_firmware_overlaps (grub_phys_addr_t target, grub_size_t size)
+{
+ grub_efi_uintn_t mmapsize = 0, desc_size = 0;
+ grub_efi_uint32_t descriptor_ver
On 08.02.2012 17:55, Matthew Garrett wrote:
+if (type == GRUB_MEMORY_AVAILABLE)
+ return 0;
+
+if (target>= addr&& target<= end)
+ overlap = 1;
+
+if (target + size>= addr&& target + size<= end)
+ overlap = 1;
This won't work. IEEE1275 declares only one type of memory
On 08.02.2012 17:55, Matthew Garrett wrote:
EFI and OF both support firmware regions which may be in use during loading.
Add support for avoiding these.
Also Seth Goldberg noticed that using chunk_align with start=end=target
does exactly what we want (as if avoid=1). You may need to modify
efi/