summaryrefslogtreecommitdiff
path: root/purgatory/arch
diff options
context:
space:
mode:
Diffstat (limited to 'purgatory/arch')
-rw-r--r--purgatory/arch/ia64/entry.S4
-rw-r--r--purgatory/arch/ia64/purgatory-ia64.c7
2 files changed, 10 insertions, 1 deletions
diff --git a/purgatory/arch/ia64/entry.S b/purgatory/arch/ia64/entry.S
index 2cc8302..f05434f 100644
--- a/purgatory/arch/ia64/entry.S
+++ b/purgatory/arch/ia64/entry.S
@@ -42,7 +42,7 @@ purgatory_start:
alloc r2 = ar.pfs, 0, 0, 2, 0
;;
mov out0=r28
- movl out1=__ramdisk_base;;
+ movl out1=__vmcode_base;
br.call.sptk.many b0=ia64_env_setup
movl r10=__kernel_entry;;
ld8 r14=[r10];;
@@ -57,6 +57,8 @@ purgatory_start:
.endp purgatory_start
DECLARE_DATA8(__kernel_entry)
+DECLARE_DATA8(__vmcode_base)
+DECLARE_DATA8(__vmcode_size)
DECLARE_DATA8(__ramdisk_base)
DECLARE_DATA8(__ramdisk_size)
DECLARE_DATA8(__command_line)
diff --git a/purgatory/arch/ia64/purgatory-ia64.c b/purgatory/arch/ia64/purgatory-ia64.c
index 312cdcc..bd54946 100644
--- a/purgatory/arch/ia64/purgatory-ia64.c
+++ b/purgatory/arch/ia64/purgatory-ia64.c
@@ -106,6 +106,9 @@ struct ia64_boot_param {
the fpswa interface */
uint64_t initrd_start;
uint64_t initrd_size;
+
+ uint64_t vmcode_start;
+ uint64_t vmcode_size;
};
typedef struct {
@@ -124,6 +127,8 @@ struct loaded_segment {
};
struct kexec_boot_params {
+ uint64_t vmcode_base;
+ uint64_t vmcode_size;
uint64_t ramdisk_base;
uint64_t ramdisk_size;
uint64_t command_line;
@@ -275,6 +280,8 @@ ia64_env_setup(struct ia64_boot_param *boot_param,
new_boot_param->console_info.orig_y = 0;
new_boot_param->initrd_start = params->ramdisk_base;
new_boot_param->initrd_size = params->ramdisk_size;
+ new_boot_param->vmcode_start = params->vmcode_base;
+ new_boot_param->vmcode_size = params->vmcode_size;
}
/* This function can be used to execute after the SHA256 verification. */