From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56063) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TiooM-0000RE-6G for qemu-devel@nongnu.org; Wed, 12 Dec 2012 11:05:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TiooD-00070k-Js for qemu-devel@nongnu.org; Wed, 12 Dec 2012 11:05:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45414) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TiooD-0006zW-Ci for qemu-devel@nongnu.org; Wed, 12 Dec 2012 11:05:21 -0500 Message-ID: <50C8AB3D.3030000@redhat.com> Date: Wed, 12 Dec 2012 14:05:17 -0200 From: Lucas Meneghel Rodrigues MIME-Version: 1.0 References: <87ip878jh6.fsf@codemonkey.ws> <1355325798-20182-1-git-send-email-kraxel@redhat.com> <50C8A2E2.8020508@redhat.com> In-Reply-To: <50C8A2E2.8020508@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] add isa-debug-exit device. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: =?ISO-8859-1?Q?Herv=E9_Poussineau?= , Gerd Hoffmann , qemu-devel@nongnu.org On 12/12/2012 01:29 PM, Paolo Bonzini wrote: > Il 12/12/2012 16:23, Gerd Hoffmann ha scritto: >> When present it makes qemu exit on any write. >> Mapped to port 0x501 by default. >> >> Without this patch Anthony doesn't allow me to >> remove the bochs bios debug ports because his >> test suite uses this. > > Wasn't this patch submitted already by Herve' first and Lucas second? :) > > Lucas, what happened to your testdev patches? I talked to Marcelo, he said he'd assume the patchset I sent to carry out with upstream inclusion. Since then I got absorbed in other tasks, so I really haven't checked the status. Since it seem things got stalled, I'll resume from where I left, will re-send the patches soon. Cheers, Lucas > Paolo > >> Signed-off-by: Gerd Hoffmann >> --- >> hw/debugexit.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ >> hw/i386/Makefile.objs | 2 +- >> 2 files changed, 72 insertions(+), 1 deletions(-) >> create mode 100644 hw/debugexit.c >> >> diff --git a/hw/debugexit.c b/hw/debugexit.c >> new file mode 100644 >> index 0000000..e1f7570 >> --- /dev/null >> +++ b/hw/debugexit.c >> @@ -0,0 +1,71 @@ >> +/* >> + * This program is free software; you can redistribute it and/or >> + * modify it under the terms of the GNU General Public License as >> + * published by the Free Software Foundation; either version 2 or >> + * (at your option) version 3 of the License. >> + */ >> + >> +#include "hw.h" >> +#include "isa.h" >> + >> +#define TYPE_ISA_DEBUG_EXIT_DEVICE "isa-debug-exit" >> +#define ISA_DEBUG_EXIT_DEVICE(obj) \ >> + OBJECT_CHECK(ISADebugExitState, (obj), TYPE_ISA_DEBUG_EXIT_DEVICE) >> + >> +typedef struct ISADebugExitState { >> + ISADevice parent_obj; >> + >> + uint32_t iobase; >> + MemoryRegion io; >> +} ISADebugExitState; >> + >> +static void debug_exit_write(void *opaque, hwaddr addr, uint64_t val, >> + unsigned width) >> +{ >> + exit((val << 1) | 1); >> +} >> + >> +static const MemoryRegionOps debug_exit_ops = { >> + .write = debug_exit_write, >> + .valid.min_access_size = 1, >> + .valid.max_access_size = 1, >> + .endianness = DEVICE_LITTLE_ENDIAN, >> +}; >> + >> +static int debug_exit_initfn(ISADevice *dev) >> +{ >> + ISADebugExitState *isa = ISA_DEBUG_EXIT_DEVICE(dev); >> + >> + memory_region_init_io(&isa->io, &debug_exit_ops, isa, >> + TYPE_ISA_DEBUG_EXIT_DEVICE, 1); >> + memory_region_add_subregion(isa_address_space_io(dev), >> + isa->iobase, &isa->io); >> + return 0; >> +} >> + >> +static Property debug_exit_properties[] = { >> + DEFINE_PROP_HEX32("iobase", ISADebugExitState, iobase, 0x501), >> + DEFINE_PROP_END_OF_LIST(), >> +}; >> + >> +static void debug_exit_class_initfn(ObjectClass *klass, void *data) >> +{ >> + DeviceClass *dc = DEVICE_CLASS(klass); >> + ISADeviceClass *ic = ISA_DEVICE_CLASS(klass); >> + ic->init = debug_exit_initfn; >> + dc->props = debug_exit_properties; >> +} >> + >> +static TypeInfo debug_exit_info = { >> + .name = TYPE_ISA_DEBUG_EXIT_DEVICE, >> + .parent = TYPE_ISA_DEVICE, >> + .instance_size = sizeof(ISADebugExitState), >> + .class_init = debug_exit_class_initfn, >> +}; >> + >> +static void debug_exit_register_types(void) >> +{ >> + type_register_static(&debug_exit_info); >> +} >> + >> +type_init(debug_exit_register_types) >> diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs >> index 0d3f6a8..56aaa9d 100644 >> --- a/hw/i386/Makefile.objs >> +++ b/hw/i386/Makefile.objs >> @@ -3,7 +3,7 @@ obj-y += apic_common.o apic.o kvmvapic.o >> obj-y += sga.o ioapic_common.o ioapic.o piix_pci.o >> obj-y += vmport.o >> obj-y += pci-hotplug.o smbios.o wdt_ib700.o >> -obj-y += debugcon.o multiboot.o >> +obj-y += debugcon.o debugexit.o multiboot.o >> obj-y += pc_piix.o >> obj-y += pc_sysfw.o >> obj-y += lpc_ich9.o q35.o pc_q35.o >> > >