Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195270/?format=api
{ "id": 2195270, "url": "http://patchwork.ozlabs.org/api/patches/2195270/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210-hppa-c3600-v2-2-9ca09c677012@rev.ng/", "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": "<20260210-hppa-c3600-v2-2-9ca09c677012@rev.ng>", "list_archive_url": null, "date": "2026-02-10T16:37:16", "name": "[v2,2/4] hppa: Introduce HPPACPUDef", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "68bc5ca0efe1d0281dd68b8464c7d3792cf5225a", "submitter": { "id": 92408, "url": "http://patchwork.ozlabs.org/api/people/92408/?format=api", "name": "Anton Johansson", "email": "anjo@rev.ng" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210-hppa-c3600-v2-2-9ca09c677012@rev.ng/mbox/", "series": [ { "id": 491706, "url": "http://patchwork.ozlabs.org/api/series/491706/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491706", "date": "2026-02-10T16:37:16", "name": "hppa: Add simple C3600 machine with PA-8600 CPU", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/491706/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195270/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195270/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\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=rev.ng header.i=@rev.ng header.a=rsa-sha256\n header.s=dkim header.b=nYa7gJip;\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 4f9RxN3WcPz1xwG\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 03:35: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 1vpqgc-0003Wg-Rg; Tue, 10 Feb 2026 11:34:02 -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 <anjo@rev.ng>) id 1vpqga-0003VT-Uj\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:34:00 -0500", "from rev.ng ([94.130.142.21])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <anjo@rev.ng>) id 1vpqgY-0000WB-R1\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:34:00 -0500" ], "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=rev.ng;\n s=dkim; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:\n Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID:\n Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n List-Post:List-Owner:List-Archive:List-Unsubscribe:List-Unsubscribe-Post:\n List-Help; bh=mGZqekR5KuigYMAGEYYO6SIER9j/yw9F40Czkb0c+0s=; b=nYa7gJipGeVKd3F\n yoWnuySmF+WQsGU+KZT13h7u+Z1BuJ99siglc/HP2gjMI1ddbG1XyIlCivDsAOfdDlOujOmaGTwAG\n 4y5/TtZH3YPP8tU57tsuwnZ7+XNN5TLsOJgOtzxMqJpmJ17nLHU74rGTkPW5cvz5/auYkA4jQIIU+\n hQ=;", "Date": "Tue, 10 Feb 2026 17:37:16 +0100", "Subject": "[PATCH v2 2/4] hppa: Introduce HPPACPUDef", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260210-hppa-c3600-v2-2-9ca09c677012@rev.ng>", "References": "<20260210-hppa-c3600-v2-0-9ca09c677012@rev.ng>", "In-Reply-To": "<20260210-hppa-c3600-v2-0-9ca09c677012@rev.ng>", "To": "qemu-devel@nongnu.org", "Cc": "Richard Henderson <richard.henderson@linaro.org>,\n Helge Deller <deller@gmx.de>, Anton Johansson <anjo@rev.ng>", "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1770741450; l=4109;\n i=anjo@rev.ng; s=20260210; h=from:subject:message-id;\n bh=/arWOy2RPq0eIp7ThdLx5jWVszNSSZWqLKaJ1eoyaDE=;\n b=9EMkFedcTBMGzhuZIx+zEbtXnu4SijuvT3bRH2RW+yQJDJTEzmB1qk7AZum8A7hk/CNIgQZqP\n i2KBpwolLUBDMM1DbEf5oTy2bXmIruUwl0sEz9m24ZMzAWE4wp+QpNs", "X-Developer-Key": "i=anjo@rev.ng; a=ed25519;\n pk=dKsZvj/g3kgDxnV1/SWg8a0YNGSpWtFGNsWIepQYKow=", "Received-SPF": "pass client-ip=94.130.142.21; envelope-from=anjo@rev.ng;\n helo=rev.ng", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.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 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-0.001, 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>", "Reply-to": "Anton Johansson <anjo@rev.ng>", "From": "Anton Johansson via qemu development <qemu-devel@nongnu.org>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "In preparation for adding a C3600 machine with 40 bits of physical\naddress space, and moving C3700 to 44 bits, a CPU model configuration\nstruct is added to HPPACPUClass.\n\nTwo fields are added describing the size of the physical address space,\nand whether or not the CPU uses the PA-RISC 2.0 architecture. The\nlatter was previously a field in CPUHPPAState.\n\nphys_addr_bits is currently set but unused, and will be used in the\nfollowing commit.\n\nSigned-off-by: Anton Johansson <anjo@rev.ng>\n---\n target/hppa/cpu.h | 24 ++++++++++++++++++++----\n target/hppa/cpu.c | 27 +++++++++++++++++++--------\n 2 files changed, 39 insertions(+), 12 deletions(-)", "diff": "diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h\nindex 092e647ccf..43b4882fb4 100644\n--- a/target/hppa/cpu.h\n+++ b/target/hppa/cpu.h\n@@ -270,8 +270,6 @@ typedef struct CPUArchState {\n /* Fields up to this point are cleared by a CPU reset */\n struct {} end_reset_fields;\n \n- bool is_pa20;\n-\n target_ulong kernel_entry; /* Linux kernel was loaded here */\n target_ulong cmdline_or_bootorder;\n target_ulong initrd_base, initrd_end;\n@@ -290,6 +288,18 @@ struct ArchCPU {\n QEMUTimer *alarm_timer;\n };\n \n+/**\n+ * HPPACPUDef:\n+ * @phys_addr_bits: Number of bits in the physical address space.\n+ * @is_pa20: Whether the CPU model follows the PA-RISC 2.0 or 1.1 spec.\n+ *\n+ * Configuration options for a HPPA CPU model.\n+ */\n+typedef struct HPPACPUDef {\n+ uint8_t phys_addr_bits;\n+ bool is_pa20;\n+} HPPACPUDef;\n+\n /**\n * HPPACPUClass:\n * @parent_realize: The parent class' realize handler.\n@@ -302,11 +312,17 @@ struct HPPACPUClass {\n \n DeviceRealize parent_realize;\n ResettablePhases parent_phases;\n+ const HPPACPUDef *def;\n };\n \n-static inline bool hppa_is_pa20(const CPUHPPAState *env)\n+static inline const HPPACPUDef *hppa_def(CPUHPPAState *env)\n+{\n+ return HPPA_CPU_GET_CLASS(env_cpu(env))->def;\n+}\n+\n+static inline bool hppa_is_pa20(CPUHPPAState *env)\n {\n- return env->is_pa20;\n+ return hppa_def(env)->is_pa20;\n }\n \n static inline int HPPA_BTLB_ENTRIES(CPUHPPAState *env)\ndiff --git a/target/hppa/cpu.c b/target/hppa/cpu.c\nindex c8079016bf..1ba281df20 100644\n--- a/target/hppa/cpu.c\n+++ b/target/hppa/cpu.c\n@@ -203,13 +203,6 @@ static void hppa_cpu_realizefn(DeviceState *dev, Error **errp)\n tcg_cflags_set(cs, CF_PCREL);\n }\n \n-static void hppa_cpu_initfn(Object *obj)\n-{\n- CPUHPPAState *env = cpu_env(CPU(obj));\n-\n- env->is_pa20 = !!object_dynamic_cast(obj, TYPE_HPPA64_CPU_PA_8700);\n-}\n-\n static void hppa_cpu_reset_hold(Object *obj, ResetType type)\n {\n HPPACPUClass *scc = HPPA_CPU_GET_CLASS(obj);\n@@ -284,6 +277,16 @@ static const TCGCPUOps hppa_tcg_ops = {\n #endif /* !CONFIG_USER_ONLY */\n };\n \n+static void hppa_cpu_class_base_init(ObjectClass *oc, const void *data)\n+{\n+ HPPACPUClass *acc = HPPA_CPU_CLASS(oc);\n+ /* Make sure all CPU models define a HPPACPUDef */\n+ g_assert(!object_class_is_abstract(oc) && data != NULL);\n+ if (data) {\n+ acc->def = data;\n+ }\n+}\n+\n static void hppa_cpu_class_init(ObjectClass *oc, const void *data)\n {\n DeviceClass *dc = DEVICE_CLASS(oc);\n@@ -318,18 +321,26 @@ static const TypeInfo hppa_cpu_type_infos[] = {\n .parent = TYPE_CPU,\n .instance_size = sizeof(HPPACPU),\n .instance_align = __alignof(HPPACPU),\n- .instance_init = hppa_cpu_initfn,\n .abstract = true,\n .class_size = sizeof(HPPACPUClass),\n .class_init = hppa_cpu_class_init,\n+ .class_base_init = hppa_cpu_class_base_init,\n },\n {\n .name = TYPE_HPPA_CPU_PA_7300LC,\n .parent = TYPE_HPPA_CPU,\n+ .class_data = &(const HPPACPUDef) {\n+ .phys_addr_bits = 32,\n+ .is_pa20 = false,\n+ },\n },\n {\n .name = TYPE_HPPA_CPU_PA_8700,\n .parent = TYPE_HPPA_CPU,\n+ .class_data = &(const HPPACPUDef) {\n+ .phys_addr_bits = 40,\n+ .is_pa20 = true,\n+ },\n },\n };\n \n", "prefixes": [ "v2", "2/4" ] }