aboutsummaryrefslogtreecommitdiff
path: root/hw/core
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2017-01-24 15:39:09 +0000
committerPeter Maydell <peter.maydell@linaro.org>2017-01-24 15:39:09 +0000
commita678502e4f7580a6f143f680404aaee57ac3f4b5 (patch)
treebc436746e83c888dd10d078cfe2ea7a8726a967c /hw/core
parentd5e85105f65e473e48c8696c64d7936dabbfd74e (diff)
parentd99569d9d8562c480e0befab601756b0b7b5d0e0 (diff)
Merge remote-tracking branch 'remotes/ehabkost/tags/x86-and-machine-pull-request' into staging
x86, machine, numa queue (2017-01-23) # gpg: Signature made Mon 23 Jan 2017 23:26:59 GMT # gpg: using RSA key 0x2807936F984DC5A6 # gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>" # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF D1AA 2807 936F 984D C5A6 * remotes/ehabkost/tags/x86-and-machine-pull-request: kvm: Allow invtsc migration if tsc-khz is set explicitly kvm: Simplify invtsc check hw/core/null-machine: Add the possibility to instantiate a CPU and RAM qemu-options: Rename variables on the -numa "cpus" option MAINTAINERS: Add an entry for hw/core/null-machine.c machine: Make possible_cpu_arch_ids() return const pointer pc: don't return cpu pointer from pc_new_cpu() as it's not needed anymore pc: cleanup: move smbios_set_cpuid() into pc_build_smbios() arch_init: Remove unnecessary default_config_files table vl: Ensure the numa_post_machine_init func in the appropriate location i386: Return migration-safe field on query-cpu-definitions i386: Remove AMD feature flag aliases from Opteron models x86: add AVX512_VPOPCNTDQ features Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/core')
-rw-r--r--hw/core/Makefile.objs2
-rw-r--r--hw/core/null-machine.c27
2 files changed, 26 insertions, 3 deletions
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index 833fd46897..7f8c9dc659 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -12,7 +12,6 @@ common-obj-$(CONFIG_XILINX_AXI) += stream.o
common-obj-$(CONFIG_PTIMER) += ptimer.o
common-obj-$(CONFIG_SOFTMMU) += sysbus.o
common-obj-$(CONFIG_SOFTMMU) += machine.o
-common-obj-$(CONFIG_SOFTMMU) += null-machine.o
common-obj-$(CONFIG_SOFTMMU) += loader.o
common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o
common-obj-$(CONFIG_SOFTMMU) += register.o
@@ -20,3 +19,4 @@ common-obj-$(CONFIG_SOFTMMU) += or-irq.o
common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o
obj-$(CONFIG_SOFTMMU) += generic-loader.o
+obj-$(CONFIG_SOFTMMU) += null-machine.o
diff --git a/hw/core/null-machine.c b/hw/core/null-machine.c
index 0351ba7828..27c8369b57 100644
--- a/hw/core/null-machine.c
+++ b/hw/core/null-machine.c
@@ -13,18 +13,41 @@
#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 *machine)
+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);
+ }
}
static void machine_none_machine_init(MachineClass *mc)
{
mc->desc = "empty machine";
mc->init = machine_none_init;
- mc->max_cpus = 0;
+ mc->max_cpus = 1;
+ mc->default_ram_size = 0;
}
DEFINE_MACHINE("none", machine_none_machine_init)