From nobody Tue Feb 10 01:35:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.67 as permitted sender) client-ip=209.85.221.67; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f67.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.67 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1602508835; cv=none; d=zohomail.com; s=zohoarc; b=Mz8j0zSHGEC2NROv2TIBvNUEzF6iCnRJ2UhIEOpze4rhDpNCbdg2MkbaDabtJVdeRG/OX1Qqaiht97CphcvnzOX+1+qWm2jpDL8kt8FZeZg4PY6a7uDQqbI1x7pLFF7cvGMuWnnaLFa3xaK0HT/63UT55Qr31F8UyZGTte8tOn4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602508835; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5dF+jf9n1DnItLemKMZxZtmjBoHnSoohLjejZPCpzDM=; b=BsiO7BDwF2+pGzCDRzTFoIShylAHZpXMynRQMKtVOl/pVrMgLwkxZhVSNByGLlo8OmUiR0ycrppHck8Z5gd04gzQcmd7vs7nt8ii/jFVDgpG+uV7J0IXXmYt6B/UjgMUFj7BrFXQsYGPv9HVqPXrchvayFQs23U2ALRUSBkGcRo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.67 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by mx.zohomail.com with SMTPS id 1602508835859318.56571420376315; Mon, 12 Oct 2020 06:20:35 -0700 (PDT) Received: by mail-wr1-f67.google.com with SMTP id h5so9095042wrv.7 for ; Mon, 12 Oct 2020 06:20:35 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (106.red-83-59-162.dynamicip.rima-tde.net. [83.59.162.106]) by smtp.gmail.com with ESMTPSA id t83sm13254247wmf.39.2020.10.12.06.20.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 06:20:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5dF+jf9n1DnItLemKMZxZtmjBoHnSoohLjejZPCpzDM=; b=Qc0XApVdKVP/lVruFXWfJNtjQXfReFRvr1+4yT68YiQ4PXMXy2VS+Tms8DIHpnd7WY 3IxqXaVf8NHprI9vBRJwHLg/Ir7knP79xD4PqkjT375/jOfMORusBYzhrZZ5RosRb+QD U1SphhdEAsKVfyQdrEqQwYq4OgE0gntIEj6LK1eh4k7kNb5hfU7CyJ6pK2RZ1Iyw+ZIw nBGoGO1Ccz+zkGeAo4+vjit+Ec6fFMWX+VWPe5vtNK/oSSBjXyxB2CXWnIIBww7AUabB MEfKFTTjlMGn3LsS/v5F1YP0iobEE2UXTGxcQwYK8w7IDDqVUMyWngLVYsE84ipnaVNG K2eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=5dF+jf9n1DnItLemKMZxZtmjBoHnSoohLjejZPCpzDM=; b=sYjtIBaVZToiCE1bHNdJ63vMNOTsVjVII4WlUvEPlNAoBs4qBoxDC/ViCqcHiQdlIq wFJVcZ57gov3MD4Jk7urEneO1CGF/wjsSnvhydt4IoHdYVKNGGreSTcgNguXhD4zUvIS WhGupA5u8H9VzNt0hgmQ5i7w+k44HwCZft0q4/orpuxd/dj6mF3PgoNQGnfs9ovHEomO UYFcJwxJJ+5QGnznJnNcqKW5n3KCANT0lwN7SvR4/4VEC9BJN5nK+Qmpj8vkHioPstRw vh0QwzqcKlBgXS2Vwh0GhfnDfZdqN9h3PmCRF0Irzl44UKorLQlW4DmbWDBHH0pwu2jH VuRA== X-Gm-Message-State: AOAM532e2SkzhpnniD190xltO4HvoCtTnXz9RjjQSKukLhJ6ViZvlWnc xkuDx1hN7E8Si/LWIT0sqq4= X-Google-Smtp-Source: ABdhPJzuFfvT/aPXYbIwkUmlO0JDvtpdvDqrzOh3HrkhUhj3xmpcGd7J1NLZmPOoeJ2TBhNxXM61pg== X-Received: by 2002:a5d:6744:: with SMTP id l4mr30409135wrw.18.1602508833958; Mon, 12 Oct 2020 06:20:33 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Jiaxun Yang , Peter Maydell , qemu-arm@nongnu.org, Aurelien Jarno , Aleksandar Markovic , Paolo Bonzini , Laurent Vivier , Thomas Huth , "Michael S. Tsirkin" , Marcel Apfelbaum , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 3/5] hw/pci-host/versatile: Add the MEMORY_WINDOW_COUNT definition Date: Mon, 12 Oct 2020 15:20:14 +0200 Message-Id: <20201012132017.3423954-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201012132017.3423954-1-f4bug@amsat.org> References: <20201012132017.3423954-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Note from Peter Maydell: The versatile/realview PCI controller has: * three memory windows in the system address space - those are represented by the pci_mem_window[] array - mem_win_size[] holds the size of each window (which is fixed but varies between the different implementations of this controller on different boards) - the device IMAPn registers allow the guest to configure the mapping from "a CPU access to an address in window n" to "a PCI address on the PCI bus, and our imap[] array holds those register values Use self-explicit MEMORY_WINDOW_COUNT definition instead of a magic value. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell --- hw/pci-host/versatile.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/hw/pci-host/versatile.c b/hw/pci-host/versatile.c index b4951023f4e..61465bbbb65 100644 --- a/hw/pci-host/versatile.c +++ b/hw/pci-host/versatile.c @@ -72,6 +72,8 @@ enum { PCI_VPB_IRQMAP_FORCE_OK, }; =20 +#define MEMORY_WINDOW_COUNT 3 + struct PCIVPBState { PCIHostState parent_obj; =20 @@ -86,17 +88,17 @@ struct PCIVPBState { * The offsets into pci_mem_space are controlled by the imap registers. */ MemoryRegion pci_io_window; - MemoryRegion pci_mem_window[3]; + MemoryRegion pci_mem_window[MEMORY_WINDOW_COUNT]; PCIBus pci_bus; PCIDevice pci_dev; =20 /* Constant for life of device: */ int realview; - uint32_t mem_win_size[3]; + uint32_t mem_win_size[MEMORY_WINDOW_COUNT]; uint8_t irq_mapping_prop; =20 /* Variable state: */ - uint32_t imap[3]; + uint32_t imap[MEMORY_WINDOW_COUNT]; uint32_t smap[3]; uint32_t selfid; uint32_t flags; @@ -130,7 +132,7 @@ static void pci_vpb_update_all_windows(PCIVPBState *s) /* Update all alias windows based on the current register state */ int i; =20 - for (i =3D 0; i < 3; i++) { + for (i =3D 0; i < MEMORY_WINDOW_COUNT; i++) { pci_vpb_update_window(s, i); } } @@ -148,7 +150,7 @@ static const VMStateDescription pci_vpb_vmstate =3D { .minimum_version_id =3D 1, .post_load =3D pci_vpb_post_load, .fields =3D (VMStateField[]) { - VMSTATE_UINT32_ARRAY(imap, PCIVPBState, 3), + VMSTATE_UINT32_ARRAY(imap, PCIVPBState, MEMORY_WINDOW_COUNT), VMSTATE_UINT32_ARRAY(smap, PCIVPBState, 3), VMSTATE_UINT32(selfid, PCIVPBState), VMSTATE_UINT32(flags, PCIVPBState), @@ -370,10 +372,11 @@ static void pci_vpb_set_irq(void *opaque, int irq_num= , int level) static void pci_vpb_reset(DeviceState *d) { PCIVPBState *s =3D PCI_VPB(d); + int i; =20 - s->imap[0] =3D 0; - s->imap[1] =3D 0; - s->imap[2] =3D 0; + for (i =3D 0; i < MEMORY_WINDOW_COUNT; i++) { + s->imap[i] =3D 0; + } s->smap[0] =3D 0; s->smap[1] =3D 0; s->smap[2] =3D 0; @@ -453,7 +456,7 @@ static void pci_vpb_realize(DeviceState *dev, Error **e= rrp) * PCI memory space. The sizes vary from board to board; the base * offsets are guest controllable via the IMAP registers. */ - for (i =3D 0; i < 3; i++) { + for (i =3D 0; i < MEMORY_WINDOW_COUNT; i++) { memory_region_init_alias(&s->pci_mem_window[i], OBJECT(s), "pci-vb= p-window", &s->pci_mem_space, 0, s->mem_win_size[i]); sysbus_init_mmio(sbd, &s->pci_mem_window[i]); --=20 2.26.2