991db24774
If the user currently tries to use the -kernel parameter, simply nothing happens, and the user might get confused that there is nothing loaded to memory, but also no error message has been issued. Since there is no real generic way to load a kernel on all CPU types (but on some targets, the generic loader can be used instead), issue an appropriate error message here now to avoid the possible confusion. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1488271971-12624-1-git-send-email-thuth@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
60 lines
1.4 KiB
C
60 lines
1.4 KiB
C
/*
|
|
* Empty machine
|
|
*
|
|
* Copyright IBM, Corp. 2012
|
|
*
|
|
* Authors:
|
|
* Anthony Liguori <aliguori@us.ibm.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
* See the COPYING file in the top-level directory.
|
|
*
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "qemu-common.h"
|
|
#include "qemu/error-report.h"
|
|
#include "hw/hw.h"
|
|
#include "hw/boards.h"
|
|
#include "sysemu/sysemu.h"
|
|
#include "exec/address-spaces.h"
|
|
#include "cpu.h"
|
|
|
|
static void machine_none_init(MachineState *mch)
|
|
{
|
|
CPUState *cpu = NULL;
|
|
|
|
/* Initialize CPU (if a model has been specified) */
|
|
if (mch->cpu_model) {
|
|
cpu = cpu_init(mch->cpu_model);
|
|
if (!cpu) {
|
|
error_report("Unable to initialize CPU");
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
/* RAM at address zero */
|
|
if (mch->ram_size) {
|
|
MemoryRegion *ram = g_new(MemoryRegion, 1);
|
|
|
|
memory_region_allocate_system_memory(ram, NULL, "ram", mch->ram_size);
|
|
memory_region_add_subregion(get_system_memory(), 0, ram);
|
|
}
|
|
|
|
if (mch->kernel_filename) {
|
|
error_report("The -kernel parameter is not supported "
|
|
"(use the generic 'loader' device instead).");
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
static void machine_none_machine_init(MachineClass *mc)
|
|
{
|
|
mc->desc = "empty machine";
|
|
mc->init = machine_none_init;
|
|
mc->max_cpus = 1;
|
|
mc->default_ram_size = 0;
|
|
}
|
|
|
|
DEFINE_MACHINE("none", machine_none_machine_init)
|