Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2218695/?format=api
{ "id": 2218695, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2218695/?format=api", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.0/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": "" }, "msgid": "<20260401170454.32045-2-yodel.eldar@yodel.dev>", "date": "2026-04-01T17:04:51", "name": "[RFC,1/4] alpha: Define Typhoon instance_init", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "480b25ac5105040076e396b74124efeeb8ed5ee4", "submitter": { "id": 92094, "url": "http://patchwork.ozlabs.org/api/1.0/people/92094/?format=api", "name": "Yodel Eldar", "email": "yodel.eldar@yodel.dev" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260401170454.32045-2-yodel.eldar@yodel.dev/mbox/", "series": [ { "id": 498370, "url": "http://patchwork.ozlabs.org/api/1.0/series/498370/?format=api", "date": "2026-04-01T17:04:50", "name": "alpha: Decouple the CPU and Typhoon", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498370/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2218695/checks/", "tags": {}, "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\tdkim=pass (2048-bit key;\n secure) header.d=yodel.dev header.i=@yodel.dev header.a=rsa-sha256\n header.s=rsa2048 header.b=CwVlYMPO;\n\tdkim-atps=neutral", "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 4fmBG41ZqXz1yCp\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 04:06:04 +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 1w7z0X-00015j-AC; Wed, 01 Apr 2026 13:05:33 -0400", "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)\n (envelope-from <bounce+0e9322.97607e-qemu-devel=nongnu.org@yodel.dev>)\n id 1w7z09-0000pj-Nn\n for qemu-devel@nongnu.org; Wed, 01 Apr 2026 13:05:11 -0400", "from v512.v5f06b487.use4.send.mailgun.net ([143.55.232.12])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1)\n (envelope-from <bounce+0e9322.97607e-qemu-devel=nongnu.org@yodel.dev>)\n id 1w7z07-0007sm-AM\n for qemu-devel@nongnu.org; Wed, 01 Apr 2026 13:05:09 -0400", "from mail.yodel.dev (mail.yodel.dev [35.209.39.246]) by\n 657e51e36a66f18c38ea7955c08c805cbc6585bdd20ef3000326122a1a6815cb with SMTP id\n 69cd503a2c50a55f4d6cb994; Wed, 01 Apr 2026 17:04:58 GMT" ], "X-Mailgun-Sid": "WyI4ZDFlNiIsInFlbXUtZGV2ZWxAbm9uZ251Lm9yZyIsIjk3NjA3ZSJd", "X-Mailgun-Sending-Ip": "143.55.232.12", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=yodel.dev;\n s=rsa2048; t=1775063097;\n bh=AJlzKuAkDZcYrX0s+aHJjENlPGBg3C9Smuh0yRglnGM=;\n h=X-Mailgun-Dkim:From:To:Cc:Subject:Date:Message-ID:In-Reply-To:\n References:MIME-Version:Content-Transfer-Encoding:From:Reply-to:\n Subject:Date:Message-id:To:Cc:Mime-version:Content-type:\n Content-transfer-encoding:In-reply-to:References;\n b=CwVlYMPOUNoEgWUY/HBh6nhPVCL+eTs1aZrWumY46c0Ui3EZw/DAUCz1Heiyr9Bi7\n 5RsejjGjMQkzMJfa/0tJkcUm+5Wk+0uzip5zJ3w/RuiBNhAgWJk9XWLvDLPa0OIr8G\n XMdQfBaRrx+jfGBu3zESoDw8X2AEYWInPI1ArSZlvfRNZXuwsFLl8O0sOKrubf/GJE\n u0079rRjhlZ1jifT4skJ0joDtNPVL0Xz9ykweSKFiqsKw0tA3seXwaj7Ui+l0Ta8jO\n 5xnp1XTOxdvr3iuUv/6g9gZrI14bNgxSWVajIkB3r38OfL9GbvEKU0JdEJayIis4HZ\n XmsXlxkOaCPUQ==", "X-Mailgun-Dkim": [ "no", "no" ], "From": "\"Yodel Eldar\" <yodel.eldar@yodel.dev>", "To": "qemu-devel@nongnu.org", "Cc": "Richard Henderson <richard.henderson@linaro.org>, =?utf-8?q?Philippe_Mat?=\n\t=?utf-8?q?hieu-Daud=C3=A9?= <philmd@linaro.org>,\n Yodel Eldar <yodel.eldar@yodel.dev>", "Subject": "[RFC PATCH 1/4] alpha: Define Typhoon instance_init", "Date": "Wed, 1 Apr 2026 12:04:51 -0500", "Message-ID": "<20260401170454.32045-2-yodel.eldar@yodel.dev>", "In-Reply-To": "<20260401170454.32045-1-yodel.eldar@yodel.dev>", "References": "<20260401170454.32045-1-yodel.eldar@yodel.dev>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=143.55.232.12;\n envelope-from=bounce+0e9322.97607e-qemu-devel=nongnu.org@yodel.dev;\n helo=v512.v5f06b487.use4.send.mailgun.net", "X-Spam_score_int": "0", "X-Spam_score": "-0.1", "X-Spam_bar": "/", "X-Spam_report": "(-0.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n HELO_STATIC_HOST=-0.001, RCVD_IN_MSPIKE_H2=-0.01,\n RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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": "From: Yodel Eldar <yodel.eldar@yodel.dev>\n\nSigned-off-by: Yodel Eldar <yodel.eldar@yodel.dev>\n---\n hw/alpha/alpha_sys.h | 4 +++-\n hw/alpha/dp264.c | 8 +++++++-\n hw/alpha/typhoon.c | 24 ++++++++++++------------\n 3 files changed, 22 insertions(+), 14 deletions(-)", "diff": "diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h\nindex 6e6691d116..247a52b776 100644\n--- a/hw/alpha/alpha_sys.h\n+++ b/hw/alpha/alpha_sys.h\n@@ -8,9 +8,11 @@\n #include \"hw/core/boards.h\"\n #include \"hw/intc/i8259.h\"\n \n+#define TYPE_TYPHOON_PCI_HOST_BRIDGE \"typhoon-pcihost\"\n+OBJECT_DECLARE_SIMPLE_TYPE(TyphoonState, TYPHOON_PCI_HOST_BRIDGE)\n \n PCIBus *typhoon_init(MemoryRegion *, qemu_irq *, qemu_irq *, AlphaCPU *[4],\n- pci_map_irq_fn, uint8_t devfn_min);\n+ pci_map_irq_fn, uint8_t devfn_min, TyphoonState *);\n \n /* alpha_pci.c. */\n extern const MemoryRegionOps alpha_pci_ignore_ops;\ndiff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c\nindex 2ab3c14747..ce2f8765cd 100644\n--- a/hw/alpha/dp264.c\n+++ b/hw/alpha/dp264.c\n@@ -49,6 +49,7 @@ static void clipper_init(MachineState *machine)\n const char *kernel_cmdline = machine->kernel_cmdline;\n const char *initrd_filename = machine->initrd_filename;\n MachineClass *mc = MACHINE_GET_CLASS(machine);\n+ Object *typhoon_obj;\n AlphaCPU *cpus[4];\n PCIBus *pci_bus;\n PCIDevice *pci_dev;\n@@ -62,6 +63,10 @@ static void clipper_init(MachineState *machine)\n uint64_t kernel_entry, kernel_low;\n unsigned int smp_cpus = machine->smp.cpus;\n \n+ typhoon_obj = object_new_with_props(TYPE_TYPHOON_PCI_HOST_BRIDGE,\n+ OBJECT(machine), \"typhoon\",\n+ &error_fatal, NULL);\n+\n /* Create up to 4 cpus. */\n memset(cpus, 0, sizeof(cpus));\n for (i = 0; i < smp_cpus; ++i) {\n@@ -87,7 +92,8 @@ static void clipper_init(MachineState *machine)\n * the minimum PCI device IdSel is 1.\n */\n pci_bus = typhoon_init(machine->ram, &isa_irq, &rtc_irq, cpus,\n- clipper_pci_map_irq, PCI_DEVFN(1, 0));\n+ clipper_pci_map_irq, PCI_DEVFN(1, 0),\n+ TYPHOON_PCI_HOST_BRIDGE(typhoon_obj));\n \n /*\n * Init the PCI -> ISA bridge.\ndiff --git a/hw/alpha/typhoon.c b/hw/alpha/typhoon.c\nindex 7722d4fd00..26580664d8 100644\n--- a/hw/alpha/typhoon.c\n+++ b/hw/alpha/typhoon.c\n@@ -17,7 +17,6 @@\n #include \"alpha_sys.h\"\n \n \n-#define TYPE_TYPHOON_PCI_HOST_BRIDGE \"typhoon-pcihost\"\n #define TYPE_TYPHOON_IOMMU_MEMORY_REGION \"typhoon-iommu-memory-region\"\n \n typedef struct TyphoonCchip {\n@@ -49,8 +48,6 @@ typedef struct TyphoonPchip {\n TyphoonWindow win[4];\n } TyphoonPchip;\n \n-OBJECT_DECLARE_SIMPLE_TYPE(TyphoonState, TYPHOON_PCI_HOST_BRIDGE)\n-\n struct TyphoonState {\n PCIHostState parent_obj;\n \n@@ -819,25 +816,27 @@ static void typhoon_alarm_timer(void *opaque)\n cpu_interrupt(CPU(s->cchip.cpu[cpu]), CPU_INTERRUPT_TIMER);\n }\n \n+static void typhoon_pcihost_instance_init(Object *obj)\n+{\n+ TyphoonState *s = TYPHOON_PCI_HOST_BRIDGE(obj);\n+\n+ s->cchip.misc = 0x800000000ull; /* Revision: Typhoon. */\n+ s->pchip.win[3].wba = 2; /* Window 3 SG always enabled. */\n+}\n+\n PCIBus *typhoon_init(MemoryRegion *ram, qemu_irq *p_isa_irq,\n qemu_irq *p_rtc_irq, AlphaCPU *cpus[4],\n- pci_map_irq_fn sys_map_irq, uint8_t devfn_min)\n+ pci_map_irq_fn sys_map_irq, uint8_t devfn_min,\n+ TyphoonState *s)\n {\n MemoryRegion *addr_space = get_system_memory();\n- DeviceState *dev;\n- TyphoonState *s;\n+ DeviceState *dev = DEVICE(s);\n PCIHostState *phb;\n PCIBus *b;\n int i;\n \n- dev = qdev_new(TYPE_TYPHOON_PCI_HOST_BRIDGE);\n-\n- s = TYPHOON_PCI_HOST_BRIDGE(dev);\n phb = PCI_HOST_BRIDGE(dev);\n \n- s->cchip.misc = 0x800000000ull; /* Revision: Typhoon. */\n- s->pchip.win[3].wba = 2; /* Window 3 SG always enabled. */\n-\n /* Remember the CPUs so that we can deliver interrupts to them. */\n for (i = 0; i < 4; i++) {\n AlphaCPU *cpu = cpus[i];\n@@ -931,6 +930,7 @@ PCIBus *typhoon_init(MemoryRegion *ram, qemu_irq *p_isa_irq,\n static const TypeInfo typhoon_pcihost_info = {\n .name = TYPE_TYPHOON_PCI_HOST_BRIDGE,\n .parent = TYPE_PCI_HOST_BRIDGE,\n+ .instance_init = typhoon_pcihost_instance_init,\n .instance_size = sizeof(TyphoonState),\n };\n \n", "prefixes": [ "RFC", "1/4" ] }