summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm
diff options
context:
space:
mode:
authorGabe Black <gabeblack@chromium.org>2011-12-05 12:09:26 +0000
committerGraeme Russ <graeme.russ@gmail.com>2011-12-19 13:26:16 +1100
commit69370d144a9e8133461f1662131fbf97ad121165 (patch)
treebf42baa8da26427c6cf23a8b92ff954dd0715f0a /arch/x86/include/asm
parentf08fa7a2018495c6f2a5eaba5f6d8fdcbc67e6c6 (diff)
downloadu-boot-imx-69370d144a9e8133461f1662131fbf97ad121165.zip
u-boot-imx-69370d144a9e8133461f1662131fbf97ad121165.tar.gz
u-boot-imx-69370d144a9e8133461f1662131fbf97ad121165.tar.bz2
x86: Refactor the zboot innards so they can be reused with a vboot image
If vboot successfully verifies a kernel, it will leave it in place and basically ready to boot. The zeropage table which is part of the x86 boot protocol is at the end of the kernel, though, instead of the beginning, and because the image is already in place there's no need to copy it around. This change refactors the code which implements the zboot command so that the configuration of the zeropage table and loading the pieces of the kernel into memory are done separately. Also, because the command line goes before the zeropage table in vboot which is somewhat incompatible with the normal protocol, where to put the command line is a now a parameter instead of being hard coded. Signed-off-by: Gabe Black <gabeblack@chromium.org>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r--arch/x86/include/asm/zimage.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/x86/include/asm/zimage.h b/arch/x86/include/asm/zimage.h
index 3a68bb0..f03ea80 100644
--- a/arch/x86/include/asm/zimage.h
+++ b/arch/x86/include/asm/zimage.h
@@ -24,6 +24,7 @@
#ifndef _ASM_ZIMAGE_H_
#define _ASM_ZIMAGE_H_
+#include <asm/bootparam.h>
#include <asm/e820.h>
/* linux i386 zImage/bzImage header. Offsets relative to
@@ -49,9 +50,10 @@
/* Implementation defined function to install an e820 map. */
unsigned install_e820_map(unsigned max_entries, struct e820entry *);
-void *load_zimage(char *image, unsigned long kernel_size,
- unsigned long initrd_addr, unsigned long initrd_size,
- int auto_boot, void **load_address);
+struct boot_params *load_zimage(char *image, unsigned long kernel_size,
+ void **load_address);
+int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
+ unsigned long initrd_addr, unsigned long initrd_size);
void boot_zimage(void *setup_base, void *load_address);