diff --git a/zipl/include/boot.h b/zipl/include/boot.h index 6bd2a9bf..00e4b734 100644 --- a/zipl/include/boot.h +++ b/zipl/include/boot.h @@ -310,8 +310,8 @@ int boot_init_fba_stage1b(struct boot_fba_stage1b *stage1b, int boot_get_eckd_stage2(void** data, size_t* size, struct job_data* job); int boot_get_stage3_parms(void **buffer, size_t *bytecount, address_t parm_addr, address_t initrd_addr, size_t initrd_len, - address_t load_addr, int extra_parm, uint16_t flags, - size_t image_len); + address_t entry, int extra_parm, uint16_t flags, + address_t image_addr, size_t image_len); int boot_get_tape_ipl(void** data, size_t* size, address_t parm_addr, address_t initrd_addr, address_t image_addr); int boot_get_tape_dump(void** data, size_t* size, uint64_t mem); diff --git a/zipl/src/boot.c b/zipl/src/boot.c index 663d1d31..74ce61f4 100644 --- a/zipl/src/boot.c +++ b/zipl/src/boot.c @@ -79,14 +79,14 @@ boot_check_data(void) int boot_get_stage3_parms(void **buffer, size_t *bytecount, address_t parm_addr, address_t initrd_addr, size_t initrd_len, - address_t image_addr, int extra_parm, uint16_t flags, - size_t image_len) + address_t entry, int extra_parm, uint16_t flags, + address_t image_addr, size_t image_len) { struct boot_stage3_params params; void* data; - if (image_addr != (image_addr & PSW_ADDRESS_MASK)) { - error_reason("Kernel image load address to high (31 bit " + if (entry != (entry & PSW_ADDRESS_MASK)) { + error_reason("Kernel image entry point to high (31 bit " "addressing mode)"); return -1; } @@ -99,7 +99,7 @@ boot_get_stage3_parms(void **buffer, size_t *bytecount, address_t parm_addr, params.parm_addr = (uint64_t) parm_addr; params.initrd_addr = (uint64_t) initrd_addr; params.initrd_len = (uint64_t) initrd_len; - params.load_psw = (uint64_t)(image_addr | PSW_LOAD); + params.load_psw = (uint64_t)(entry | PSW_LOAD); params.extra_parm = (uint64_t) extra_parm; params.flags = flags; params.image_len = (uint64_t) image_len; diff --git a/zipl/src/bootmap.c b/zipl/src/bootmap.c index 3206b6d8..cb356a15 100644 --- a/zipl/src/bootmap.c +++ b/zipl/src/bootmap.c @@ -646,7 +646,7 @@ add_ipl_program(int fd, struct job_ipl_data* ipl, disk_blockptr_t* program, ipl->is_kdump ? ipl->image_addr + 0x10 : ipl->image_addr, (info->type == disk_type_scsi) ? 0 : 1, - flags, image_size); + flags, ipl->image_addr, image_size); if (rc) { free(table); return rc;