mirror of https://github.com/xemu-project/xemu.git
hw/s390x: Remove the possibility to load the s390-netboot.img binary
Since the netboot code has now been merged into the main s390-ccw.img binary, we don't need the separate s390-netboot.img anymore. Remove it and the code that was responsible for loading it. Message-Id: <20240621082422.136217-6-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
8e5739ce4b
commit
188e255bf8
|
@ -288,7 +288,6 @@ static Property s390_ipl_properties[] = {
|
|||
DEFINE_PROP_STRING("initrd", S390IPLState, initrd),
|
||||
DEFINE_PROP_STRING("cmdline", S390IPLState, cmdline),
|
||||
DEFINE_PROP_STRING("firmware", S390IPLState, firmware),
|
||||
DEFINE_PROP_STRING("netboot_fw", S390IPLState, netboot_fw),
|
||||
DEFINE_PROP_BOOL("enforce_bios", S390IPLState, enforce_bios, false),
|
||||
DEFINE_PROP_BOOL("iplbext_migration", S390IPLState, iplbext_migration,
|
||||
true),
|
||||
|
@ -480,56 +479,6 @@ int s390_ipl_set_loadparm(uint8_t *loadparm)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static int load_netboot_image(Error **errp)
|
||||
{
|
||||
MachineState *ms = MACHINE(qdev_get_machine());
|
||||
S390IPLState *ipl = get_ipl_device();
|
||||
char *netboot_filename;
|
||||
MemoryRegion *sysmem = get_system_memory();
|
||||
MemoryRegion *mr = NULL;
|
||||
void *ram_ptr = NULL;
|
||||
int img_size = -1;
|
||||
|
||||
mr = memory_region_find(sysmem, 0, 1).mr;
|
||||
if (!mr) {
|
||||
error_setg(errp, "Failed to find memory region at address 0");
|
||||
return -1;
|
||||
}
|
||||
|
||||
ram_ptr = memory_region_get_ram_ptr(mr);
|
||||
if (!ram_ptr) {
|
||||
error_setg(errp, "No RAM found");
|
||||
goto unref_mr;
|
||||
}
|
||||
|
||||
netboot_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, ipl->netboot_fw);
|
||||
if (netboot_filename == NULL) {
|
||||
error_setg(errp, "Could not find network bootloader '%s'",
|
||||
ipl->netboot_fw);
|
||||
goto unref_mr;
|
||||
}
|
||||
|
||||
img_size = load_elf_ram(netboot_filename, NULL, NULL, NULL,
|
||||
&ipl->start_addr,
|
||||
NULL, NULL, NULL, 1, EM_S390, 0, 0, NULL,
|
||||
false);
|
||||
|
||||
if (img_size < 0) {
|
||||
img_size = load_image_size(netboot_filename, ram_ptr, ms->ram_size);
|
||||
ipl->start_addr = KERN_IMAGE_START;
|
||||
}
|
||||
|
||||
if (img_size < 0) {
|
||||
error_setg(errp, "Failed to load network bootloader");
|
||||
}
|
||||
|
||||
g_free(netboot_filename);
|
||||
|
||||
unref_mr:
|
||||
memory_region_unref(mr);
|
||||
return img_size;
|
||||
}
|
||||
|
||||
static bool is_virtio_ccw_device_of_type(IplParameterBlock *iplb,
|
||||
int virtio_id)
|
||||
{
|
||||
|
@ -754,10 +703,6 @@ void s390_ipl_prepare_cpu(S390CPU *cpu)
|
|||
ipl->iplb_valid = s390_gen_initial_iplb(ipl);
|
||||
}
|
||||
}
|
||||
if (ipl->netboot) {
|
||||
load_netboot_image(&error_fatal);
|
||||
ipl->qipl.netboot_start_addr = cpu_to_be64(ipl->start_addr);
|
||||
}
|
||||
s390_ipl_set_boot_menu(ipl);
|
||||
s390_ipl_prepare_qipl(cpu);
|
||||
}
|
||||
|
|
|
@ -134,11 +134,8 @@ void s390_ipl_clear_reset_request(void);
|
|||
/*
|
||||
* The QEMU IPL Parameters will be stored at absolute address
|
||||
* 204 (0xcc) which means it is 32-bit word aligned but not
|
||||
* double-word aligned.
|
||||
* Placement of data fields in this area must account for
|
||||
* their alignment needs. E.g., netboot_start_address must
|
||||
* have an offset of 4 + n * 8 bytes within the struct in order
|
||||
* to keep it double-word aligned.
|
||||
* double-word aligned. Placement of 64-bit data fields in this
|
||||
* area must account for their alignment needs.
|
||||
* The total size of the struct must never exceed 28 bytes.
|
||||
* This definition must be kept in sync with the definition
|
||||
* in pc-bios/s390-ccw/iplb.h.
|
||||
|
@ -146,9 +143,9 @@ void s390_ipl_clear_reset_request(void);
|
|||
struct QemuIplParameters {
|
||||
uint8_t qipl_flags;
|
||||
uint8_t reserved1[3];
|
||||
uint64_t netboot_start_addr;
|
||||
uint64_t reserved2;
|
||||
uint32_t boot_menu_timeout;
|
||||
uint8_t reserved2[12];
|
||||
uint8_t reserved3[12];
|
||||
} QEMU_PACKED;
|
||||
typedef struct QemuIplParameters QemuIplParameters;
|
||||
|
||||
|
@ -178,7 +175,6 @@ struct S390IPLState {
|
|||
char *initrd;
|
||||
char *cmdline;
|
||||
char *firmware;
|
||||
char *netboot_fw;
|
||||
uint8_t cssid;
|
||||
uint8_t ssid;
|
||||
uint16_t devno;
|
||||
|
|
|
@ -197,11 +197,10 @@ static void s390_memory_init(MemoryRegion *ram)
|
|||
static void s390_init_ipl_dev(const char *kernel_filename,
|
||||
const char *kernel_cmdline,
|
||||
const char *initrd_filename, const char *firmware,
|
||||
const char *netboot_fw, bool enforce_bios)
|
||||
bool enforce_bios)
|
||||
{
|
||||
Object *new = object_new(TYPE_S390_IPL);
|
||||
DeviceState *dev = DEVICE(new);
|
||||
char *netboot_fw_prop;
|
||||
|
||||
if (kernel_filename) {
|
||||
qdev_prop_set_string(dev, "kernel", kernel_filename);
|
||||
|
@ -212,11 +211,6 @@ static void s390_init_ipl_dev(const char *kernel_filename,
|
|||
qdev_prop_set_string(dev, "cmdline", kernel_cmdline);
|
||||
qdev_prop_set_string(dev, "firmware", firmware);
|
||||
qdev_prop_set_bit(dev, "enforce_bios", enforce_bios);
|
||||
netboot_fw_prop = object_property_get_str(new, "netboot_fw", &error_abort);
|
||||
if (!strlen(netboot_fw_prop)) {
|
||||
qdev_prop_set_string(dev, "netboot_fw", netboot_fw);
|
||||
}
|
||||
g_free(netboot_fw_prop);
|
||||
object_property_add_child(qdev_get_machine(), TYPE_S390_IPL,
|
||||
new);
|
||||
object_unref(new);
|
||||
|
@ -284,7 +278,7 @@ static void ccw_init(MachineState *machine)
|
|||
s390_init_ipl_dev(machine->kernel_filename, machine->kernel_cmdline,
|
||||
machine->initrd_filename,
|
||||
machine->firmware ?: "s390-ccw.img",
|
||||
"s390-netboot.img", true);
|
||||
true);
|
||||
|
||||
dev = qdev_new(TYPE_S390_PCI_HOST_BRIDGE);
|
||||
object_property_add_child(qdev_get_machine(), TYPE_S390_PCI_HOST_BRIDGE,
|
||||
|
|
|
@ -68,7 +68,6 @@ blobs = [
|
|||
'kvmvapic.bin',
|
||||
'pvh.bin',
|
||||
's390-ccw.img',
|
||||
's390-netboot.img',
|
||||
'slof.bin',
|
||||
'skiboot.lid',
|
||||
'palcode-clipper',
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue