get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2195341/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2195341,
    "url": "http://patchwork.ozlabs.org/api/patches/2195341/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/372aad8635dfbb2ad31cd824fafeb751c939f231.1770753117.git.balaton@eik.bme.hu/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<372aad8635dfbb2ad31cd824fafeb751c939f231.1770753117.git.balaton@eik.bme.hu>",
    "list_archive_url": null,
    "date": "2026-02-10T20:02:12",
    "name": "[v3,4/6] hw/pci-host/articia: Map PCI memory windows in realize",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "ce7ab5195e23d5b4fe23a98a5e29162f45e52e4f",
    "submitter": {
        "id": 16148,
        "url": "http://patchwork.ozlabs.org/api/people/16148/?format=api",
        "name": "BALATON Zoltan",
        "email": "balaton@eik.bme.hu"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/372aad8635dfbb2ad31cd824fafeb751c939f231.1770753117.git.balaton@eik.bme.hu/mbox/",
    "series": [
        {
            "id": 491733,
            "url": "http://patchwork.ozlabs.org/api/series/491733/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491733",
            "date": "2026-02-10T20:02:11",
            "name": "Implement memory_region_new_* functions",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/491733/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195341/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195341/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)",
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f9XZB3lyJz1xvg\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 07:03:46 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vptwZ-0000uA-1V; Tue, 10 Feb 2026 15:02:43 -0500",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <balaton@eik.bme.hu>)\n id 1vptwF-0000ot-Mt\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 15:02:25 -0500",
            "from zero.eik.bme.hu ([2001:738:2001:2001::2001])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <balaton@eik.bme.hu>)\n id 1vptwA-00051F-QK\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 15:02:22 -0500",
            "from localhost (localhost [127.0.0.1])\n by zero.eik.bme.hu (Postfix) with ESMTP id CA8DC596E98;\n Tue, 10 Feb 2026 21:02:14 +0100 (CET)",
            "from zero.eik.bme.hu ([127.0.0.1])\n by localhost (zero.eik.bme.hu [127.0.0.1]) (amavis, port 10028) with ESMTP\n id wzl8nlW5p9kK; Tue, 10 Feb 2026 21:02:12 +0100 (CET)",
            "by zero.eik.bme.hu (Postfix, from userid 432)\n id 66015596ADE; Tue, 10 Feb 2026 21:02:12 +0100 (CET)"
        ],
        "X-Virus-Scanned": "amavis at eik.bme.hu",
        "X-Amavis-Alert": "BAD HEADER SECTION, Duplicate header field: \"MIME-Version\"",
        "Message-ID": "\n <372aad8635dfbb2ad31cd824fafeb751c939f231.1770753117.git.balaton@eik.bme.hu>",
        "In-Reply-To": "<cover.1770753117.git.balaton@eik.bme.hu>",
        "References": "<cover.1770753117.git.balaton@eik.bme.hu>",
        "From": "BALATON Zoltan <balaton@eik.bme.hu>",
        "Subject": "[PATCH v3 4/6] hw/pci-host/articia: Map PCI memory windows in realize",
        "MIME-Version": [
            "1.0",
            "1.0"
        ],
        "Content-Type": [
            "text/plain; charset=UTF-8",
            "text/plain; charset=UTF-8"
        ],
        "Content-Transfer-Encoding": [
            "8bit",
            "8bit"
        ],
        "To": "qemu-devel@nongnu.org",
        "Cc": "Peter Xu <peterx@redhat.com>,\n Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Paolo Bonzini <pbonzini@redhat.com>,\n Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,\n Gerd Hoffmann <kraxel@redhat.com>, Max Filippov <jcmvbkbc@gmail.com>,\n Peter Maydell <peter.maydell@linaro.org>, =?utf-8?q?Philippe_Mathieu-Daud?=\n\t=?utf-8?q?=C3=A9?= <philmd@linaro.org>",
        "Date": "Tue, 10 Feb 2026 21:02:12 +0100 (CET)",
        "Received-SPF": "pass client-ip=2001:738:2001:2001::2001;\n envelope-from=balaton@eik.bme.hu; helo=zero.eik.bme.hu",
        "X-Spam_score_int": "-18",
        "X-Spam_score": "-1.9",
        "X-Spam_bar": "-",
        "X-Spam_report": "(-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "These memory windows are a result of the address decoding in the\nArticia S north bridge so better model it there and not in board code.\n\nSuggested-by: Philippe Mathieu-Daudé <philmd@linaro.org>\nSigned-off-by: BALATON Zoltan <balaton@eik.bme.hu>\n---\n hw/pci-host/articia.c | 14 +++++++++++++-\n hw/ppc/amigaone.c     | 28 +++++-----------------------\n hw/ppc/pegasos.c      | 13 -------------\n 3 files changed, 18 insertions(+), 37 deletions(-)",
    "diff": "diff --git a/hw/pci-host/articia.c b/hw/pci-host/articia.c\nindex 04623dfd84..203e0646df 100644\n--- a/hw/pci-host/articia.c\n+++ b/hw/pci-host/articia.c\n@@ -22,6 +22,11 @@\n  * Most features are missing but those are not needed by firmware and guests.\n  */\n \n+#define PCI_HIGH_ADDR 0x80000000\n+#define PCI_HIGH_SIZE 0x7d000000\n+#define PCI_LOW_ADDR  0xfd000000\n+#define PCI_LOW_SIZE   0x1000000\n+\n OBJECT_DECLARE_SIMPLE_TYPE(ArticiaState, ARTICIA)\n \n OBJECT_DECLARE_SIMPLE_TYPE(ArticiaHostState, ARTICIA_PCI_HOST)\n@@ -169,6 +174,7 @@ static void articia_realize(DeviceState *dev, Error **errp)\n {\n     ArticiaState *s = ARTICIA(dev);\n     PCIHostState *h = PCI_HOST_BRIDGE(dev);\n+    MemoryRegion *mr;\n     PCIDevice *pdev;\n \n     bitbang_i2c_init(&s->smbus, i2c_init_bus(dev, \"smbus\"));\n@@ -181,6 +187,13 @@ static void articia_realize(DeviceState *dev, Error **errp)\n                           TYPE_ARTICIA, 0x1000000);\n     memory_region_add_subregion_overlap(&s->reg, 0, &s->io, 1);\n \n+    mr = memory_region_new_alias(OBJECT(dev), \"pci-mem-low\", &s->mem, 0,\n+                                 PCI_LOW_SIZE);\n+    memory_region_add_subregion(get_system_memory(), PCI_LOW_ADDR, mr);\n+    mr = memory_region_new_alias(OBJECT(dev), \"pci-mem-high\", &s->mem,\n+                                 PCI_HIGH_ADDR, PCI_HIGH_SIZE);\n+    memory_region_add_subregion(get_system_memory(), PCI_HIGH_ADDR, mr);\n+\n     /* devfn_min is 8 that matches first PCI slot in AmigaOne */\n     h->bus = pci_register_root_bus(dev, NULL, articia_pcihost_set_irq,\n                                    amigaone_pcihost_bus0_map_irq, dev, &s->mem,\n@@ -191,7 +204,6 @@ static void articia_realize(DeviceState *dev, Error **errp)\n     pci_create_simple(h->bus, PCI_DEVFN(0, 1), TYPE_ARTICIA_PCI_BRIDGE);\n \n     sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->reg);\n-    sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->mem);\n     qdev_init_gpio_out(dev, s->irq, ARRAY_SIZE(s->irq));\n }\n \ndiff --git a/hw/ppc/amigaone.c b/hw/ppc/amigaone.c\nindex 8074713fbe..17deacab44 100644\n--- a/hw/ppc/amigaone.c\n+++ b/hw/ppc/amigaone.c\n@@ -35,13 +35,6 @@\n #define INITRD_MIN_ADDR 0x600000\n #define INIT_RAM_ADDR 0x40000000\n \n-#define PCI_HIGH_ADDR 0x80000000\n-#define PCI_HIGH_SIZE 0x7d000000\n-#define PCI_LOW_ADDR  0xfd000000\n-#define PCI_LOW_SIZE  0xe0000\n-\n-#define ARTICIA_ADDR 0xfe000000\n-\n /*\n  * Firmware binary available at\n  * https://www.hyperion-entertainment.com/index.php/downloads?view=files&parent=28\n@@ -267,7 +260,7 @@ static void amigaone_init(MachineState *machine)\n {\n     PowerPCCPU *cpu;\n     CPUPPCState *env;\n-    MemoryRegion *rom, *pci_mem, *mr;\n+    MemoryRegion *rom, *mr;\n     ssize_t sz;\n     PCIBus *pci_bus;\n     Object *via;\n@@ -308,8 +301,8 @@ static void amigaone_init(MachineState *machine)\n         qdev_prop_set_drive(dev, \"drive\", blk_by_legacy_dinfo(di));\n     }\n     sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);\n-    memory_region_add_subregion(get_system_memory(), NVRAM_ADDR,\n-                                sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0));\n+    mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0);\n+    memory_region_add_subregion_overlap(get_system_memory(), NVRAM_ADDR, mr, 1);\n \n     /* allocate and load firmware */\n     rom = g_new(MemoryRegion, 1);\n@@ -329,8 +322,8 @@ static void amigaone_init(MachineState *machine)\n     }\n \n     /* Articia S */\n-    dev = sysbus_create_simple(TYPE_ARTICIA, ARTICIA_ADDR, NULL);\n-\n+    dev = sysbus_create_simple(TYPE_ARTICIA, 0xfe000000, NULL);\n+    pci_bus = PCI_BUS(qdev_get_child_bus(dev, \"pci.0\"));\n     i2c_bus = I2C_BUS(qdev_get_child_bus(dev, \"smbus\"));\n     if (machine->ram_size > 512 * MiB) {\n         spd_data = spd_data_generate(SDR, machine->ram_size / 2);\n@@ -343,17 +336,6 @@ static void amigaone_init(MachineState *machine)\n         smbus_eeprom_init_one(i2c_bus, 0x52, spd_data);\n     }\n \n-    pci_mem = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 1);\n-    mr = g_new(MemoryRegion, 1);\n-    memory_region_init_alias(mr, OBJECT(dev), \"pci-mem-low\", pci_mem,\n-                             0, PCI_LOW_SIZE);\n-    memory_region_add_subregion(get_system_memory(), PCI_LOW_ADDR, mr);\n-    mr = g_new(MemoryRegion, 1);\n-    memory_region_init_alias(mr, OBJECT(dev), \"pci-mem-high\", pci_mem,\n-                             PCI_HIGH_ADDR, PCI_HIGH_SIZE);\n-    memory_region_add_subregion(get_system_memory(), PCI_HIGH_ADDR, mr);\n-    pci_bus = PCI_BUS(qdev_get_child_bus(dev, \"pci.0\"));\n-\n     /* VIA VT82c686B South Bridge (multifunction PCI device) */\n     via = OBJECT(pci_create_simple_multifunction(pci_bus, PCI_DEVFN(7, 0),\n                                                  TYPE_VT82C686B_ISA));\ndiff --git a/hw/ppc/pegasos.c b/hw/ppc/pegasos.c\nindex ac9fc5a654..e0e2e8815d 100644\n--- a/hw/ppc/pegasos.c\n+++ b/hw/ppc/pegasos.c\n@@ -213,23 +213,10 @@ static void pegasos_init(MachineState *machine)\n     /* north bridge */\n     switch (pm->type) {\n     case PEGASOS1:\n-    {\n-        MemoryRegion *pci_mem, *mr;\n-\n         /* Articia S */\n         pm->nb = DEVICE(sysbus_create_simple(TYPE_ARTICIA, 0xfe000000, NULL));\n-        pci_mem = sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->nb), 1);\n-        mr = g_new(MemoryRegion, 1);\n-        memory_region_init_alias(mr, OBJECT(pm->nb), \"pci-mem-low\", pci_mem,\n-                                 0, 0x1000000);\n-        memory_region_add_subregion(get_system_memory(), 0xfd000000, mr);\n-        mr = g_new(MemoryRegion, 1);\n-        memory_region_init_alias(mr, OBJECT(pm->nb), \"pci-mem-high\", pci_mem,\n-                                 0x80000000, 0x7d000000);\n-        memory_region_add_subregion(get_system_memory(), 0x80000000, mr);\n         pci_bus = PCI_BUS(qdev_get_child_bus(pm->nb, \"pci.0\"));\n         break;\n-    }\n     case PEGASOS2:\n         /* Marvell Discovery II system controller */\n         pm->nb = DEVICE(sysbus_create_simple(TYPE_MV64361, -1,\n",
    "prefixes": [
        "v3",
        "4/6"
    ]
}