diff options
Diffstat (limited to 'purgatory/arch')
-rw-r--r-- | purgatory/arch/ia64/entry.S | 4 | ||||
-rw-r--r-- | purgatory/arch/ia64/purgatory-ia64.c | 7 |
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. */ |