From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56781) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGuFG-0004C6-JS for qemu-devel@nongnu.org; Wed, 26 Sep 2012 12:14:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TGuF8-0003He-7H for qemu-devel@nongnu.org; Wed, 26 Sep 2012 12:13:54 -0400 Received: from 38.0.169.217.in-addr.arpa ([217.169.0.38]:53863 helo=mnementh.archaic.org.uk) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGuF8-0003FA-1F for qemu-devel@nongnu.org; Wed, 26 Sep 2012 12:13:46 -0400 From: Peter Maydell Date: Wed, 26 Sep 2012 17:13:33 +0100 Message-Id: <1348676015-16547-3-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1348676015-16547-1-git-send-email-peter.maydell@linaro.org> References: <1348676015-16547-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 2/4] hw/armv7m_nvic: Correctly register GIC region when setting up NVIC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org, Paul Brook From: Meador Inge When setting up the NVIC memory regions the memory range 0x100..0xcff is aliased to an IO memory region that belongs to the ARM GIC. This aliased region should be added to the NVIC memory container, but the actual GIC IO memory region was being added instead. This mixup was causing the wrong IO memory access functions to be called when accessing parts of the NVIC memory. Signed-off-by: Meador Inge Signed-off-by: Peter Maydell --- hw/armv7m_nvic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/armv7m_nvic.c b/hw/armv7m_nvic.c index 6a0832e..5c09116 100644 --- a/hw/armv7m_nvic.c +++ b/hw/armv7m_nvic.c @@ -489,7 +489,8 @@ static int armv7m_nvic_init(SysBusDevice *dev) */ memory_region_init_alias(&s->gic_iomem_alias, "nvic-gic", &s->gic.iomem, 0x100, 0xc00); - memory_region_add_subregion_overlap(&s->container, 0x100, &s->gic.iomem, 1); + memory_region_add_subregion_overlap(&s->container, 0x100, + &s->gic_iomem_alias, 1); /* Map the whole thing into system memory at the location required * by the v7M architecture. */ -- 1.7.9.5