diff options
author | Matt Fleming <matt.fleming@intel.com> | 2011-08-18 18:35:16 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2011-08-18 20:59:56 +0100 |
commit | 262083901cb8b7472548cea6f1ed12d8107dc067 (patch) | |
tree | f877a5f57761ce18cfa0039a50ace2df2ea0844b | |
parent | 6123091071753417bcc89274964683d470f05eb8 (diff) | |
download | efilinux-262083901cb8b7472548cea6f1ed12d8107dc067.tar.gz |
efilinux: i386 kernel_jump()
Add an implementation of kernel_jump() for i386. This was all the
architecture specific code that was needed to get efilinux booting on
i386.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r-- | loaders/bzimage/i386.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/loaders/bzimage/i386.h b/loaders/bzimage/i386.h index 367f426..3199a02 100644 --- a/loaders/bzimage/i386.h +++ b/loaders/bzimage/i386.h @@ -36,4 +36,14 @@ #define EFI_LOADER_SIGNATURE "EL32" +static inline void kernel_jump(EFI_PHYSICAL_ADDRESS kernel_start, + struct boot_params *boot_params) +{ + asm volatile ("cli \n" + "movl %0, %%esi \n" + "movl %1, %%ecx \n" + "jmp *%%ecx \n" + :: "m" (boot_params), "m" (kernel_start)); +} + #endif /* __I386_H__ */ |