On 02.01.2017 11:54, Laurent Vivier wrote: > Le 27/12/2016 à 14:58, Thomas Huth a écrit : >> Am Tue, 27 Dec 2016 12:52:30 +0100 >> schrieb Laurent Vivier <laur...@vivier.eu>: >> >>> Le 20/12/2016 à 15:32, Thomas Huth a écrit : >>>> You can get an empty machine with "-M none" nowadays, so the >>>> m68k dummy board (introduced in 2007) seems to be pretty >>>> redundant since the "none" machine has been added in 2012. >>>> >>>> Signed-off-by: Thomas Huth <h...@tuxfamily.org> >>>> --- >>>> MAINTAINERS | 4 --- >>>> hw/m68k/Makefile.objs | 2 -- >>>> hw/m68k/dummy_m68k.c | 84 >>>> --------------------------------------------------- 3 files >>>> changed, 90 deletions(-) delete mode 100644 hw/m68k/dummy_m68k.c >>>> >>>> diff --git a/MAINTAINERS b/MAINTAINERS >>>> index 4a60579..88ee8cd 100644 >>>> --- a/MAINTAINERS >>>> +++ b/MAINTAINERS >>>> @@ -552,10 +552,6 @@ S: Orphan >>>> F: hw/m68k/an5206.c >>>> F: hw/m68k/mcf5206.c >>>> >>>> -dummy_m68k >>>> -S: Orphan >>>> -F: hw/m68k/dummy_m68k.c >>>> - >>>> mcf5208 >>>> S: Orphan >>>> F: hw/m68k/mcf5208.c >>>> diff --git a/hw/m68k/Makefile.objs b/hw/m68k/Makefile.objs >>>> index c4352e7..d1f089c 100644 >>>> --- a/hw/m68k/Makefile.objs >>>> +++ b/hw/m68k/Makefile.objs >>>> @@ -1,4 +1,2 @@ >>>> obj-y += an5206.o mcf5208.o >>>> -obj-y += dummy_m68k.o >>>> - >>>> obj-y += mcf5206.o mcf_intc.o >>>> diff --git a/hw/m68k/dummy_m68k.c b/hw/m68k/dummy_m68k.c >>>> deleted file mode 100644 >>>> index 0b11d20..0000000 >>>> --- a/hw/m68k/dummy_m68k.c >>>> +++ /dev/null >>>> @@ -1,84 +0,0 @@ >>>> -/* >>>> - * Dummy board with just RAM and CPU for use as an ISS. >>>> - * >>>> - * Copyright (c) 2007 CodeSourcery. >>>> - * >>>> - * This code is licensed under the GPL >>>> - */ >>>> - >>>> -#include "qemu/osdep.h" >>>> -#include "qemu-common.h" >>>> -#include "cpu.h" >>>> -#include "hw/hw.h" >>>> -#include "hw/boards.h" >>>> -#include "hw/loader.h" >>>> -#include "elf.h" >>>> -#include "exec/address-spaces.h" >>>> - >>>> -#define KERNEL_LOAD_ADDR 0x10000 >>>> - >>>> -/* Board init. */ >>>> - >>>> -static void dummy_m68k_init(MachineState *machine) >>>> -{ >>>> - ram_addr_t ram_size = machine->ram_size; >>>> - const char *cpu_model = machine->cpu_model; >>>> - const char *kernel_filename = machine->kernel_filename; >>>> - M68kCPU *cpu; >>>> - CPUM68KState *env; >>>> - MemoryRegion *address_space_mem = get_system_memory(); >>>> - MemoryRegion *ram = g_new(MemoryRegion, 1); >>>> - int kernel_size; >>>> - uint64_t elf_entry; >>>> - hwaddr entry; >>>> - >>>> - if (!cpu_model) >>>> - cpu_model = "cfv4e"; >>>> - cpu = cpu_m68k_init(cpu_model); >>>> - if (!cpu) { >>>> - fprintf(stderr, "Unable to find m68k CPU definition\n"); >>>> - exit(1); >>>> - } >>>> - env = &cpu->env; >>>> - >>>> - /* Initialize CPU registers. */ >>>> - env->vbr = 0; >>>> - >>>> - /* RAM at address zero */ >>>> - memory_region_allocate_system_memory(ram, NULL, >>>> "dummy_m68k.ram", >>>> - ram_size); >>>> - memory_region_add_subregion(address_space_mem, 0, ram); >>>> - >>>> - /* Load kernel. */ >>>> - if (kernel_filename) { >>>> - kernel_size = load_elf(kernel_filename, NULL, NULL, >>>> &elf_entry, >>>> - NULL, NULL, 1, EM_68K, 0, 0); >>>> - entry = elf_entry; >>>> - if (kernel_size < 0) { >>>> - kernel_size = load_uimage(kernel_filename, &entry, >>>> NULL, NULL, >>>> - NULL, NULL); >>>> - } >>>> - if (kernel_size < 0) { >>>> - kernel_size = load_image_targphys(kernel_filename, >>>> - KERNEL_LOAD_ADDR, >>>> - ram_size - >>>> KERNEL_LOAD_ADDR); >>>> - entry = KERNEL_LOAD_ADDR; >>>> - } >>>> - if (kernel_size < 0) { >>>> - fprintf(stderr, "qemu: could not load kernel '%s'\n", >>>> - kernel_filename); >>>> - exit(1); >>>> - } >>>> - } else { >>>> - entry = 0; >>>> - } >>>> - env->pc = entry; >>>> -} >>>> - >>>> -static void dummy_m68k_machine_init(MachineClass *mc) >>>> -{ >>>> - mc->desc = "Dummy board"; >>>> - mc->init = dummy_m68k_init; >>>> -} >>>> - >>>> -DEFINE_MACHINE("dummy", dummy_m68k_machine_init) >>>> >>> >>> I'm not sure the "none" machine can replace the "dummy" machine as the >>> "dummy" machine can load a kernel whereas it seems the "none" one >>> can't. >> >> Oh, that's true ... I did not notice it 'cause there was no error >> message when I tried to start the "none" machine with "-kernel". But >> looking at the code in hw/core/null-machine.c, it really seems that >> there is nothing in here :-( So never mind, please forget about this >> patch. (but now I wonder whether the "none" machine could be improved to >> provide the features of the "dummy" machine, too?) > > The "none" machine is defined to be be filled with QMP commands, perhaps > the generic-loader object can replace the "-kernel" parameters?
As far as I can see, there is even more to be done here: The "none" machine apparently does not instantiate any CPUs yet, so we would need to add the possibility to add a CPU to the empty here, too... Thomas