From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42642) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R3l3c-0007dQ-KN for qemu-devel@nongnu.org; Wed, 14 Sep 2011 04:43:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R3l3J-0000bi-Pa for qemu-devel@nongnu.org; Wed, 14 Sep 2011 04:43:00 -0400 From: Alexander Graf Date: Wed, 14 Sep 2011 10:43:20 +0200 Message-Id: <1315989802-18753-57-git-send-email-agraf@suse.de> In-Reply-To: <1315989802-18753-1-git-send-email-agraf@suse.de> References: <1315989802-18753-1-git-send-email-agraf@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 56/58] PPC: Fix via-cuda memory registration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Developers Cc: Blue Swirl , qemu-ppc@nongnu.org, Aurelien Jarno Commit 23c5e4ca (convert to memory API) broke the VIA Cuda emulation laye= r by not registering the IO structs. This patch registers them properly and thus makes -M g3beige and -M mac99 work again. Tested-by: Andreas F=C3=A4rber Signed-off-by: Alexander Graf --- hw/cuda.c | 28 ++++++++++++++++------------ 1 files changed, 16 insertions(+), 12 deletions(-) diff --git a/hw/cuda.c b/hw/cuda.c index 6f05975..4077436 100644 --- a/hw/cuda.c +++ b/hw/cuda.c @@ -634,16 +634,20 @@ static uint32_t cuda_readl (void *opaque, target_ph= ys_addr_t addr) return 0; } =20 -static CPUWriteMemoryFunc * const cuda_write[] =3D { - &cuda_writeb, - &cuda_writew, - &cuda_writel, -}; - -static CPUReadMemoryFunc * const cuda_read[] =3D { - &cuda_readb, - &cuda_readw, - &cuda_readl, +static MemoryRegionOps cuda_ops =3D { + .old_mmio =3D { + .write =3D { + cuda_writeb, + cuda_writew, + cuda_writel, + }, + .read =3D { + cuda_readb, + cuda_readw, + cuda_readl, + }, + }, + .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 static bool cuda_timer_exist(void *opaque, int version_id) @@ -740,8 +744,8 @@ void cuda_init (MemoryRegion **cuda_mem, qemu_irq irq= ) s->tick_offset =3D (uint32_t)mktimegm(&tm) + RTC_OFFSET; =20 s->adb_poll_timer =3D qemu_new_timer_ns(vm_clock, cuda_adb_poll, s); - cpu_register_io_memory(cuda_read, cuda_write, s, - DEVICE_NATIVE_ENDIAN); + memory_region_init_io(&s->mem, &cuda_ops, s, "cuda", 0x2000); + *cuda_mem =3D &s->mem; vmstate_register(NULL, -1, &vmstate_cuda, s); qemu_register_reset(cuda_reset, s); --=20 1.6.0.2