protos/multiboot2: Implement relocatable preference=2 (prefer highest)
diff --git a/common/protos/multiboot2.c b/common/protos/multiboot2.c
index a1ccc26e..46393a86 100644
--- a/common/protos/multiboot2.c
+++ b/common/protos/multiboot2.c
@@ -377,23 +377,20 @@ noreturn void multiboot2_load(char *config, char* cmdline) {
switch (reloc_tag.preference) {
default:
- case 0: case 1: case 2: // Prefer lowest to highest
+ case 0: case 1: // No preference / prefer lowest
reloc_ascend = true;
relocated_base = ALIGN_UP(reloc_tag.min_addr, reloc_tag.align);
if (relocated_base + ranges->length > reloc_tag.max_addr) {
goto reloc_fail;
}
break;
-/*
- XXX: We do not support this properly, hence ignore, for now.
- case 2: // Prefer highest to lowest
+ case 2: // Prefer highest
reloc_ascend = false;
relocated_base = ALIGN_DOWN(reloc_tag.max_addr - ranges->length, reloc_tag.align);
if (relocated_base < reloc_tag.min_addr) {
goto reloc_fail;
}
break;
-*/
}
for (;;) {
