From 5eceb32a79d4298a9f57bbe9fd5e06a83db0ce95 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 13 May 2009 16:27:25 +0000 Subject: Allow dynamic size for the {s,}elfboot bounce buffer. Use that to fix selfboot with compressed payloads. Signed-off-by: Patrick Georgi Acked-by: Ronald G. Minnich git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4281 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/arch/i386/boot/boot.c | 4 ++-- src/arch/ppc/boot/boot.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/arch') diff --git a/src/arch/i386/boot/boot.c b/src/arch/i386/boot/boot.c index 483a3a27f7..2ac73a6e0a 100644 --- a/src/arch/i386/boot/boot.c +++ b/src/arch/i386/boot/boot.c @@ -68,7 +68,7 @@ int elf_check_arch(Elf_ehdr *ehdr) } -void jmp_to_elf_entry(void *entry, unsigned long buffer) +void jmp_to_elf_entry(void *entry, unsigned long buffer, unsigned long bounce_size) { extern unsigned char _ram_seg, _eram_seg; unsigned long lb_start, lb_size; @@ -79,7 +79,7 @@ void jmp_to_elf_entry(void *entry, unsigned long buffer) lb_start = (unsigned long)&_ram_seg; lb_size = (unsigned long)(&_eram_seg - &_ram_seg); - adjust = buffer + lb_size - lb_start; + adjust = buffer + bounce_size - lb_start; adjusted_boot_notes = (unsigned long)&elf_boot_notes; adjusted_boot_notes += adjust; diff --git a/src/arch/ppc/boot/boot.c b/src/arch/ppc/boot/boot.c index b123b3e5f0..e62c4eb2af 100644 --- a/src/arch/ppc/boot/boot.c +++ b/src/arch/ppc/boot/boot.c @@ -16,7 +16,7 @@ int elf_check_arch(Elf_ehdr *ehdr) } -void jmp_to_elf_entry(void *entry, unsigned long buffer) +void jmp_to_elf_entry(void *entry, unsigned long buffer, unsigned long bounce_size) { void (*kernel_entry)(void); -- cgit v1.2.3