From patchwork Wed Nov 6 16:24:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1190542 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=vivier.eu Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 477X403krCz9sP6 for ; Thu, 7 Nov 2019 03:26:56 +1100 (AEDT) Received: from localhost ([::1]:60980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSO90-0005JD-E4 for incoming@patchwork.ozlabs.org; Wed, 06 Nov 2019 11:26:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33803) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSO6U-0002eX-LD for qemu-devel@nongnu.org; Wed, 06 Nov 2019 11:24:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSO6T-0000LF-Gh for qemu-devel@nongnu.org; Wed, 06 Nov 2019 11:24:18 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:55159) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iSO6T-0000KH-7o for qemu-devel@nongnu.org; Wed, 06 Nov 2019 11:24:17 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Md6dH-1hsm2D0fvH-00aHic; Wed, 06 Nov 2019 17:24:10 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL v3 2/3] hw/misc/grlib_ahb_apb_pnp: Fix 8-bit accesses Date: Wed, 6 Nov 2019 17:24:05 +0100 Message-Id: <20191106162406.27030-3-laurent@vivier.eu> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191106162406.27030-1-laurent@vivier.eu> References: <20191106162406.27030-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:8H19g5k0tZ5IS5wAvLOztZOlZfVwgHdxyki+sekE5FPdVJ7EBSP De5aqro8pcUaqxGlE29PoAbTCJzFz38j3u8EdAKz+A4l8YFehKD34OXiqKNTTjBBM/v4XKz MES7BHvVfhoTOypHczoCh8JVLqcTKWyY8A+tGwQ4KSgcExcPf/SC71YnWmGj32a6PTKimKd c4t2z31Xo8II/L1Lb0Jwg== X-UI-Out-Filterresults: notjunk:1; V03:K0:4fZm/hmD2b8=:hfm8+RpWPB01q0cpvF6UY4 0MXf0xSpT9nkF4rbPdOhGirpbN8l/60eXU/wg5jJgw+Obw+rNR4TpqdnZEMa1V+9LGmh62Jmy Zrr2+NApVtGATGNm5D/AofbS9ToNM/UL48/Sg10zzRZuV1iIASjKUyrkIZguEats9YlKaWM+n peoEWAEcFjP2WKO9jMhEee8swT6dChOVj38eIaC0XN08nnQMKhUOfJwAJ25DTPs+uo2R3QRsX 0AAPYh8/qMJXxvfAUDu/DFtB8auIbOW98Va4XFDzuC9IbwvHjJ2QXtTEgU4jN4MN0EP7JG0kT pgaKtD50pKSBM+mrASk8gdpdPq8obOlpXhw5sNNZ3j9qrXVoWdeZFuYidbURYdwAjYMSqCfvn j/k1LfGPj3Z0SG5dsvDlgdzZf22UrBWDVgz7ttBseW6Ae67QcOzo/1G88yFsnN7Bex8loll5M KbYhfs80+yozd/2BWiX+XkXqDo4asium3XfQqHUlgtqyR0WEA5uRF1k3mdPruP65+qk9LB4ND xxbcTR5o9VznFVduIaQw68+mLLRY/Wl5E7UQTJ70uexfOGre7yAeoc3//TR5qKMQkiC+PZXRK 35ex6+xg8/04JlcYGF3JTFQsb0hdYGR55wEQY3UcqwvsVb6ivnutUKnrFWWh8tbaZstdu/30f gSbW0rwvP42Q10DVHcZARVr4PnHNx0viaAx5Un0dl/cjHoxVqrpSvElRaO2Jrui14OE3Dsf45 2EIBQ1DiMCcSWE4mgzHMzdXEI3CzMm6LV+CLBEVX6vQSRmW7P01sCsI0Qg7WbTla8ipBhCOfm sv/BSmjbrSqfOW51uaeYAHWyOMj5sG4nHijNOj9k652YK8zNChs67UDwOF2pDjMzehBNxC72G 5VVRo95W5QJpEp8fOnn3Z4yfO84UCd3mGnSy5Tk34= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.126.187 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: KONRAD Frederic , =?utf-8?q?Philippe_Math?= =?utf-8?q?ieu-Daud=C3=A9?= , Laurent Vivier , Jiri Gaisler Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé The Plug & Play region of the AHB/APB bridge can be accessed by various word size, however the implementation is clearly restricted to 32-bit: static uint64_t grlib_apb_pnp_read(void *opaque, hwaddr offset, unsigned size) { APBPnp *apb_pnp = GRLIB_APB_PNP(opaque); return apb_pnp->regs[offset >> 2]; } Set the MemoryRegionOps::impl min/max fields to 32-bit, so memory.c::access_with_adjusted_size() can adjust when the access is not 32-bit. This is required to run RTEMS on leon3, the grlib scanning functions do byte accesses. Reported-by: Jiri Gaisler Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: KONRAD Frederic Message-Id: <20191025110114.27091-3-philmd@redhat.com> Signed-off-by: Laurent Vivier --- hw/misc/grlib_ahb_apb_pnp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/misc/grlib_ahb_apb_pnp.c b/hw/misc/grlib_ahb_apb_pnp.c index f3c015d2c35f..e230e2536361 100644 --- a/hw/misc/grlib_ahb_apb_pnp.c +++ b/hw/misc/grlib_ahb_apb_pnp.c @@ -242,6 +242,10 @@ static const MemoryRegionOps grlib_apb_pnp_ops = { .read = grlib_apb_pnp_read, .write = grlib_apb_pnp_write, .endianness = DEVICE_BIG_ENDIAN, + .impl = { + .min_access_size = 4, + .max_access_size = 4, + }, }; static void grlib_apb_pnp_realize(DeviceState *dev, Error **errp)