You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.1 KiB
70 lines
2.1 KiB
From 05a567228906c64062e4cbaa66245e15aea1b39d Mon Sep 17 00:00:00 2001 |
|
From: Vladimir Serbinenko <phcoder@gmail.com> |
|
Date: Sat, 28 Dec 2013 17:25:14 +0100 |
|
Subject: [PATCH 008/237] Don't abort() on unavailable coreboot tables if not |
|
running on coreboot. |
|
|
|
--- |
|
ChangeLog | 4 ++++ |
|
grub-core/kern/i386/coreboot/cbtable.c | 2 +- |
|
grub-core/kern/i386/coreboot/init.c | 5 +++++ |
|
3 files changed, 10 insertions(+), 1 deletion(-) |
|
|
|
diff --git a/ChangeLog b/ChangeLog |
|
index 0401f61..ed6d77c 100644 |
|
--- a/ChangeLog |
|
+++ b/ChangeLog |
|
@@ -1,3 +1,7 @@ |
|
+2013-12-28 Vladimir Serbinenko <phcoder@gmail.com> |
|
+ |
|
+ Don't abort() on unavailable coreboot tables if not running on coreboot. |
|
+ |
|
2013-12-28 Andrey Borzenkov <arvidjaar@gmail.com> |
|
|
|
* grub-core/kern/emu/misc.c: Remove unused error.h; fixes compilation |
|
diff --git a/grub-core/kern/i386/coreboot/cbtable.c b/grub-core/kern/i386/coreboot/cbtable.c |
|
index e3bb7b2..1669bc0 100644 |
|
--- a/grub-core/kern/i386/coreboot/cbtable.c |
|
+++ b/grub-core/kern/i386/coreboot/cbtable.c |
|
@@ -55,7 +55,7 @@ grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t, |
|
if (check_signature (table_header)) |
|
goto signature_found; |
|
|
|
- grub_fatal ("Could not find coreboot table\n"); |
|
+ return 0; |
|
|
|
signature_found: |
|
|
|
diff --git a/grub-core/kern/i386/coreboot/init.c b/grub-core/kern/i386/coreboot/init.c |
|
index 6b150b4..3314f02 100644 |
|
--- a/grub-core/kern/i386/coreboot/init.c |
|
+++ b/grub-core/kern/i386/coreboot/init.c |
|
@@ -51,6 +51,7 @@ grub_exit (void) |
|
|
|
grub_addr_t grub_modbase = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; |
|
static grub_uint64_t modend; |
|
+static int have_memory = 0; |
|
|
|
/* Helper for grub_machine_init. */ |
|
static int |
|
@@ -82,6 +83,8 @@ heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, |
|
|
|
grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) (end - begin)); |
|
|
|
+ have_memory = 1; |
|
+ |
|
return 0; |
|
} |
|
|
|
@@ -97,6 +100,8 @@ grub_machine_init (void) |
|
grub_vga_text_init (); |
|
|
|
grub_machine_mmap_iterate (heap_init, NULL); |
|
+ if (!have_memory) |
|
+ grub_fatal ("No memory found"); |
|
|
|
grub_video_coreboot_fb_late_init (); |
|
|
|
-- |
|
2.9.3 |
|
|
|
|