selfboot: Allow loading SeaBIOS into a reserved region in the lower 1MB
authorStefan Reinauer <reinauer@chromium.org>
Tue, 18 Oct 2011 22:11:04 +0000 (15:11 -0700)
committerStefan Reinauer <stefan.reinauer@coreboot.org>
Wed, 28 Mar 2012 19:32:20 +0000 (21:32 +0200)
This fixes loading SeaBIOS when lower memory is reserved.

Change-Id: Idbdcaf95f3307f97307f304d6d677406d059927d
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/732
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
src/boot/selfboot.c

index 99b1493ed7c39d0d6ed3db78a7845bb6bf41ed5c..67603f07db8878268ba55580e9f494ad4562bc2a 100644 (file)
@@ -146,6 +146,11 @@ static int valid_area(struct lb_memory *mem, unsigned long buffer,
                }
        }
        if (i == mem_entries) {
+               if (start < (1024*1024) && end <=(1024*1024)) {
+                       printk(BIOS_DEBUG, "Payload (probably SeaBIOS) loaded"
+                               " into a reserved area in the lower 1MB\n");
+                       return 1;
+               }
                printk(BIOS_ERR, "No matching ram area found for range:\n");
                printk(BIOS_ERR, "  [0x%016lx, 0x%016lx)\n", start, end);
                printk(BIOS_ERR, "Ram areas\n");