From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055289; cv=none; d=zohomail.com; s=zohoarc; b=jHgUXIr/T3uHFxKfeptIAUhDsDDYvCezkjgUHi9nMrnCSt8DU6oijNwbTH84/22fNJcFgGgpxDtVGi7lApbvpIz6jVDjN4HZXljCVlIKa6BMXEJCNAjABLaNdgZ4VknD/cjNMZZcJOGgXqlmFOUpN9q5GPVEM070L+e92O8HEms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055289; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=unbBcxE6HlsS3TB+KG52+c/7q4sg73xuGpBak3EEwpg=; b=boX1IWINCRLjA0ItLnmX6AN09MBpHc4em3eUoKQ7H1xQl2rlUKz8Lzw3VsUWwTqhddH4pZsSw8JNDf0virHzyq/2IFvD9ydv7fX2GhwMtGlcMOjC81S/ppKwm6idPEJZ9L14A3wivfuLj+g94tyVvNSimvVQJXXbumTyq62Vl/8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055289405875.4393901457058; Fri, 29 May 2026 04:48:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgc-0001TA-QK; Fri, 29 May 2026 07:47:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgY-0001R5-QE for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:30 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgW-00087q-Dd for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:30 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-4909e3fa4b2so4905845e9.0 for ; Fri, 29 May 2026 04:47:28 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055246; x=1780660046; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=unbBcxE6HlsS3TB+KG52+c/7q4sg73xuGpBak3EEwpg=; b=w+TmkvULFvXiZSdBNLhls8TNT5y7HBbmMS3ZIJgKP8T7VI6+pCZOubacdcsIv0T7Mf Pp1nhCjwADRJOpATIDISgLTwAgb+FbvUCudOobCXRKV2ojOyf3Jo33bHwOvrj7kSGDtl w8s5vU0VSZ965DN1LAfbl1CUsYs9agelr4NmZbFlVMiZX81JMzxaal04VsyGJs0FMAjx db+DQRhEAICDPRC1D2rvkP4HPM8AsFBC0sY7k9MpHF2hVKhj3n/+9WSyiK0N/6w7jkt1 8SuFJudNhCe9Zg6OqElPDBWjeeSWswd1PFTy5ZLurBUNUyjv8Cu5JkQVttBjning/LTo O/ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055246; x=1780660046; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=unbBcxE6HlsS3TB+KG52+c/7q4sg73xuGpBak3EEwpg=; b=V77ghGLqt9Br/A8L1BQqr5PZrlvWwTfip/gCOjpA9t+zCAf4eX7GR2RIAlY4wlgYgM /5oQNskVCeHD6SXBJeffR4EmhnT0idMOw2Z+E1ERANpDSkX4EsGT31oGguQklUOSExId bXPX9+J8JAaCuF51X7AYBpgaE5uxiLEkRznbaHjLEfUxFfN5910A+gwT25MppslxmB/S amgecbzVrH9yfHeqLKyulklFaPuFtFZZg89ZckAxpC1M4cB94nfc1fyL/6nlKH5TzcHQ 66MglBIZB+RXo0qv03+vUJoAG+hFuvZQQT3A73S4WAxpRADwMo54f62T6FKDwEU6D+fI rVdQ== X-Gm-Message-State: AOJu0YxLIR6ZIDBMu2PR3HVdCBiMV6x2ej4WD1DQU6M35DrlS+K8VQkj betrtS2GLfoQYhe3aLw6Sf8IOoHxTpJuipMOItPycPzWMGVfUCcHxkjFHX6jLnlMPSEgLMoYltj cRjkE X-Gm-Gg: Acq92OEUq6WcTJR9atsj6NK7redKtK5tvFDpJS2bOMQIGG5fN43p/55XMfivjgeMMF4 YxLH3GrtPas0DBrxhm3wYM0Svg8cRhoTA4TKZApKjUd3TcXQMbOkFGzGlOgG/Odl8nuMbZYC1dr NTr5U1E2ndj4QrZj5GV94W3RQNOg0WfBatVfL86MOOB/rXCkV2s1Co82NIYlDgVEKLUiZN4JFL7 EY7dN4ECoe47KmKcxZrCtBCm5sGDZMT1l7c1m+gwIGcVUEOkJ83gvcJiRygqHu3vFqUMVyr32f+ p7w75OB0fnp1ADYR9jfIDIYUnF7xvBE4PeIsfpPk9oeaaWecDUDe7IlOUmUniUmTmVV5kLvgzbj twz5LAFzueSY5hNBQN9WqzjOAhty25rELpQcMDVS5q2jX3jidwn6RiFXOXD5xhZyFjvjV/1RXJJ zZuXmmEydMe0KSSKXJTEBkP44OAvN3FolLKwIGZlIMGygXiPx3ViNx+xO7BhpGwvNGyq+ffVIFi u+RP/gWdBr3OgUlOfeMKb8+89wTFm1zhc6wByNHYA== X-Received: by 2002:a05:600c:674a:b0:48f:f64c:c2fe with SMTP id 5b1f17b1804b1-4909c0bc7d9mr49268945e9.22.1780055246562; Fri, 29 May 2026 04:47:26 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 01/21] target/arm: Enable REVD for SVE2.1 Date: Fri, 29 May 2026 12:47:02 +0100 Message-ID: <20260529114723.42040-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055296204154100 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Cc: qemu-stable@nongnu.org Signed-off-by: Richard Henderson Message-id: 20260522220408.235438-1-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- target/arm/tcg/translate-sve.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index d04ef2dcfc..fb9d379184 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -2993,7 +2993,8 @@ TRANS_FEAT(REVH, aa64_sme_or_sve, gen_gvec_ool_arg_zp= z, revh_fns[a->esz], a, 0) TRANS_FEAT(REVW, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, a->esz =3D=3D 3 ? gen_helper_sve_revw_d : NULL, a, 0) =20 -TRANS_FEAT(REVD, aa64_sme, gen_gvec_ool_arg_zpz, gen_helper_sme_revd_q, a,= 0) +TRANS_FEAT(REVD, aa64_sme_or_sve2p1, gen_gvec_ool_arg_zpz, + gen_helper_sme_revd_q, a, 0) =20 TRANS_FEAT(SPLICE, aa64_sme_or_sve, gen_gvec_ool_arg_zpzz, gen_helper_sve_splice, a, a->esz) --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055336; cv=none; d=zohomail.com; s=zohoarc; b=WXuXdz0MkqBJ1MWeGRhqJq7z22Yh7rETXr2uVLOzCRxyZpmBCKbmEqnXeoojQUl4eOmUF1jHWdwoWJG34uhFkuMZskysrvRMaKjSUnumF9ErTysjK9CXNSbYZXPjKGLZZniAK2AuXbuLo9d5Bv3Pkqkx+eS9JIBmOkpkwkob8/o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055336; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=Gu39tWs0RcZyH4C2B3SuMjpIx3n47+25EF5CIC4US8Y=; b=cVNYAp+BKO8G2cVrCHKWt7nJj+npa1r+DT9Pc6RzSsrreEh8Pl6+NnGFY+6XjOTTh0ww96Gy5BPx/qv0/yztmbSwZ3/lLEk8GrbsB/awpLsmTa4E+WCvjf+EeT3Za86XJDCsoXkyW1HdQfMawxwySWiqCYDLfdAQfWha3p2FFEg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055336109568.8771319877263; Fri, 29 May 2026 04:48:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgd-0001UL-BR; Fri, 29 May 2026 07:47:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvga-0001RX-3U for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:32 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgX-00089W-W5 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:31 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-48e8132c6d0so88203935e9.1 for ; Fri, 29 May 2026 04:47:29 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055248; x=1780660048; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Gu39tWs0RcZyH4C2B3SuMjpIx3n47+25EF5CIC4US8Y=; b=iyqDovozJhJeJI8Z8kyc4uyemAvvNiyX0i3+HDD9gJd/AOdIG4DZBQ2LQKc5vril+b F0WL4KHFUZRl5ebTba9Q30K/a802f7xdbi30QKRpoW1wNfKmV2sY9kCfSxL74Tu7ro4G pBhkTleeNUfyIJKUFoav2XxB2jOYeAyD+seo+zUto7bz6T8nR/qfWaCwYaiLvlaPjcGh 5QJj+Qf8pzBSNzcwgkPf4t7Uk5u4InGXucv9l21SGK1bvK901GK6YueboONqxWV/s9sh w4TcXm/8+iyQDgNXYvnCVnbN1WMNYAZrvFZUoXmAg7+w4KXkB60QcNATyFqy/l+QzWI+ Knzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055248; x=1780660048; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Gu39tWs0RcZyH4C2B3SuMjpIx3n47+25EF5CIC4US8Y=; b=oxteGiJotIBWjV0q0Z4J+1GWxqDanRH1bTXSDXSgssUFlahrJdy9jvj/SG+WYW1Y3I VnmB5rKo7GITbB/bdsydaErHx01UHrKSeNf8L+6YeSrkLG+Zz3FthKlzTrbpDEOoCT/K qBz4PR47MYdwpu+pEN1lw/+p/evJLpPOnaYEZcmrIbvkE8pVdbdvlK9YfrU+BDXeL9wB nqGY89vhX79iEpzbFaVjMbqz9e8rWAyX1msba4M7nilZgNOpLXJHFJly0u0IvGP8BA2F q7peiVICcG0aWh6Bx0zjmg8CIaa1kSTgYITYqA0ulntikjmqOBLUCyAjblJ/YJK/uKl1 hWXg== X-Gm-Message-State: AOJu0YzC/3rG9tRLsAfyAvB3AutEPQ1AoyJyvGBolsLn0E08M/dSmMgY Su2gVyh7Ub9lrRrLWFuY+W8uyWRgvBFSB2mO0W+rkAbyl7BJBlvtb813f4PBD6naLTb3wXOPslS aKMQg X-Gm-Gg: Acq92OG3OwzjCHsHKiSR26HQPWTrsHvaQZjaLRlJdrq52D/FGyb5nKdqPZGzywiuREt +N0zsGpyhRGvxgYnnCZqTToTwWFyfoEu6spXQARSLs1lbc1khf51eldO4iq48JLPgE0bksDMS7q drfNQUbzJbAq51wDh5x5VbBgN8c/CBiVnQLoQJDW3tpPZ0H28QCfIsdmRx6xfQ/oXXWHlMybVK0 VEJSi7CXMcvINYUSfZJoNGZLTMR/gOBiqj39Dzz/wq8WwwoJ2kZUMuUccswjwubZrMBAowk4Ggc jG0eWCBg2DBN1Jcwka8Qr7zrM/3GZF5Zh2QsRmKs56I3cFbDQvRBBzCSw78YbL5lzym8/QV1jSy fqK+G2r/HNBxvYzd0bR/MNN4VeFqm+8oviIdQgkCmjpsXimYkDyZumr+XrriQX+UNkba20D1S7w a9p40EoPXgqzOqIVavNJ8s4KOJDk+NVwSAsZnSQ0SNDf/VuEtW9vCPfgJ5zBr76gDA/jnxUBjHb h0yryiRP/PRkp3OYlHXIafu1pLerpzukDWueBP6zQ== X-Received: by 2002:a05:600c:4fd1:b0:48f:e230:c3fa with SMTP id 5b1f17b1804b1-4909c0f9b76mr42357265e9.32.1780055247619; Fri, 29 May 2026 04:47:27 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 02/21] hw/dma/zynq-devcfg: Handle bitstream loading via DMA to 0xffffffff Date: Fri, 29 May 2026 12:47:03 +0100 Message-ID: <20260529114723.42040-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x336.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055337490154100 Content-Type: text/plain; charset="utf-8" From: YannickV A DMA transfer to destination address `0xffffffff` should trigger a bitstream load via the PCAP interface. Currently, this case is not intercepted, causing loaders to enter an infinite loop when polling the status register. This commit adds a check for `0xffffffff` as the destination address. If detected, the relevant status register bits (`DMA_DONE`, `DMA_P_DONE`, and `PCFG_DONE`) are set to indicate a successful bitstream load. If the address is different, the DMA transfer proceeds as usual. A successful load is indicated but nothing is actually done. Guests relying on FPGA functions are still known to fail. This feature is required for the integration of the Beckhoff CX7200 model. Signed-off-by: YannickV Reviewed-by: Edgar E. Iglesias Message-id: 20260518073401.11279-2-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/dma/xlnx-zynq-devcfg.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c index cf00aa863d..9708200760 100644 --- a/hw/dma/xlnx-zynq-devcfg.c +++ b/hw/dma/xlnx-zynq-devcfg.c @@ -247,7 +247,14 @@ static uint64_t r_lock_pre_write(RegisterInfo *reg, ui= nt64_t val) static void r_dma_dst_len_post_write(RegisterInfo *reg, uint64_t val) { XlnxZynqDevcfg *s =3D XLNX_ZYNQ_DEVCFG(reg->opaque); - + if ((s->regs[R_DMA_DST_ADDR]) =3D=3D 0xffffffff) { + DB_PRINT("bitstream loading detected\n"); + s->regs[R_INT_STS] |=3D R_INT_STS_DMA_DONE_MASK | + R_INT_STS_DMA_P_DONE_MASK | + R_INT_STS_PCFG_DONE_MASK; + xlnx_zynq_devcfg_update_ixr(s); + return; + } s->dma_cmd_fifo[s->dma_cmd_fifo_num] =3D (XlnxZynqDevcfgDMACmd) { .src_addr =3D s->regs[R_DMA_SRC_ADDR] & ~0x3UL, .dest_addr =3D s->regs[R_DMA_DST_ADDR] & ~0x3UL, --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055332; cv=none; d=zohomail.com; s=zohoarc; b=JVvcezZMhsedqwTzzQlpmkIs0ac9RhgVC7W39psHOAMZF8ug9WtEUgiQeUvR80ENIRpXUg4/E4al1OUnS4heA0hRh+FdFpa/dYZoV2aOMh/awj85tIGdLY/QKul4xaOIpHMfObuY2+6ICOjR4icLNk//zjIOu133Kb2xU8HbCZQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055332; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=pqgjLk9hcZcvEqOGVxmXXRLNzaRiqJwhnX8AJK1bTZE=; b=b6/FT3nRonz3k85HQOR03wFeqid0WZl0VtyFvRBYOdKm8QtEHJQxItYlm3cBrcScWPDr/XZmYCpIZhzELOospYBidW+FNf0Tx/5Uc4lLxAdY8PSzQwDJR/kudbEw1VIAh57w5+bQ7JcefdjiUVqPnUpqo/cmDeotYVBxsnLu6Kc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055332830138.14347764260208; Fri, 29 May 2026 04:48:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgb-0001SD-Mb; Fri, 29 May 2026 07:47:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvga-0001RZ-6N for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:32 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgY-00089h-Go for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:31 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-45eeea039ebso594201f8f.1 for ; Fri, 29 May 2026 04:47:29 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055248; x=1780660048; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=pqgjLk9hcZcvEqOGVxmXXRLNzaRiqJwhnX8AJK1bTZE=; b=ONdftkilZuDms6H3uN2fuHBSblKjjkteWgcV2K3vcZQz3rhaNFLEkzxwZ6PxkvWTei jFR7OpoigHA0nzBLCi/smnKwF+SPB3UOljlffRCiJoxHrOb7IRaM3qi6GaJ9+QRJOWM9 tXSmDv6pK+lg7VCIZo2i/QJjzPPUKiD0YYcl5Y7Z5E1ElcTIZBVfof31zqqCpkdFTbFg sTx1colW2XGHSHxYGgoN1D0LsY2LZyVrXufnikCPqvdWdoEn3p5I6wTB3ngaiUrDP8bO 6B6wW71Hmc/rA378sw1y+GWnDtBK1+ujVuzETd8VEq9Zl9Qn7fjY5Gj5gPDmJxfs6Xwp 1OSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055248; x=1780660048; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=pqgjLk9hcZcvEqOGVxmXXRLNzaRiqJwhnX8AJK1bTZE=; b=rZpZaWtpjhL/A8wMMaQaWJ1AZqrXpUEOZ2f1TN4HUizRNGXa5PQamiPcvVc4T8MI0k 5svGdJR+CT+hRYBmD4PZujg/Vbal4yJw5OJimFXmMvvtfvyPtzHfDEf6zqnys/TJjVKg kJ8zsgKRsOMDvrQA9EbidpPEV/q4YboEuCSQli45XXsTVQ7TBuC3QxV+pncWeFPjuer/ AXHEqMBkxeZZxg+bssJ9MfD7fgq5p6s1s3xGFbhcpUtlxnkVGlXDrbRlYP0BwlQW29KW AimPUZqSbVCXIwP9nfAxl7UzX7jnlvhKkZgNwEcLCYgXbbbOppM4VvmdRiVXiYRy0S8v AbRQ== X-Gm-Message-State: AOJu0YzFHjTPDCOh7+41+gxVwQG7ph3zfQMK2LhGg/6O6dMw7Dze01OA oMr1oIQxSXtuRgCXzxJ+Q0Xjff4uEjRJ3rOzjDHr0kO/AYuLDYlvSptvzTjIz0TKd3VYxGICIoM 0McXw X-Gm-Gg: Acq92OHvB941p8huL9mv5UuECZO5CWIJotYe1+lQftbHbfqVjB6xNqy/7oB5zHOWzTM SH8DSvlpm7mn9ttdrp5R2+JYDQ1AxJXPHgfWgb7FA48BGsRSZydYjgnTHvLVsLYISyQFmoeQcJ+ Yeu0f7qA8SsA52Ta31T6M9FzBarVxe3zeMTEfU1KgTdIgvjyFwkRZQLHkWYx0Haa37k6oQ14igD b53iNNS+aQVPJZJ4zgeDpsM/ePGLwYWUlxp4WAe23iigSDv2PaMlCrYJLL82JctZd9ItbIN4Ijl eaUOGz0CKr/wx0IPlyOwmPW1SVZTYspvnokHJUrilOAcLSMjnwrqsYtWoDmCu7dWp5jHLoky5ok ZEj6pzfqHJDo4lkezynhi/YzL23Qf4wWlMds07Vxim4RAGh2U+9yxy2D5Nti9zbt3DItLmE8F9d bJxLWkZg0EOGQxeMvNIIUmTgrbGFK4zAdWcV65J60/JXKZgIEoygLnKJGNyek+odAP6GTy34k2M FtCr1MkAY73YpwHyY8zwsFZpSh1/WHkfOja+L+sjA== X-Received: by 2002:a05:6000:1889:b0:451:4d47:c9d9 with SMTP id ffacd0b85a97d-45ef140f185mr5017759f8f.14.1780055248503; Fri, 29 May 2026 04:47:28 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 03/21] hw/arm/zynq-devcfg: Prevent unintended unlock during initialization Date: Fri, 29 May 2026 12:47:04 +0100 Message-ID: <20260529114723.42040-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42b.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055335392154100 Content-Type: text/plain; charset="utf-8" From: YannickV During the emulation startup, all registers are reset, which triggers the `r_unlock_post_write` function with a value of 0. This led to an unintended memory access disable, making the devcfg unusable. During startup, the memory space no longer gets locked. Signed-off-by: YannickV Reviewed-by: Edgar E. Iglesias Message-id: 20260518073401.11279-3-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/dma/xlnx-zynq-devcfg.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c index 9708200760..afe6ffd326 100644 --- a/hw/dma/xlnx-zynq-devcfg.c +++ b/hw/dma/xlnx-zynq-devcfg.c @@ -221,7 +221,9 @@ static void r_unlock_post_write(RegisterInfo *reg, uint= 64_t val) { XlnxZynqDevcfg *s =3D XLNX_ZYNQ_DEVCFG(reg->opaque); const char *device_prefix =3D object_get_typename(OBJECT(s)); - + if (device_is_in_reset(DEVICE(s))) { + return; + } if (val =3D=3D R_UNLOCK_MAGIC) { DB_PRINT("successful unlock\n"); s->regs[R_CTRL] |=3D R_CTRL_PCAP_PR_MASK; --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055300; cv=none; d=zohomail.com; s=zohoarc; b=eSZxlUFoAs8dBpldvI5VoZUgPAT8y5VmUHMd1T19JbnbdxhZ/In7FDJcp+AidhiGrW4fcVnG94tahoApIzSdKY9+hHOTPCjInPejH49uY69LUcYM+g53Xj4QrjNSo3f++rgKbTTYNzpKAMOpB/ODqV7yRyLVljDuqc1OMQ1SuQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055300; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=GoXX4YWT40J+kryrPvd7GD/qSjSySyctZsAYeVA/MuI=; b=DJUyKQPUNfoLJKgnJWKyk/fz2FdMWSXnBVfTIPfQpX5lQQ616qYT4OWoXvQ4ElraVKiY359DqirRDOEi0hvz1AnoOpnXwUwEVHQwuQ6l3IP/DB4NlGiP/1TeTsrFeUZmRL2K+O+AL8OHOO8RHDaWcV4InXu2MwTn/wfvIv7FpY8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055300502400.18758562691255; Fri, 29 May 2026 04:48:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgc-0001T7-On; Fri, 29 May 2026 07:47:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgb-0001S3-6R for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:33 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgZ-0008Aa-Be for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:32 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-441209fb77eso8538267f8f.1 for ; Fri, 29 May 2026 04:47:30 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055249; x=1780660049; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=GoXX4YWT40J+kryrPvd7GD/qSjSySyctZsAYeVA/MuI=; b=Nf5JbGUIz44LDyf887zjrSoKQagpwRmMwU3JSUyo9uCV0C5i9kYt0wosGUYnhK1+Wb WmArVF1bZTW7x8jmEkty/VV1tCSI5IpZ9JCAX6Q1gPnxsS6gnn3B8PRmdRupnlU9nz1t rl7eF3LbuI6XgDEPWl/TUGTdh7Q1hmmI9i1ph18HVPevldX39Y1LxBoaLLMNMtpUbWso 5BZvYeYvhBrTa3SJtmQO0KnYz4dj8OObcV0JUy3aJNzzGHYqqljftyP/b/dfAOx9iGAZ JJwtWJ8QLKYK9zABSDYbaYWyPNv4cS/4sRG1Fxu43HExMOpSSdUQ2Q1llZ+MN4aBC+Si oBMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055249; x=1780660049; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=GoXX4YWT40J+kryrPvd7GD/qSjSySyctZsAYeVA/MuI=; b=eI5BGudFo9uca+4Q1hjCBEcRmPn9+v3IkeDElYoxJPn2pcYe3dDjfmDQshHl9tC5Hq BNT9INlvBjUFgQ8lsY6wv9ibVtrmUhRYiiQe+PhaEFCf0Q3K32C/NSiDw53loAbsxHkO G7WFselc53JXKCPFPZefbf2SI0526DSLIT8vndTmZJS0LWeWRVkA3QiPC53hSeIzugsZ JlQ+BH+DT5sdEA8mt1Gjuvb+CjV/kPwPunQxpjXVCRb+7ONYe43IQBORp5yiZtaxdwRv WbEi81anqAQImNpdQJ4Lrqrx2GeDBfY4O0AmgUZMqZsyth5GrYe1VZM6OWgR8XRPPt7m 10MA== X-Gm-Message-State: AOJu0YxSuvMNNOFC1nyRApRiVBes8H7L1qtrVyZgQNbtKF3m0SsJ+nRf I2FtHijJNMdJs+ds+mUZvZ98qB1e8ckSb+hqKUne/CaSBNZN273rjrScnhfaO6nECI8ubABRK1e 5XHhB X-Gm-Gg: Acq92OGQSxQ+HSIX0E186rKSaS+gY85e9odnLgw+IoRj+/0gn19UPTgUgMyOUjBbVFM d1vNraVE8e5hsd6YbqVfT2QYNCG4RpHSZORpYThDA4jAzS5Yvpg3/uWDa1LLYna7mMCn24TRsGB xTkk2l5CCwpLSLoV0Zi6a+hjqtgsLfWeB3IrgZeuGDTd6h/ymaDT53vTMB56SHJOQmfb6CSVWLq Xsmcb0rP87h2Lw+ih9ulW8ChzASBHwBzTSQt3zcxhvQ0G60TGdsRKjf8K5vnPUh5ZfO/UELzyhS DByXcqW4US1FztW4WaH+xvTQtQw0sgO/0dQmUuYseOjZaWJWIYzmlMkpPUj/4FKtIUB2O4q3uoh rTKR/Oxqxa3LN/FhtD4zEJFhmQPpBbhXU8TQoB7gxmADOv9+xvr9+chxCSlXjifawurNms1a5/9 jJ1a3bgO+rPYd2hPY6qqpRe15zg54SPGtcK8+fvEwDUf+4ZCBt15UXn9XL6mIB4c8FqTMYgMQzg FnrswJvdr2fujF/4vL3JtIPV8b6FTUiFIlJlwWlfQ== X-Received: by 2002:adf:fdc4:0:b0:449:31ca:5e53 with SMTP id ffacd0b85a97d-45ef144307emr3108697f8f.8.1780055249371; Fri, 29 May 2026 04:47:29 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 04/21] hw/dma/zynq: Ensure PCFG_DONE bit remains set to indicate PL is in user mode Date: Fri, 29 May 2026 12:47:05 +0100 Message-ID: <20260529114723.42040-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x431.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055303298158500 Content-Type: text/plain; charset="utf-8" From: YannickV All register bits are clear on write by writing 1s to those bits, however the register bits will only be cleared if the condition that sets the interrupt flag is no longer true. Since we can assume that programming is always done, the `PCFG_DONE` flag is always set to 1, so it will not never be cleared. Signed-off-by: YannickV Reviewed-by: Edgar E. Iglesias Message-id: 20260518073401.11279-4-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/dma/xlnx-zynq-devcfg.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c index afe6ffd326..7370ab941f 100644 --- a/hw/dma/xlnx-zynq-devcfg.c +++ b/hw/dma/xlnx-zynq-devcfg.c @@ -188,6 +188,8 @@ static void r_ixr_post_write(RegisterInfo *reg, uint64_= t val) { XlnxZynqDevcfg *s =3D XLNX_ZYNQ_DEVCFG(reg->opaque); =20 + s->regs[R_INT_STS] |=3D R_INT_STS_PCFG_DONE_MASK; + xlnx_zynq_devcfg_update_ixr(s); } =20 --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055371; cv=none; d=zohomail.com; s=zohoarc; b=SIAX8OIjqSf/cT6kb5ZzpWQUFjwG7DSXB4HXeXghMcwssF9YEPYYRP0IqWyuF9rOgdhohd0SpsYoBCVhKWIoTTI6YjCECr5i9eBd/rXZ4nyFP6N5QIWwzQasDh5G8lsQUdbL9WfxAeScyi7iPoohloHfatJFOfCgxCl+o0MHEDk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055371; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=sOULCKuZ0Ankmv2c1oUma3WTrs+lcFUEcIGWJpCYKiM=; b=ECmbiht2NhFcunncyjr9VBDAR93zxJn7yLG8EmbM2U3zTB7K+SI1ECGVUghO+9HN6ImFJKNZPSCRrQSrrjKRjTba5O5DJQRDvxzNXfei2BVeYpGtBg/zyNAAxpbKXTvHV1DzDBKOc4fWDJBpDUc5Vq3xIU3gUEyBUB3Fnc2d5C0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055371234905.9125039418524; Fri, 29 May 2026 04:49:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvge-0001Uw-1O; Fri, 29 May 2026 07:47:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgb-0001SE-Jp for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:33 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgZ-0008BJ-VZ for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:33 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-45ef189aa1cso506545f8f.0 for ; Fri, 29 May 2026 04:47:31 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055250; x=1780660050; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=sOULCKuZ0Ankmv2c1oUma3WTrs+lcFUEcIGWJpCYKiM=; b=b7ywUWxVZBwmtNiz2cM9dtzKGV2e9D+uCMk0VuFeK+QE53TzUmYLKXjXdYRQ2c4UVh x1rJAKxmJU2xAtZtleZA+cpe87/5U2b3QuCIOtXrQU2C6lHxrs0k6Pc0UJJc/aewC4jD eaYXLJ1A3vzsoRiJL9zK3lOcmfo5fQOlW9TYpvxgka/UDOx4FU+UzA6chrfJJ9FvrR6K rjM/bXQ32uotax7qnMqXob4nYmWwldmMXShr4METp504ixJLycVGV0PwUcfFQ44BpmZD aSUL/agIY8ECqzXkqSzaLbO2GL36qmkYstgkMKheCv/XXBak9IixStKAlK4Fp70JUxsI CC9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055250; x=1780660050; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=sOULCKuZ0Ankmv2c1oUma3WTrs+lcFUEcIGWJpCYKiM=; b=IvagReb/NCbznRR3mOUaYK+1H/6A/o3215I8iUuW3c7UPfw4H64EiuMExesKqarqEl dBD0BSCxvUCAoho22+Y8r62umKKbavIfg/tiLPYLMpiQDekZkY5s37vwjobyAaf07wlF YGqxa94b+vReppP1h+QfCN6TQlPVClqmOPG9RKVyI+4wAErYSra/Qp6OXZ0JrVxqBlAz 37KRZoGIGk+EGXBqe9wF7MoRK/r2oY2e0+KJlAPUT/VY/r9uTAAF9l0rTH5iGCsqqQlm od5E6id+/8Z5imRL6E0gVp67BAHN2ALchmfIgrYkgVB7dFkuelCdYOp/pWEkuNM4w8GM SEdw== X-Gm-Message-State: AOJu0Yx3asAm2ehIxxIriR0BBvQNzoTpQECVCW0pHs0GHIk9WRgTmMOa J3ZPu4lRs/VT6KjRRCl+18bZwgvvunohM8IWUnduqbhL6J5oPu1UhdybEHsX/zfGhoFS3s0pC0p arnXo X-Gm-Gg: Acq92OHU2wzCxzOngJPXcSD1rGKGcY+7qX/x/TrGjsTjzu5jVWNGHqy/CxFhtO0jv2B YlwjoA/4pixg8Zvq369kFUisqsXANTwy3+jZpJumEO3aM2JekBmounHULyfmGFXUZN66godsbFw 38m73PZd7uG6hA0bgwkJu7grSzKHTe93wD0BDciOiMzGPNjpLyDYs9u29+P8GBiyfvgRadHo2bD 5uHf7fH6nteO93CDFXKXiVNA1Ev2MfV6uC3JcsdeoV7ajOEtmBZurx2VySHKj4NEfznvG+7uneW c7GZtOT+KtOmjNFDN/95TK0yLG50/2uCTsYFRt1dQ8145y31h568ZKRNeKYGgic/XD11cD5rtjI XH9uc13HqhpW3vhRbQ2lTx9TY4HuIJcZCmXk+no5LSF5NwHIMoZF3WopU6oCxkCfn7REzIzVNJq tZyia0TMn9g2ZZbdmrvgzkPLrNAdnseaExpebzllt6K0mWNAbcRnJlYxdZvKk/hxsLiIVn9dIrP +SEZQY5aWgQegMVLK4NiBrwq33WS+rdt+erX7I1VQ== X-Received: by 2002:a05:6000:250f:b0:45d:77f4:1ac2 with SMTP id ffacd0b85a97d-45ef138e388mr5316789f8f.0.1780055250443; Fri, 29 May 2026 04:47:30 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 05/21] hw/dma/zynq-devcfg: Simulate dummy PL reset Date: Fri, 29 May 2026 12:47:06 +0100 Message-ID: <20260529114723.42040-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42c.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055373329158500 Content-Type: text/plain; charset="utf-8" From: YannickV Setting PCFG_PROG_B should reset the PL. After a reset PCFG_INIT should indicate that the reset is finished successfully. In order to add a MMIO-Device as part of the PL in the Zynq, the reset logic must succeed. The PCFG_INIT flag is now set when the PL reset is triggered by PCFG_PROG_B. Indicating the reset was successful. Signed-off-by: YannickV Reviewed-by: Edgar E. Iglesias Message-id: 20260518073401.11279-5-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/dma/xlnx-zynq-devcfg.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c index 7370ab941f..6b1d96ff80 100644 --- a/hw/dma/xlnx-zynq-devcfg.c +++ b/hw/dma/xlnx-zynq-devcfg.c @@ -49,6 +49,7 @@ =20 REG32(CTRL, 0x00) FIELD(CTRL, FORCE_RST, 31, 1) /* Not supported, wr ignor= ed */ + FIELD(CTRL, PCFG_PROG_B, 30, 1) FIELD(CTRL, PCAP_PR, 27, 1) /* Forced to 0 on bad unlo= ck */ FIELD(CTRL, PCAP_MODE, 26, 1) FIELD(CTRL, MULTIBOOT_EN, 24, 1) @@ -116,6 +117,7 @@ REG32(STATUS, 0x14) FIELD(STATUS, PSS_GTS_USR_B, 11, 1) FIELD(STATUS, PSS_FST_CFG_B, 10, 1) FIELD(STATUS, PSS_CFG_RESET_B, 5, 1) + FIELD(STATUS, PCFG_INIT, 4, 1) =20 REG32(DMA_SRC_ADDR, 0x18) REG32(DMA_DST_ADDR, 0x1C) @@ -204,6 +206,13 @@ static uint64_t r_ctrl_pre_write(RegisterInfo *reg, ui= nt64_t val) val |=3D lock_ctrl_map[i] & s->regs[R_CTRL]; } } + + if (FIELD_EX32(val, CTRL, PCFG_PROG_B)) { + s->regs[R_STATUS] |=3D R_STATUS_PCFG_INIT_MASK; + } else { + s->regs[R_STATUS] &=3D ~R_STATUS_PCFG_INIT_MASK; + } + return val; } =20 --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055348; cv=none; d=zohomail.com; s=zohoarc; b=LwojCq6fCDWLsMTQnJYpvdGhN7ezZ1IXA7/v6Up5/ZTzR9hyfpkNxnfqxtXeyKemudFHcnWJItcCC9SrrzsQi/hnYO4PA+psBahFC/O/6EQVWO6rDLPLOmyqvWLgSwlKCro0iK1GOpzSBLMwk6naA/CrDCIZsFzt91newn/lldE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055348; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=yBoybGBcc78BXT1jv7MjxVZXXQcfqmhfBr2N9SAmleU=; b=FGCi4ERQxyJ52rjCPRco6dQG2XSbxKtu3KerWw6UyOuUg7etUUAFScrbsmTGQDfS7SCAkx6KLCa0UXA1TpkTD0o+DV95EmOq9IxirpcR9mbzLD9mFXYc4C3fbIoP6i/t0sL3IiOCKhkpwHImCPWMHyA/wZI+4GAV+kAeGqoE9OI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055348436752.4958674649318; Fri, 29 May 2026 04:49:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgf-0001WK-DW; Fri, 29 May 2026 07:47:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgc-0001T6-IX for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:34 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvga-0008Bd-Vq for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:34 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-45ef1198766so372583f8f.0 for ; Fri, 29 May 2026 04:47:32 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055251; x=1780660051; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=yBoybGBcc78BXT1jv7MjxVZXXQcfqmhfBr2N9SAmleU=; b=dpaiH6xv289iCAXqye7jsWhbs2rKZmlAwdMnvislG0QMz9eD8FohDQ7zxA0FPIFGCg q2d82QAmGLSOCd+c7ouOE0rXIvN4GTzFcziux5Q5v+WdhZpYUBf0nR9WrsSIgdoJdn63 zcH8APZHZSKHZ3XDNUtROwyLEBtbmLQBAAGZsZmobwPZ7S4BnEWZS3xzjgdiYJ7c9OFu UjTa1a4yerC8mBlHvrprCMjvdZw3VKXaqzsmEFHK/U4F0da/fFIfhGO7Ht2hlWEiMNUp Ezc/oANqvZZkdtuiOV2Ekm+Eyo1/f9h9PP2mNCqs4UBCC7WOBjqP5vDUYwmFExTkq05o 340g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055251; x=1780660051; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yBoybGBcc78BXT1jv7MjxVZXXQcfqmhfBr2N9SAmleU=; b=Radv0S8oo3v3t8mOJW5L+XGoupjCYirOFZfgsNWX0yZq2JBGIVZPQT+N0LvFXDiAfe 98e/TY8uDYwpew/EvV00sZ7BbpTyeN6YWAVCEuYwNiFFI65+29eGlP3Kj/QRPqp7w7km 8kwGUc4fXRHEWTOiAL1mPsHOr6gwEbhP52lAz8l1oRl68E+L2Ui1n8pjCTOg4F+8W3je aDKptXT9qwbztDc2vDPyM3/J+4a/02gIWYOOMnt1UByIE4pu2KJDwoEnryhHUuC2slU/ kPyfyYXjHfMVV+UU3W0yO1Qj+FSsHi5a1szY4bE+mbpMqHzjqkBu1rmylJc+WsaXifeV pzTg== X-Gm-Message-State: AOJu0Yy1BTTqUl2TWiX0A279puVcdyQSMpiZ0YZgcpOgBcfpNyecUSFl hmLZJpUFBYJoGIWJYJVgWk32aYMUPoAT6gW9qfVdktGi6gYeSLHpDVTbbcx/koOWmyBaraFfHEn HJ6hF X-Gm-Gg: Acq92OFr8aGJO5bbiKPkuj2MNTG6lKl2PMqWhTAsLP6KSYRCHVbzUwjKT5rsVawNlYO aU/9QKRH3/nPxWr7aoNOnhV23MJ7sDgyNgIGhX3A6djM0lHmavFSQfEhjhNvEhGVKuOI1kjNmPa ppMlpcEmLOZiWGcxK1xuJtMtrqBhlv4KcGzO1byJ1TDAPYk32fssXWd/PeANctR2L35ZxOQ3IRG 40O36EJM6BRRw0kQAbz4FtlRtBAbWoLGui0lcfFKL9/sKo/vnOHdPhpwX+bKZ9tjG6XkNsX8Scx 0dJeU7AGhoVy+dk2tS8edszpSyJ5q0VF+HBIs8wfpnd1wyo4ulBUCjfgyeqACH4sBGAA7InO8Lv VcjDx97V/iKFyfT9hNOlV/x50nlRYXBCGMvx3XI8v33+u1UDfUABgrbeXIr4DxnB9p5ztrOxLlQ 5psl0WRQJYdaZr16kLdWpub+3tmSFRd6im5NpoGvFyTa4Pauylqi7mrZl3yW/id7+tf7zKD2jJk ckxNVDH+yKNQ5yHBAjaqRwnc7YXunnv6rxfoL0ZHg== X-Received: by 2002:a05:6000:4b1a:b0:455:564e:3a28 with SMTP id ffacd0b85a97d-45ef137a0bamr3820249f8f.17.1780055251304; Fri, 29 May 2026 04:47:31 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 06/21] hw/dma/zynq-devcfg: Indicate power-up status of PL Date: Fri, 29 May 2026 12:47:07 +0100 Message-ID: <20260529114723.42040-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42c.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055349226158500 Content-Type: text/plain; charset="utf-8" From: YannickV It is assumed, that the programmable logic (PL) is always powered during emulation. Therefor the PCFG_POR_B bit in the MCTRL register is set. Signed-off-by: YannickV Reviewed-by: Edgar E. Iglesias Message-id: 20260518073401.11279-6-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/dma/xlnx-zynq-devcfg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c index 6b1d96ff80..5608460dc7 100644 --- a/hw/dma/xlnx-zynq-devcfg.c +++ b/hw/dma/xlnx-zynq-devcfg.c @@ -333,7 +333,8 @@ static const RegisterAccessInfo xlnx_zynq_devcfg_regs_i= nfo[] =3D { /* Silicon 3.0 for version field, the mysterious reserved bit 23 * and QEMU platform identifier. */ - .reset =3D 0x2 << R_MCTRL_PS_VERSION_SHIFT | 1 << 23 | R_MCTRL_QEMU= _MASK, + .reset =3D 0x2 << R_MCTRL_PS_VERSION_SHIFT | 1 << 23 | + R_MCTRL_PCFG_POR_B_MASK | R_MCTRL_QEMU_MASK, .ro =3D ~R_MCTRL_INT_PCAP_LPBK_MASK, .rsvd =3D 0x00f00303, }, --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055303; cv=none; d=zohomail.com; s=zohoarc; b=FyyWPxQysQQVv8wzyd0911zZTeBcKkGAr775bmSwOh9Jhl7GN159EkIrttXyKIj9nfn6M5dLwJaGP4zpC9WXDKgZwyvkHa2E1P/jqzacQdHpbGVuJWKwb2tIPGJ9+dQF4NiyuqTT9tDyaQPb4WRB24HACCoWpdcCGyskkFJ1VAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055303; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=6W2j4/yjfJzl+sfl9v5psaxDQ0vWuAMJCXesJ9DL5Hk=; b=Zjzyy2cdNe0R/aesupz0JRNg9oaSvPRZemmm4S5khPDK83XYLOycHyWTtH5IMKSrLoD7BQ8fDSKgQ4b01BBh+xEOk0pZl7yY3q3UlrVPfN8nQZPkQnRDN4ShdAHoi0rOEFAood7KqgdHaUZX10u7BSyDbDMXL1fl/ULnWskmVSw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055303539834.9358949606584; Fri, 29 May 2026 04:48:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgh-0001Yz-6T; Fri, 29 May 2026 07:47:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgf-0001XF-Vd for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:38 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgc-0008Bw-FM for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:37 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-45ee6d32402so953959f8f.1 for ; Fri, 29 May 2026 04:47:34 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055253; x=1780660053; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=6W2j4/yjfJzl+sfl9v5psaxDQ0vWuAMJCXesJ9DL5Hk=; b=nN/leYCheK+SapL2CK6WuXTaAuNqzFj2LFN7ferymbAAkQOdNUXpKNBrnK/aEOzeYE QE79TwFrxDSWG8nfICj5fgwcblCt+UPCuG8R/9MRzTBxYmn9H3FCfGYu5uirNKZNfzOG 6ZRhhd1aN2RnZLBWlcdMhaNS6PPDuNxDmYXbgdSGj6pY6/8UVyYV3ssMkyDlkTtbPC1x LoSdigKS8QKFpwsrcd+b/Jlt5x4enCpUB4PY5PTCtDHN2s9CMEgtCbleV1b++N+5U5+h /Nu+WjU2GoyDKCNb00demauJTMEIu7ZZbapZMadqDzWwIu10ztsT63NbTj6vgSIicdOr abCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055253; x=1780660053; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=6W2j4/yjfJzl+sfl9v5psaxDQ0vWuAMJCXesJ9DL5Hk=; b=P6VQa73ftMjCDa41eJgQp7wt+94W2/9cFnDtXnghfN7qy77oZp6SbZNXu9BFPcp8d2 2sTWLP07j/HD8LwYqOeALD9cS2FogqqgLCbv+h5qn83DXttaAngyXJIW5WnYdudg/BlV vARrmQUhpegapHKBS0T/RsY87EyYRQ/Hiv4pskL64IIKVZwv6qKIx4lDTzSXVwpdWeUw uL9PQAcV4XRQNZVWVCwuQOhIAmhyGknAlWpIDuuPUKoiripb7tAHv/+X1k/wAGsbtVob S6IYaaN0wLFG5lUH37+X+y8Na08+k0V4V5TYmS5ut2He402Pw19/Dw/Qzv9Idf1zanR0 tC6g== X-Gm-Message-State: AOJu0YyL5U555cam+rrxY1uJYv2Qkrdd2cStOkyBjIPcbLCdlWF88az2 +OK0jZNH0Q0UzXH29zasyOllQXRU9Dbio9ann7wTuwnkVyNeRRZ+cadQ10J2JNtDCfnNGkviFNL pPPwj X-Gm-Gg: Acq92OF7AVvfMtgg1sjAANIdo6zPTNNHmYFIb9kGy92dvBTkZP+jCQozNIwnMmEIJd+ S8x7EyPvtF+CXdMFemIy2xXSFm3l9OakrxY88zzec6wdlzIL9NtJXMTsAfMyN1E31Cu/y7E2hiM o2hbqiGT9s1pzUUeKhOR3WddxDODBAMx566dL6PozbEbEfwPDx9W6OqDScAp24PflwUh7awZgyR l32X18v3O3hbZx/eDeuFxkwvzbzYkkfX3GaJnTMpQIxDnUVVJVyqXw+2jM9QYvbxh8fdrn4P1Ao w9f0wChSkhu4zmCreRCP/tHK3KpH9I4M8I2MtT2e0J/tlvDJbAhBgb8JTDI3+ynpJBHsfX051i5 bLbFJ1CKkK5wmW4FrU2iBvwKGgY1DA70XkgOwCt3FkeW4MswqsDJ0l4UrP/wwFWGN79FHJblJ5v s1viGE5tRsgYTJJ+Tm58lAIOkk215Hw0uYPlbRkNpv89QKT0YbEFXXlpDLkUXPebLvLDRemo4Tf nbD00XKPr7fwSGdKZAk77Dgqw9N80giAhlSZcIQSQ== X-Received: by 2002:a05:6000:c4b:b0:45e:de42:6e90 with SMTP id ffacd0b85a97d-45ef1467989mr3246741f8f.37.1780055252398; Fri, 29 May 2026 04:47:32 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 07/21] hw/misc: Add dummy ZYNQ DDR controller Date: Fri, 29 May 2026 12:47:08 +0100 Message-ID: <20260529114723.42040-8-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42e.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055305177158500 Content-Type: text/plain; charset="utf-8" From: YannickV A dummy DDR controller for ZYNQ has been added. While all registers are pre= sent, not all are functional. Read and write access is validated, and the user mo= de can be set. This provides a basic DDR controller initialization, preventing system hangs due to endless polling or similar issues. Signed-off-by: YannickV Message-id: 20260518073401.11279-7-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- MAINTAINERS | 2 + hw/arm/Kconfig | 1 + hw/arm/xilinx_zynq.c | 16 +- hw/misc/Kconfig | 3 + hw/misc/meson.build | 1 + hw/misc/xlnx-zynq-ddrc.c | 421 +++++++++++++++++++++++++++++++ include/hw/misc/xlnx-zynq-ddrc.h | 147 +++++++++++ 7 files changed, 588 insertions(+), 3 deletions(-) create mode 100644 hw/misc/xlnx-zynq-ddrc.c create mode 100644 include/hw/misc/xlnx-zynq-ddrc.h diff --git a/MAINTAINERS b/MAINTAINERS index 7eb5823da6..580a8ff12b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1144,8 +1144,10 @@ L: qemu-arm@nongnu.org S: Maintained F: hw/*/xilinx_* F: hw/*/cadence_* +F: hw/misc/xlnx-zynq-ddrc.c F: hw/misc/zynq_slcr.c F: hw/adc/zynq-xadc.c +F: include/hw/misc/xlnx-zynq-ddrc.h F: include/hw/misc/zynq_slcr.h F: include/hw/adc/zynq-xadc.h X: hw/ssi/xilinx_* diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 5b198402d5..fb798ccbee 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -289,6 +289,7 @@ config ZYNQ select XILINX_AXI select XILINX_SPI select XILINX_SPIPS + select XLNX_ZYNQ_DDRC select ZYNQ_DEVCFG =20 config ARM_V7M diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 9dcded9219..66a4480cc8 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -201,6 +201,17 @@ static void zynq_set_boot_mode(Object *obj, const char= *str, m->boot_mode =3D mode; } =20 +static void ddr_ctrl_init(uint32_t base) +{ + DeviceState *dev; + SysBusDevice *busdev; + + dev =3D qdev_new("zynq.ddr-ctlr"); + busdev =3D SYS_BUS_DEVICE(dev); + sysbus_realize_and_unref(busdev, &error_fatal); + sysbus_mmio_map(busdev, 0, base); +} + static void zynq_init(MachineState *machine) { ZynqMachineState *zynq_machine =3D ZYNQ_MACHINE(machine); @@ -312,6 +323,8 @@ static void zynq_init(MachineState *machine) sysbus_create_varargs("cadence_ttc", 0xF8002000, pic[69-GIC_INTERNAL], pic[70-GIC_INTERNAL], pic[71-GIC_INTERNA= L], NULL); =20 + ddr_ctrl_init(0xF8006000); + gem_init(0xE000B000, pic[54 - GIC_INTERNAL]); gem_init(0xE000C000, pic[77 - GIC_INTERNAL]); =20 @@ -393,9 +406,6 @@ static void zynq_init(MachineState *machine) /* System Watchdog Timer Registers */ create_unimplemented_device("zynq.swdt", 0xF8005000, 4 * KiB); =20 - /* DDR memory controller */ - create_unimplemented_device("zynq.ddrc", 0xF8006000, 4 * KiB); - /* AXI_HP Interface (AFI) */ create_unimplemented_device("zynq.axi_hp0", 0xF8008000, 0x28); create_unimplemented_device("zynq.axi_hp1", 0xF8009000, 0x28); diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index 99bdf09219..1543ee6653 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -254,4 +254,7 @@ config IOSB config XLNX_VERSAL_TRNG bool =20 +config XLNX_ZYNQ_DDRC + bool + source macio/Kconfig diff --git a/hw/misc/meson.build b/hw/misc/meson.build index fa6a961ac9..23265f6035 100644 --- a/hw/misc/meson.build +++ b/hw/misc/meson.build @@ -97,6 +97,7 @@ system_ss.add(when: 'CONFIG_RASPI', if_true: files( )) system_ss.add(when: 'CONFIG_SLAVIO', if_true: files('slavio_misc.c')) system_ss.add(when: 'CONFIG_ZYNQ', if_true: files('zynq_slcr.c')) +system_ss.add(when: 'CONFIG_XLNX_ZYNQ_DDRC', if_true: files('xlnx-zynq-ddr= c.c')) system_ss.add(when: 'CONFIG_XLNX_ZYNQMP_ARM', if_true: files('xlnx-zynqmp-= crf.c')) system_ss.add(when: 'CONFIG_XLNX_ZYNQMP_ARM', if_true: files('xlnx-zynqmp-= apu-ctrl.c')) system_ss.add(when: 'CONFIG_XLNX_VERSAL', if_true: files( diff --git a/hw/misc/xlnx-zynq-ddrc.c b/hw/misc/xlnx-zynq-ddrc.c new file mode 100644 index 0000000000..9e4f2f37a8 --- /dev/null +++ b/hw/misc/xlnx-zynq-ddrc.c @@ -0,0 +1,421 @@ +/* + * QEMU model of the Xilinx Zynq Double Data Rate Controller + * + * Copyright (c) Beckhoff Automation GmbH. & Co. KG + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/core/sysbus.h" +#include "hw/core/register.h" +#include "qemu/bitops.h" +#include "qemu/log.h" +#include "qapi/error.h" +#include "hw/core/registerfields.h" +#include "system/block-backend.h" +#include "system/address-spaces.h" +#include "system/memory.h" +#include "system/dma.h" +#include "hw/misc/xlnx-zynq-ddrc.h" +#include "migration/vmstate.h" + +#ifndef DDRCTRL_ERR_DEBUG +#define DDRCTRL_ERR_DEBUG 0 +#endif + +static void zynq_ddrctrl_post_write(RegisterInfo *reg, uint64_t val) +{ + DDRCTRLState *s =3D DDRCTRL(reg->opaque); + if (reg->access->addr =3D=3D A_DDRC_CTRL) { + if (val & 0x1) { + s->reg[R_MODE_STS_REG] |=3D + (R_MODE_STS_REG_DDR_REG_OPERATING_MODE_MASK & 0x1); + } else { + s->reg[R_MODE_STS_REG] &=3D + ~R_MODE_STS_REG_DDR_REG_OPERATING_MODE_MASK; + } + } +} + +static const RegisterAccessInfo xlnx_zynq_ddrc_regs_info[] =3D { + /* 0x00 - 0x3C: Basic DDRC control and config */ + { .name =3D "DDRC_CTRL", + .addr =3D A_DDRC_CTRL, + .reset =3D 0x00000200, + .post_write =3D zynq_ddrctrl_post_write }, + { .name =3D "TWO_RANK_CFG", + .addr =3D A_TWO_RANK_CFG, + .reset =3D 0x000C1076 }, + { .name =3D "HPR_REG", + .addr =3D A_HPR_REG, + .reset =3D 0x03C0780F }, + { .name =3D "LPR_REG", + .addr =3D A_LPR_REG, + .reset =3D 0x03C0780F }, + { .name =3D "WR_REG", + .addr =3D A_WR_REG, + .reset =3D 0x0007F80F }, + { .name =3D "DRAM_PARAM_REG0", + .addr =3D A_DRAM_PARAM_REG0, + .reset =3D 0x00041016 }, + { .name =3D "DRAM_PARAM_REG1", + .addr =3D A_DRAM_PARAM_REG1, + .reset =3D 0x351B48D9 }, + { .name =3D "DRAM_PARAM_REG2", + .addr =3D A_DRAM_PARAM_REG2, + .reset =3D 0x83015904 }, + { .name =3D "DRAM_PARAM_REG3", + .addr =3D A_DRAM_PARAM_REG3, + .reset =3D 0x250882D0 }, + { .name =3D "DRAM_PARAM_REG4", + .addr =3D A_DRAM_PARAM_REG4, + .reset =3D 0x0000003C }, + { .name =3D "DRAM_INIT_PARAM", + .addr =3D A_DRAM_INIT_PARAM, + .reset =3D 0x00002007 }, + { .name =3D "DRAM_EMR_REG", + .addr =3D A_DRAM_EMR_REG, + .reset =3D 0x00000008 }, + { .name =3D "DRAM_EMR_MR_REG", + .addr =3D A_DRAM_EMR_MR_REG, + .reset =3D 0x00000940 }, + { .name =3D "DRAM_BURST8_RDWR", + .addr =3D A_DRAM_BURST8_RDWR, + .reset =3D 0x00020034 }, + { .name =3D "DRAM_DISABLE_DQ", + .addr =3D A_DRAM_DISABLE_DQ }, + { .name =3D "DRAM_ADDR_MAP_BANK", + .addr =3D A_DRAM_ADDR_MAP_BANK, + .reset =3D 0x00000F77 }, + { .name =3D "DRAM_ADDR_MAP_COL", + .addr =3D A_DRAM_ADDR_MAP_COL, + .reset =3D 0xFFF00000 }, + { .name =3D "DRAM_ADDR_MAP_ROW", + .addr =3D A_DRAM_ADDR_MAP_ROW, + .reset =3D 0x0FF55555 }, + { .name =3D "DRAM_ODT_REG", + .addr =3D A_DRAM_ODT_REG, + .reset =3D 0x00000249 }, + + /* 0x4C - 0x5C: PHY and DLL */ + { .name =3D "PHY_DBG_REG", + .addr =3D A_PHY_DBG_REG }, + { .name =3D "PHY_CMD_TIMEOUT_RDDATA_CPT", + .addr =3D A_PHY_CMD_TIMEOUT_RDDATA_CPT, + .reset =3D 0x00010200 }, + { .name =3D "MODE_STS_REG", + .addr =3D A_MODE_STS_REG }, + { .name =3D "DLL_CALIB", + .addr =3D A_DLL_CALIB, + .reset =3D 0x00000101 }, + { .name =3D "ODT_DELAY_HOLD", + .addr =3D A_ODT_DELAY_HOLD, + .reset =3D 0x00000023 }, + + /* 0x60 - 0x7C: Control registers */ + { .name =3D "CTRL_REG1", + .addr =3D A_CTRL_REG1, + .reset =3D 0x0000003E }, + { .name =3D "CTRL_REG2", + .addr =3D A_CTRL_REG2, + .reset =3D 0x00020000 }, + { .name =3D "CTRL_REG3", + .addr =3D A_CTRL_REG3, + .reset =3D 0x00284027 }, + { .name =3D "CTRL_REG4", + .addr =3D A_CTRL_REG4, + .reset =3D 0x00001610 }, + { .name =3D "CTRL_REG5", + .addr =3D A_CTRL_REG5, + .reset =3D 0x00455111 }, + { .name =3D "CTRL_REG6", + .addr =3D A_CTRL_REG6, + .reset =3D 0x00032222 }, + + /* 0xA0 - 0xB4: Refresh, ZQ, powerdown, misc */ + { .name =3D "CHE_REFRESH_TIMER0", + .addr =3D A_CHE_REFRESH_TIMER0, + .reset =3D 0x00008000 }, + { .name =3D "CHE_T_ZQ", + .addr =3D A_CHE_T_ZQ, + .reset =3D 0x10300802 }, + { .name =3D "CHE_T_ZQ_SHORT_INTERVAL_REG", + .addr =3D A_CHE_T_ZQ_SHORT_INTERVAL_REG, + .reset =3D 0x0020003A }, + { .name =3D "DEEP_PWRDWN_REG", + .addr =3D A_DEEP_PWRDWN_REG }, + { .name =3D "REG_2C", + .addr =3D A_REG_2C }, + { .name =3D "REG_2D", + .addr =3D A_REG_2D, + .reset =3D 0x00000200 }, + + /* 0xB8 - 0xF8: ECC, DFI, etc. */ + { .name =3D "DFI_TIMING", + .addr =3D A_DFI_TIMING, + .reset =3D 0x00200067 }, + { .name =3D "CHE_ECC_CONTROL_REG_OFFSET", + .addr =3D A_CHE_ECC_CONTROL_REG_OFFSET }, + { .name =3D "CHE_CORR_ECC_LOG_REG_OFFSET", + .addr =3D A_CHE_CORR_ECC_LOG_REG_OFFSET }, + { .name =3D "CHE_CORR_ECC_ADDR_REG_OFFSET", + .addr =3D A_CHE_CORR_ECC_ADDR_REG_OFFSET }, + { .name =3D "CHE_CORR_ECC_DATA_31_0_REG_OFFSET", + .addr =3D A_CHE_CORR_ECC_DATA_31_0_REG_OFFSET }, + { .name =3D "CHE_CORR_ECC_DATA_63_32_REG_OFFSET", + .addr =3D A_CHE_CORR_ECC_DATA_63_32_REG_OFFSET }, + { .name =3D "CHE_CORR_ECC_DATA_71_64_REG_OFFSET", + .addr =3D A_CHE_CORR_ECC_DATA_71_64_REG_OFFSET }, + { .name =3D "CHE_UNCORR_ECC_LOG_REG_OFFSET", + .addr =3D A_CHE_UNCORR_ECC_LOG_REG_OFFSET }, + { .name =3D "CHE_UNCORR_ECC_ADDR_REG_OFFSET", + .addr =3D A_CHE_UNCORR_ECC_ADDR_REG_OFFSET }, + { .name =3D "CHE_UNCORR_ECC_DATA_31_0_REG_OFFSET", + .addr =3D A_CHE_UNCORR_ECC_DATA_31_0_REG_OFFSET }, + { .name =3D "CHE_UNCORR_ECC_DATA_63_32_REG_OFFSET", + .addr =3D A_CHE_UNCORR_ECC_DATA_63_32_REG_OFFSET }, + { .name =3D "CHE_UNCORR_ECC_DATA_71_64_REG_OFFSET", + .addr =3D A_CHE_UNCORR_ECC_DATA_71_64_REG_OFFSET }, + { .name =3D "CHE_ECC_STATS_REG_OFFSET", + .addr =3D A_CHE_ECC_STATS_REG_OFFSET }, + { .name =3D "ECC_SCRUB", + .addr =3D A_ECC_SCRUB, + .reset =3D 0x00000008 }, + { .name =3D "CHE_ECC_CORR_BIT_MASK_31_0_REG_OFFSET", + .addr =3D A_CHE_ECC_CORR_BIT_MASK_31_0_REG_OFFSET }, + { .name =3D "CHE_ECC_CORR_BIT_MASK_63_32_REG_OFFSET", + .addr =3D A_CHE_ECC_CORR_BIT_MASK_63_32_REG_OFFSET }, + + /* 0x114 - 0x174: PHY config, ratios, DQS, WE */ + { .name =3D "PHY_RCVER_ENABLE", + .addr =3D A_PHY_RCVER_ENABLE }, + { .name =3D "PHY_CONFIG0", + .addr =3D A_PHY_CONFIG0, + .reset =3D 0x40000001 }, + { .name =3D "PHY_CONFIG1", + .addr =3D A_PHY_CONFIG1, + .reset =3D 0x40000001 }, + { .name =3D "PHY_CONFIG2", + .addr =3D A_PHY_CONFIG2, + .reset =3D 0x40000001 }, + { .name =3D "PHY_CONFIG3", + .addr =3D A_PHY_CONFIG3, + .reset =3D 0x40000001 }, + { .name =3D "PHY_INIT_RATIO0", + .addr =3D A_PHY_INIT_RATIO0 }, + { .name =3D "PHY_INIT_RATIO1", + .addr =3D A_PHY_INIT_RATIO1 }, + { .name =3D "PHY_INIT_RATIO2", + .addr =3D A_PHY_INIT_RATIO2 }, + { .name =3D "PHY_INIT_RATIO3", + .addr =3D A_PHY_INIT_RATIO3 }, + { .name =3D "PHY_RD_DQS_CFG0", + .addr =3D A_PHY_RD_DQS_CFG0, + .reset =3D 0x00000040 }, + { .name =3D "PHY_RD_DQS_CFG1", + .addr =3D A_PHY_RD_DQS_CFG1, + .reset =3D 0x00000040 }, + { .name =3D "PHY_RD_DQS_CFG2", + .addr =3D A_PHY_RD_DQS_CFG2, + .reset =3D 0x00000040 }, + { .name =3D "PHY_RD_DQS_CFG3", + .addr =3D A_PHY_RD_DQS_CFG3, + .reset =3D 0x00000040 }, + { .name =3D "PHY_WR_DQS_CFG0", + .addr =3D A_PHY_WR_DQS_CFG0 }, + { .name =3D "PHY_WR_DQS_CFG1", + .addr =3D A_PHY_WR_DQS_CFG1 }, + { .name =3D "PHY_WR_DQS_CFG2", + .addr =3D A_PHY_WR_DQS_CFG2 }, + { .name =3D "PHY_WR_DQS_CFG3", + .addr =3D A_PHY_WR_DQS_CFG3 }, + { .name =3D "PHY_WE_CFG0", + .addr =3D A_PHY_WE_CFG0, + .reset =3D 0x00000040 }, + { .name =3D "PHY_WE_CFG1", + .addr =3D A_PHY_WE_CFG1, + .reset =3D 0x00000040 }, + { .name =3D "PHY_WE_CFG2", + .addr =3D A_PHY_WE_CFG2, + .reset =3D 0x00000040 }, + { .name =3D "PHY_WE_CFG3", + .addr =3D A_PHY_WE_CFG3, + .reset =3D 0x00000040 }, + + /* 0x17C - 0x194: Write data slaves, misc */ + { .name =3D "WR_DATA_SLV0", + .addr =3D A_WR_DATA_SLV0, + .reset =3D 0x00000080 }, + { .name =3D "WR_DATA_SLV1", + .addr =3D A_WR_DATA_SLV1, + .reset =3D 0x00000080 }, + { .name =3D "WR_DATA_SLV2", + .addr =3D A_WR_DATA_SLV2, + .reset =3D 0x00000080 }, + { .name =3D "WR_DATA_SLV3", + .addr =3D A_WR_DATA_SLV3, + .reset =3D 0x00000080 }, + { .name =3D "REG_64", + .addr =3D A_REG_64, + .reset =3D 0x10020000 }, + { .name =3D "REG_65", + .addr =3D A_REG_65 }, + + /* 0x1A4 - 0x1C4: Misc registers */ + { .name =3D "REG69_6A0", + .addr =3D A_REG69_6A0 }, + { .name =3D "REG69_6A1", + .addr =3D A_REG69_6A1 }, + { .name =3D "REG6C_6D2", + .addr =3D A_REG6C_6D2 }, + { .name =3D "REG6C_6D3", + .addr =3D A_REG6C_6D3 }, + { .name =3D "REG6E_710", + .addr =3D A_REG6E_710 }, + { .name =3D "REG6E_711", + .addr =3D A_REG6E_711 }, + { .name =3D "REG6E_712", + .addr =3D A_REG6E_712 }, + { .name =3D "REG6E_713", + .addr =3D A_REG6E_713 }, + + /* 0x1CC - 0x1E8: DLL, PHY status */ + { .name =3D "PHY_DLL_STS0", + .addr =3D A_PHY_DLL_STS0 }, + { .name =3D "PHY_DLL_STS1", + .addr =3D A_PHY_DLL_STS1 }, + { .name =3D "PHY_DLL_STS2", + .addr =3D A_PHY_DLL_STS2 }, + { .name =3D "PHY_DLL_STS3", + .addr =3D A_PHY_DLL_STS3 }, + { .name =3D "DLL_LOCK_STS", + .addr =3D A_DLL_LOCK_STS }, + { .name =3D "PHY_CTRL_STS", + .addr =3D A_PHY_CTRL_STS }, + { .name =3D "PHY_CTRL_STS_REG2", + .addr =3D A_PHY_CTRL_STS_REG2 }, + + /* 0x200 - 0x2B4: AXI, LPDDR, misc */ + { .name =3D "AXI_ID", + .addr =3D A_AXI_ID }, + { .name =3D "PAGE_MASK", + .addr =3D A_PAGE_MASK }, + { .name =3D "AXI_PRIORITY_WR_PORT0", + .addr =3D A_AXI_PRIORITY_WR_PORT0, + .reset =3D 0x000803FF }, + { .name =3D "AXI_PRIORITY_WR_PORT1", + .addr =3D A_AXI_PRIORITY_WR_PORT1, + .reset =3D 0x000803FF }, + { .name =3D "AXI_PRIORITY_WR_PORT2", + .addr =3D A_AXI_PRIORITY_WR_PORT2, + .reset =3D 0x000803FF }, + { .name =3D "AXI_PRIORITY_WR_PORT3", + .addr =3D A_AXI_PRIORITY_WR_PORT3, + .reset =3D 0x000803FF }, + { .name =3D "AXI_PRIORITY_RD_PORT0", + .addr =3D A_AXI_PRIORITY_RD_PORT0, + .reset =3D 0x000003FF }, + { .name =3D "AXI_PRIORITY_RD_PORT1", + .addr =3D A_AXI_PRIORITY_RD_PORT1, + .reset =3D 0x000003FF }, + { .name =3D "AXI_PRIORITY_RD_PORT2", + .addr =3D A_AXI_PRIORITY_RD_PORT2, + .reset =3D 0x000003FF }, + { .name =3D "AXI_PRIORITY_RD_PORT3", + .addr =3D A_AXI_PRIORITY_RD_PORT3, + .reset =3D 0x000003FF }, + { .name =3D "EXCL_ACCESS_CFG0", + .addr =3D A_EXCL_ACCESS_CFG0 }, + { .name =3D "EXCL_ACCESS_CFG1", + .addr =3D A_EXCL_ACCESS_CFG1 }, + { .name =3D "EXCL_ACCESS_CFG2", + .addr =3D A_EXCL_ACCESS_CFG2 }, + { .name =3D "EXCL_ACCESS_CFG3", + .addr =3D A_EXCL_ACCESS_CFG3 }, + { .name =3D "MODE_REG_READ", + .addr =3D A_MODE_REG_READ }, + { .name =3D "LPDDR_CTRL0", + .addr =3D A_LPDDR_CTRL0 }, + { .name =3D "LPDDR_CTRL1", + .addr =3D A_LPDDR_CTRL1 }, + { .name =3D "LPDDR_CTRL2", + .addr =3D A_LPDDR_CTRL2, + .reset =3D 0x003C0015 }, + { .name =3D "LPDDR_CTRL3", + .addr =3D A_LPDDR_CTRL3, + .reset =3D 0x00000601 }, +}; + +static void zynq_ddrctrl_reset(DeviceState *dev) +{ + DDRCTRLState *s =3D DDRCTRL(dev); + int i; + + for (i =3D 0; i < ZYNQ_DDRCTRL_NUM_REG; ++i) { + register_reset(&s->regs_info[i]); + } +} + +static const MemoryRegionOps ddrctrl_ops =3D { + .read =3D register_read_memory, + .write =3D register_write_memory, + .endianness =3D DEVICE_LITTLE_ENDIAN, + .valid =3D { + .min_access_size =3D 4, + .max_access_size =3D 4, + }, + .impl =3D { + .min_access_size =3D 4, + .max_access_size =3D 4, + }, +}; + +static const VMStateDescription vmstate_zynq_ddrctrl =3D { + .name =3D "zynq_ddrc", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32_ARRAY(reg, DDRCTRLState, ZYNQ_DDRCTRL_NUM_REG), + VMSTATE_END_OF_LIST() + } +}; + +static void zynq_ddrctrl_init(Object *obj) +{ + SysBusDevice *sbd =3D SYS_BUS_DEVICE(obj); + DDRCTRLState *s =3D DDRCTRL(obj); + + s->reg_array =3D + register_init_block32(DEVICE(obj), xlnx_zynq_ddrc_regs_info, + ARRAY_SIZE(xlnx_zynq_ddrc_regs_info), + s->regs_info, s->reg, + &ddrctrl_ops, + DDRCTRL_ERR_DEBUG, + ZYNQ_DDRCTRL_MMIO_SIZE); + + sysbus_init_mmio(sbd, &s->reg_array->mem); +} + +static void zynq_ddrctrl_class_init(ObjectClass *klass, const void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + + device_class_set_legacy_reset(dc, zynq_ddrctrl_reset); + dc->vmsd =3D &vmstate_zynq_ddrctrl; +} + +static const TypeInfo ddrctrl_info =3D { + .name =3D TYPE_DDRCTRL, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(DDRCTRLState), + .instance_init =3D zynq_ddrctrl_init, + .class_init =3D zynq_ddrctrl_class_init, +}; + +static void ddrctrl_register_types(void) +{ + type_register_static(&ddrctrl_info); +} + +type_init(ddrctrl_register_types) diff --git a/include/hw/misc/xlnx-zynq-ddrc.h b/include/hw/misc/xlnx-zynq-d= drc.h new file mode 100644 index 0000000000..124bff27ac --- /dev/null +++ b/include/hw/misc/xlnx-zynq-ddrc.h @@ -0,0 +1,147 @@ +/* + * QEMU model of the Xilinx Zynq Double Data Rate Controller + * + * Copyright (c) Beckhoff Automation GmbH. & Co. KG + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef XLNX_ZYNQ_DDRC_H +#define XLNX_ZYNQ_DDRC_H + +#include "hw/core/sysbus.h" +#include "hw/core/register.h" + +#define TYPE_DDRCTRL "zynq.ddr-ctlr" +OBJECT_DECLARE_SIMPLE_TYPE(DDRCTRLState, DDRCTRL) + +REG32(DDRC_CTRL, 0x00) +REG32(TWO_RANK_CFG, 0x04) +REG32(HPR_REG, 0x08) +REG32(LPR_REG, 0x0C) +REG32(WR_REG, 0x10) +REG32(DRAM_PARAM_REG0, 0x14) +REG32(DRAM_PARAM_REG1, 0x18) +REG32(DRAM_PARAM_REG2, 0x1C) +REG32(DRAM_PARAM_REG3, 0x20) +REG32(DRAM_PARAM_REG4, 0x24) +REG32(DRAM_INIT_PARAM, 0x28) +REG32(DRAM_EMR_REG, 0x2C) +REG32(DRAM_EMR_MR_REG, 0x30) +REG32(DRAM_BURST8_RDWR, 0x34) +REG32(DRAM_DISABLE_DQ, 0x38) +REG32(DRAM_ADDR_MAP_BANK, 0x3C) +REG32(DRAM_ADDR_MAP_COL, 0x40) +REG32(DRAM_ADDR_MAP_ROW, 0x44) +REG32(DRAM_ODT_REG, 0x48) +REG32(PHY_DBG_REG, 0x4C) +REG32(PHY_CMD_TIMEOUT_RDDATA_CPT, 0x50) +REG32(MODE_STS_REG, 0x54) + FIELD(MODE_STS_REG, DDR_REG_DBG_STALL, 3, 3) + FIELD(MODE_STS_REG, DDR_REG_OPERATING_MODE, 0, 2) +REG32(DLL_CALIB, 0x58) +REG32(ODT_DELAY_HOLD, 0x5C) +REG32(CTRL_REG1, 0x60) +REG32(CTRL_REG2, 0x64) +REG32(CTRL_REG3, 0x68) +REG32(CTRL_REG4, 0x6C) +REG32(CTRL_REG5, 0x78) +REG32(CTRL_REG6, 0x7C) +REG32(CHE_REFRESH_TIMER0, 0xA0) +REG32(CHE_T_ZQ, 0xA4) +REG32(CHE_T_ZQ_SHORT_INTERVAL_REG, 0xA8) +REG32(DEEP_PWRDWN_REG, 0xAC) +REG32(REG_2C, 0xB0) +REG32(REG_2D, 0xB4) +REG32(DFI_TIMING, 0xB8) +REG32(CHE_ECC_CONTROL_REG_OFFSET, 0xC4) +REG32(CHE_CORR_ECC_LOG_REG_OFFSET, 0xC8) +REG32(CHE_CORR_ECC_ADDR_REG_OFFSET, 0xCC) +REG32(CHE_CORR_ECC_DATA_31_0_REG_OFFSET, 0xD0) +REG32(CHE_CORR_ECC_DATA_63_32_REG_OFFSET, 0xD4) +REG32(CHE_CORR_ECC_DATA_71_64_REG_OFFSET, 0xD8) +REG32(CHE_UNCORR_ECC_LOG_REG_OFFSET, 0xDC) +REG32(CHE_UNCORR_ECC_ADDR_REG_OFFSET, 0xE0) +REG32(CHE_UNCORR_ECC_DATA_31_0_REG_OFFSET, 0xE4) +REG32(CHE_UNCORR_ECC_DATA_63_32_REG_OFFSET, 0xE8) +REG32(CHE_UNCORR_ECC_DATA_71_64_REG_OFFSET, 0xEC) +REG32(CHE_ECC_STATS_REG_OFFSET, 0xF0) +REG32(ECC_SCRUB, 0xF4) +REG32(CHE_ECC_CORR_BIT_MASK_31_0_REG_OFFSET, 0xF8) +REG32(CHE_ECC_CORR_BIT_MASK_63_32_REG_OFFSET, 0xFC) +REG32(PHY_RCVER_ENABLE, 0x114) +REG32(PHY_CONFIG0, 0x118) +REG32(PHY_CONFIG1, 0x11C) +REG32(PHY_CONFIG2, 0x120) +REG32(PHY_CONFIG3, 0x124) +REG32(PHY_INIT_RATIO0, 0x12C) +REG32(PHY_INIT_RATIO1, 0x130) +REG32(PHY_INIT_RATIO2, 0x134) +REG32(PHY_INIT_RATIO3, 0x138) +REG32(PHY_RD_DQS_CFG0, 0x140) +REG32(PHY_RD_DQS_CFG1, 0x144) +REG32(PHY_RD_DQS_CFG2, 0x148) +REG32(PHY_RD_DQS_CFG3, 0x14C) +REG32(PHY_WR_DQS_CFG0, 0x154) +REG32(PHY_WR_DQS_CFG1, 0x158) +REG32(PHY_WR_DQS_CFG2, 0x15C) +REG32(PHY_WR_DQS_CFG3, 0x160) +REG32(PHY_WE_CFG0, 0x168) +REG32(PHY_WE_CFG1, 0x16C) +REG32(PHY_WE_CFG2, 0x170) +REG32(PHY_WE_CFG3, 0x174) +REG32(WR_DATA_SLV0, 0x17C) +REG32(WR_DATA_SLV1, 0x180) +REG32(WR_DATA_SLV2, 0x184) +REG32(WR_DATA_SLV3, 0x188) +REG32(REG_64, 0x190) +REG32(REG_65, 0x194) +REG32(REG69_6A0, 0x1A4) +REG32(REG69_6A1, 0x1A8) +REG32(REG6C_6D2, 0x1B0) +REG32(REG6C_6D3, 0x1B4) +REG32(REG6E_710, 0x1B8) +REG32(REG6E_711, 0x1BC) +REG32(REG6E_712, 0x1C0) +REG32(REG6E_713, 0x1C4) +REG32(PHY_DLL_STS0, 0x1CC) +REG32(PHY_DLL_STS1, 0x1D0) +REG32(PHY_DLL_STS2, 0x1D4) +REG32(PHY_DLL_STS3, 0x1D8) +REG32(DLL_LOCK_STS, 0x1E0) +REG32(PHY_CTRL_STS, 0x1E4) +REG32(PHY_CTRL_STS_REG2, 0x1E8) +REG32(AXI_ID, 0x200) +REG32(PAGE_MASK, 0x204) +REG32(AXI_PRIORITY_WR_PORT0, 0x208) +REG32(AXI_PRIORITY_WR_PORT1, 0x20C) +REG32(AXI_PRIORITY_WR_PORT2, 0x210) +REG32(AXI_PRIORITY_WR_PORT3, 0x214) +REG32(AXI_PRIORITY_RD_PORT0, 0x218) +REG32(AXI_PRIORITY_RD_PORT1, 0x21C) +REG32(AXI_PRIORITY_RD_PORT2, 0x220) +REG32(AXI_PRIORITY_RD_PORT3, 0x224) +REG32(EXCL_ACCESS_CFG0, 0x294) +REG32(EXCL_ACCESS_CFG1, 0x298) +REG32(EXCL_ACCESS_CFG2, 0x29C) +REG32(EXCL_ACCESS_CFG3, 0x2A0) +REG32(MODE_REG_READ, 0x2A4) +REG32(LPDDR_CTRL0, 0x2A8) +REG32(LPDDR_CTRL1, 0x2AC) +REG32(LPDDR_CTRL2, 0x2B0) +REG32(LPDDR_CTRL3, 0x2B4) + + +#define ZYNQ_DDRCTRL_MMIO_SIZE 0x400 +#define ZYNQ_DDRCTRL_NUM_REG (ZYNQ_DDRCTRL_MMIO_SIZE / 4) + +typedef struct DDRCTRLState { + SysBusDevice parent_obj; + + MemoryRegion iomem; + + RegisterInfoArray *reg_array; + uint32_t reg[ZYNQ_DDRCTRL_NUM_REG]; + RegisterInfo regs_info[ZYNQ_DDRCTRL_NUM_REG]; +} DDRCTRLState; +#endif --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055318; cv=none; d=zohomail.com; s=zohoarc; b=eIYUTM7YqSDI7zSJ/t6N/s15DBOJeXg3tRcVeSeCzg/lNohmT/+dMD0Njy6/5d6I0MdXorkffSSshna88L7+B7n/Vc7Unq7K/Vidc0ThLswbfISLuO0uhWNf2mAfgSYybn9/Oo4WK5c+fFeZTauUR0mUtCL9VrvE5n8RVBnEuSU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055318; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=qB7fQp4x+McFQYtKQptrI3Tcb3Zfy5XaCtc15S7Ao0g=; b=CJvx4FeReOxv0+Z/D7srLSqbYDvav9miTxruMu37O9j6nZVumdKCOGjaeya1uSYrAHZhR34rAlFnXLP1ZK+A0KjBgfXG50xdXUkncmPe8VxwpH2FvX9qGCkzT42NolZ2ReTZ5EhkWBzPu81vn75Zosg3eHcixkHuMWniTP503i0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055317991959.2989464463984; Fri, 29 May 2026 04:48:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgg-0001Y7-JG; Fri, 29 May 2026 07:47:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgf-0001WG-1x for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:37 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgd-0008C8-2V for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:36 -0400 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-44a74032ff8so10351917f8f.1 for ; Fri, 29 May 2026 04:47:34 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055253; x=1780660053; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=qB7fQp4x+McFQYtKQptrI3Tcb3Zfy5XaCtc15S7Ao0g=; b=ulIICacvKhG/fcQunQ5clnK4ZuPk5e2Qs+/S8qa8L95h7LILZxg+/7BLqU/EHKh98B goejqjyyOWHsrlcZaXh8EAnlHnsju4L5Qtf+5TQ0aWM5piEsADLpJju4hPsffh8SBp9u iO8LIl/MxeNePG2L4fHF1pUKhDUHmU3K8Iquf++ecid31GmMHQ5wyxY8Kf7rBjmpSXV2 V5ktoRv18zdHYOGXGvRyszvLl/ZALFL5GJuRdTT4CmFcZEk2Sh1dAYDZvnfMBq/CRj93 hbA/2RMoGIDIN47v8DAX2dl9CCZO4i4ankGH0Y/pLFGvW0ccU3hk8L8DPYwSBINIWeve GigA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055253; x=1780660053; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qB7fQp4x+McFQYtKQptrI3Tcb3Zfy5XaCtc15S7Ao0g=; b=H6z5VCClmdimApX1joxxjzM94bVcpQ3Vq472K2XCGjQuD59TRvbLvMGQ3YhRNfVcUX AIJFnliRPu0wDmxnEWKC4yLgcSmurQYuC9UpMn8aipNkUW0S1K5UBedraeLIDTv/o0o/ fZlvmAaiujDwoJhPMNs2k6ZihG6q0YU/UGL/wC5ww0krtJNZYkVAkymU27tVu6NoGide oPtYWS4QvupiUy24Gkx7MxWu6QT2gJfe31tf/wJ1SpEV/Hl/TX172gZKuVw1d2Kwbw8M 8qr5d+yhKlCWKVSSW67ieRRDepgM236OIVR+V1egG8LKG6Jw9Qj9sAciiV2I30Jd0kLD 3tcw== X-Gm-Message-State: AOJu0Yyb5fST2s+SfkJZ4LfVEms566lv2MuD+pa+7r4M2A4s27leRIGv 1U1eojW4iX/6n1YIlVaqVZo23jEPU3Fwa/eldYTlpjNtgzBd4xSBnAv5FCB4QzomffcmKtS7yOB kJGr5 X-Gm-Gg: Acq92OH4VrxIgPFg6RHy1w0tNafJGAAmEc5aGTMpRjDWSF61N3OMXL/cU3yX3dQ2lL3 Ko8I84z0X0iItEW6zXx04Wg603JYUbD90VDxIAnrtzRv3LtBF2bWyJE0s9+ixANgalA8uFczZVp uqBcwqg7i6PpzBLiHCyU7EBB0PIlg8jIB/KzA4vN2X1b7v6YqVcTWaOKpNgrR8AEUjieOexSMr7 NvvPMCX7WI8bNrpooLZTPbmols2SVlKD3MxNXvzWC+dk6hj4QG0yF9uu0hNyYm64LbxnnGuTtoC rXAPtgUkQn1jIu01LbKEDEupYfhvApauiGXJElSvZDPuMy3Wv2tEQETv+xWsuG913FTjryBNG4C YCdBa+zPtrICISkgbGBRNqoVli2WaeVDIIL7HOGpMy+9w6xfu+6Wh613lDEM/+d1ZF61eiYpOxk OFBe4gbiht/P+nfCHSL23iyIS/aA0XBi317ly2PJdi9FLpkOXymJZ6hbc3O6O64xsiGdMkmVZ0T U2aVXPX3GickQcWsZOAA6OSgvZ+Mky6D59u44PVRw== X-Received: by 2002:a05:6000:4615:b0:455:70bc:216d with SMTP id ffacd0b85a97d-45ef13f7a47mr4846772f8f.12.1780055253406; Fri, 29 May 2026 04:47:33 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 08/21] hw/misc/zynq_slcr: Add logic for DCI configuration Date: Fri, 29 May 2026 12:47:09 +0100 Message-ID: <20260529114723.42040-9-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x433.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055319127154100 Content-Type: text/plain; charset="utf-8" From: YannickV The registers for the digitally controlled impedance (DCI) clock are part of the system level control registers (SLCR). The DONE bit in the status register indicates a successfull DCI calibration. An description of the calibration process can be found here: https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/DDR-IOB-Impedance-Cali= bration The DCI control register and status register have been added. As soon as the ENABLE and RESET bit are set, the RESET bit has also been toggled to 0 before and the UPDATE_CONTROL is not set, the DONE bit in the status register is set. If these bits change the DONE bit is reset. Note that the option bits are not taken into consideration. Signed-off-by: YannickV Reviewed-by: Edgar E. Iglesias Message-id: 20260518073401.11279-8-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/misc/zynq_slcr.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index faae98fa02..0ae5d607be 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -180,6 +180,12 @@ REG32(GPIOB_CFG_HSTL, 0xb14) REG32(GPIOB_DRVR_BIAS_CTRL, 0xb18) =20 REG32(DDRIOB, 0xb40) +REG32(DDRIOB_DCI_CTRL, 0xb70) + FIELD(DDRIOB_DCI_CTRL, RESET, 0, 1) + FIELD(DDRIOB_DCI_CTRL, ENABLE, 1, 1) + FIELD(DDRIOB_DCI_CTRL, UPDATE_CONTROL, 20, 1) +REG32(DDRIOB_DCI_STATUS, 0xb74) + FIELD(DDRIOB_DCI_STATUS, DONE, 13, 1) #define DDRIOB_LENGTH 14 =20 #define ZYNQ_SLCR_MMIO_SIZE 0x1000 @@ -193,6 +199,8 @@ struct ZynqSLCRState { =20 MemoryRegion iomem; =20 + bool ddriob_dci_ctrl_reset_toggled; + uint32_t regs[ZYNQ_SLCR_NUM_REGS]; =20 Clock *ps_clk; @@ -331,6 +339,8 @@ static void zynq_slcr_reset_init(Object *obj, ResetType= type) =20 DB_PRINT("RESET\n"); =20 + s->ddriob_dci_ctrl_reset_toggled =3D false; + s->regs[R_LOCKSTA] =3D 1; /* 0x100 - 0x11C */ s->regs[R_ARM_PLL_CTRL] =3D 0x0001A008; @@ -418,6 +428,8 @@ static void zynq_slcr_reset_init(Object *obj, ResetType= type) s->regs[R_DDRIOB + 4] =3D s->regs[R_DDRIOB + 5] =3D s->regs[R_DDRIOB += 6] =3D 0x00000e00; s->regs[R_DDRIOB + 12] =3D 0x00000021; + + s->regs[R_DDRIOB_DCI_CTRL] =3D 0x00000020; } =20 static void zynq_slcr_reset_hold(Object *obj, ResetType type) @@ -554,6 +566,25 @@ static void zynq_slcr_write(void *opaque, hwaddr offse= t, (int)offset, (unsigned)val & 0xFFFF); } return; + + case R_DDRIOB_DCI_CTRL: + if (!FIELD_EX32(val, DDRIOB_DCI_CTRL, RESET) && + FIELD_EX32(s->regs[R_DDRIOB_DCI_CTRL], DDRIOB_DCI_CTRL, RESET)= ) { + + s->ddriob_dci_ctrl_reset_toggled =3D true; + DB_PRINT("DDRIOB DCI CTRL RESET was toggled\n"); + } + + if (FIELD_EX32(val, DDRIOB_DCI_CTRL, ENABLE) && + FIELD_EX32(val, DDRIOB_DCI_CTRL, RESET) && + !FIELD_EX32(val, DDRIOB_DCI_CTRL, UPDATE_CONTROL) && + s->ddriob_dci_ctrl_reset_toggled) { + + s->regs[R_DDRIOB_DCI_STATUS] |=3D R_DDRIOB_DCI_STATUS_DONE_MAS= K; + } else { + s->regs[R_DDRIOB_DCI_STATUS] &=3D ~R_DDRIOB_DCI_STATUS_DONE_MA= SK; + } + break; } =20 if (s->regs[R_LOCKSTA]) { --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055292; cv=none; d=zohomail.com; s=zohoarc; b=Pu56ql9feAm0l73de1I6lvJOPmSsLdllDrJJL9ly6hl8wz2S7jQXIN98vkik/iwaLLQ0AX1Bo2VSQI9PpCAK//MXAHIri8irxw5IyYRM0+k1jtaTmPyw5+tygMXFvJ0ps7RRI1y38K6BJjVAy+0YSmdB86sN9qme2bKIwCfVnXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055292; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=GtiU35O6TVYYbrzgvhU5QrUMnpE7cmAahJpVL7hIFE8=; b=i9ibZ4rSpR22mj+/IZ7jdGo8IKcIBqvW4kKur/9JvO7IlBz0948ptuSFA9YxuquYaIzeBnCDuaZb88WViCCeQXsdKU55E+Oe3N9jKuTdLMatMmaS9p5xd+L4XC+LbgtLw969bgfbcnq+NYXQLWuTAcSs2Bh36W82La8xAqmo/oA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055292144552.9473166184974; Fri, 29 May 2026 04:48:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgh-0001Z8-Dd; Fri, 29 May 2026 07:47:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgg-0001Xo-9u for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:38 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvge-0008CJ-35 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:37 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4909def6a21so2583315e9.3 for ; Fri, 29 May 2026 04:47:35 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055254; x=1780660054; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=GtiU35O6TVYYbrzgvhU5QrUMnpE7cmAahJpVL7hIFE8=; b=G+VkF7UTSMaUhXj3TF8/NMbVv/UJAwWI+/j1U3A7NtXbVSm+ngdsDToUKPnSl2jQ8R EpyHcKn25o0TqRjer2E0p4d4ted5mKg5m0goBD0YjxVsgQUbNHQxp9lXQcb5Rhg2WIIm xoRN+v3CunIVD/Rey3MqANZ1a0UH+TezTwOxoJ318Uc6Bj1bob7beh8C3eLPFTMr/c/O t5SDjCuBRKeFcZ+3NhSyNqAHlArbk2vcJBwbp2T5VAt2m/VOddD+R8UCuV9aFCsrK0Nr Gfd0sZsh18uhxhCID1EFaX6xT1UIM3cnVUqghPAqfTMyIs1j+KvjCttvbpYQkEagvTJV 3JQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055254; x=1780660054; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=GtiU35O6TVYYbrzgvhU5QrUMnpE7cmAahJpVL7hIFE8=; b=H33h7aqATA3jWiqja57H9gIRE6t77UZl6rqR4GOC2kym/qytgkfdRY2ellIyRl2Py/ 7xg5Gf5qUvDaszSAuvfnyzitah1sJt4QM7sLKXzyHYzsCcurU0g3MnFRkDwd25wClfUO 6rY2hNP0hGzTDIx1Zr/babtgJfqHQdQahehBHj3yisSVsMyt8MPePQJDzVeM8dGGHc4T AxEEXcqI5mwHoF2ExwPH5T4i+TLk7oAiYajsGqJPimzCU3jBbHkwL+ZJYM4aEM/XFgAG OiCJQvEQQJ1ugTiaeTp9kWN6Juv5sxG9I6urFZ4RgMd7KHpIsjQ7UYJmq5Z8mO5tYCXj Gf0A== X-Gm-Message-State: AOJu0Yxydu8+FzvByARKDqjlYDc1Qy9Vaa5xPIjBPirkNmvg2ehXVsxR ES+pGX3wRK/Nq+TagA/35pK5zvJJJk+XU+P0c2bpMjV7mk43wUvsPpr74itieki/7Sz5/slK2e0 +dYJv X-Gm-Gg: Acq92OH53zg2yrDlXBW8/GixKlOOJc79DrBKBIRQrekchX6U4XZUssP/fXNtzXSEH3H 6rgrFEwPR/q8F81wieP0bhMaj0BUwgdBslakcPmMbEYlBOFQtxBBuOvhMTv5dPOph04t0alPKag CIlbBn2hz3eomTgBXHXuc4BGg9myA34FazvdCzNcFrsaPzCX197jfFcOPWKN4EB2XPsggmwbYsi dKb5n0lvjBMk0nJCiurmyp3h0D6Q4mfIwRq0UeIY/cT0vGsHAQZfS4nw0wKkcx+yWJSrxuKolMu aMJQ/tP9mgTuuTuzBRR6mQU4X/e/7vLH1Z3KUijE2OprKN33c8t3Y0JcLtdIRRb9b8lVX2LniDh PxWfG3i3P9c7QQ5fYytnX8Rau5kt1G9TTOMn638YJpKBUiwttoDhYGddP2Kbvr+n1gzxkyqb4j9 pagkjm69njmDiZSQ7nKNDdvW6ezA5x5t+HONZXiG9ejEnEoNKdFBJPNZZXEQPeq4se/mEPdl7LM I2ErFo6uiAqL/+SIG882kGpmTjFlpBCX9vw42NiuA== X-Received: by 2002:a05:600c:4f53:b0:48f:e26a:1744 with SMTP id 5b1f17b1804b1-4909c07e7d7mr46506065e9.9.1780055254537; Fri, 29 May 2026 04:47:34 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 09/21] hw/block/m25p80: Add HAS_SR_TB flag for is25lp016d Date: Fri, 29 May 2026 12:47:10 +0100 Message-ID: <20260529114723.42040-10-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32e.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055294790154100 Content-Type: text/plain; charset="utf-8" From: YannickV The is25lp016d has 4 Block Write Protect Bits. BP3 specifies whether the upper or lower range should be protected. Therefore, we add the HAS_SR_TB flag to the is25lp016d flags. Signed-off-by: YannickV Reviewed-by: Peter Maydell Message-id: 20260518073401.11279-10-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/block/m25p80.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index b8a2543c0b..4a4cda6602 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -217,7 +217,8 @@ static const FlashPartInfo known_devices[] =3D { /* ISSI */ { INFO("is25lq040b", 0x9d4013, 0, 64 << 10, 8, ER_4K) }, { INFO("is25lp080d", 0x9d6014, 0, 64 << 10, 16, ER_4K) }, - { INFO("is25lp016d", 0x9d6015, 0, 64 << 10, 32, ER_4K) }, + { INFO("is25lp016d", 0x9d6015, 0, 64 << 10, 32, + ER_4K | HAS_SR_TB) }, { INFO("is25lp032", 0x9d6016, 0, 64 << 10, 64, ER_4K) }, { INFO("is25lp064", 0x9d6017, 0, 64 << 10, 128, ER_4K) }, { INFO("is25lp128", 0x9d6018, 0, 64 << 10, 256, ER_4K) }, --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055368; cv=none; d=zohomail.com; s=zohoarc; b=jc7+IvfEtrK+cxKnLD1Yc/ADlgdxewBRvY5bDqK+g3Lw4r9ydgfGul6quMYdfxmHrQfrmZMlNiqYB5OSxL+Kj9KwsOC3lHhdYv2AWB8SKqfOhh2iBR+Oo7oUGobjJoT7qzdfVfnRYzbOhLgwccNC7jyr2Ccrbs7S2cvX90KjN2o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055368; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=GFBRenfOuA37ru0m45qaD8VsAzhwbebsBqKnduTUijI=; b=maq5s6lne028LSn0GZB0ivLp2LN1aErdXJQ1v1RIKtx4H86HiCURbFDqK0OwFGt8GdjYTxhPMb7H/Z9BQmQu+xhEnqDDo32BV1MGxWrge8+ptDNQTh6O6pbnn+UhH5HVucQRPVAXeU0s8BBhhkEcMCm4IqAtIsKoLkfxIFKryrU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178005536848760.1192582935505; Fri, 29 May 2026 04:49:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgj-0001ar-FJ; Fri, 29 May 2026 07:47:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgh-0001Yp-0V for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:39 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgf-0008CR-6b for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:38 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-45eecb8bf67so1139129f8f.2 for ; Fri, 29 May 2026 04:47:36 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055256; x=1780660056; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=GFBRenfOuA37ru0m45qaD8VsAzhwbebsBqKnduTUijI=; b=nNuc7rZ2PBRfXcayadLdT129Xqj5jJlcUcj77Da6ytcllx6PAia0gQpXRwduI0+ujM 0wtqYfmGQb6+tqeFCAxLCgd6uem8orYoJGFPVIyJNs1RraDgT5eCwaPZCK+Hnq4Zjtj4 1b0W208JAX3klaz+Hw8eP7953OStQDf8ufQK2KIUyF4OF/SvaEcXbJ4vVcCxxlAZY+F8 q60INkahyg5xYC/l3ciEqdh2w3DSE3DporXkL1eDi2ay90VdbC1kmRhCMa/w1aEBrHK2 CLHxKoGmI/yw/qy/5cswr26PTEnxprA5vwnnBxdDIfGpGtL+SOc8Ju6lcf96faajS4C1 TCPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055256; x=1780660056; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=GFBRenfOuA37ru0m45qaD8VsAzhwbebsBqKnduTUijI=; b=PM64b5C0yssMM3KbW3ZX+vksF+mXTB0E1TJbZKCVr6o1xCFmXSZ1LAV71Z4p9ZmyU0 Ix6xE+4NDg+xfIix6aozIMZgdn4i6khsbVrJCSg2ITy+c/JiRiWqdwMB7gtOZXeGCttM tnsNQ8SAN0lii3j00Y5yIO08nYVAEkq2SaXkqZAg/OWoQwNTwj1+Zt/LV9WI4Ibz7GZy ep3xNFc9HwV0lHDmaZnDFgTX9yDaGuAsy+gKB39HA/NTxJIJNJjBG67A4CcFYb1mwb/o FDkO1zIMQIwATGfeBy/Kr2V8YlAkXoo40UOUq8qe5lM7qmqh5C8CSXA8DTE2/qEhgINv w1lg== X-Gm-Message-State: AOJu0YwUk1OXz7AOX9nX//oEMBhzcHNwouVo5Hqf9KgmKxo/TLaxwp6a So8njBLsvAQRt2cUMZVjm0NcaUusoSWytZIov4EJoZ4g/PUfkcYQOIGl8Nyr5vxoktuMjJggUiN qNwiz X-Gm-Gg: Acq92OFbU9uD2urjL5D9Fe1Kr3zTyD3Hb7Qt2GALlOpOwbGgd9YhTieA7hepsrQDUyj 58pLbcgctuy0IX85tRWyupchgCh9fEhxPkYZP/Ka35eNwy3uop/+b3pxAadqTIc0aZosFdAlGcI wMthDWdY/pkldJoDMJfaRm9RlD95jrnII4DRBFXccCwgqtZ+XDUaf3nJWSS9cS3Plw0LtqPPTPQ GO6lkmG8cnRHIM/L64rLxkamGx7kXxn/KNFkVR0fHspVS5fUk5fPntmk6FYI5awgUDH725xITgd B1x8MnZvq17oNBFdK5YEdR+ALJdLtWDaX8OBdjHHFnp78B2PYtSuvAdBWQis2nEFSn913OKEfhR 0hoHnoLjlwxkoX6uNf0rw5ZgbOnB4otixHdSrcQmfWW2z7pWOMSlMJyMeRoJ9r+R3pnAEq/cwUo /rgg67Iz+EJvm7/u/dsmeso7VE+iEIRM6MERsHFOJ0EschngIWhzk4Y9e1SDsAnjVSiQATeRaak 5/Q80KVMJ7G4Aaeza8XL+UJlY3p+OhfHtbpH3/PZWlUKsSzUtcX X-Received: by 2002:adf:e5cc:0:b0:45e:742c:f195 with SMTP id ffacd0b85a97d-45ef140c1e1mr3176707f8f.12.1780055255654; Fri, 29 May 2026 04:47:35 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 10/21] hw/arm/xilinx_zynq: Split xilinx_zynq into header and implementation files Date: Fri, 29 May 2026 12:47:11 +0100 Message-ID: <20260529114723.42040-11-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x429.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055369351158500 Content-Type: text/plain; charset="utf-8" From: YannickV Create xilinx_zynq.h header file to expose ZynqMachineState and related definitions for machine inheritance. This enables creation of derived machines based on the Zynq platform. Signed-off-by: YannickV Reviewed-by: Peter Maydell Message-id: 20260518073401.11279-11-corvin.koehne@gmail.com Signed-off-by: Peter Maydell --- hw/arm/xilinx_zynq.c | 13 +------------ include/hw/arm/xilinx_zynq.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 include/hw/arm/xilinx_zynq.h diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 66a4480cc8..6c83439017 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -41,9 +41,7 @@ #include "exec/tswap.h" #include "target/arm/cpu-qom.h" #include "qapi/visitor.h" - -#define TYPE_ZYNQ_MACHINE MACHINE_TYPE_NAME("xilinx-zynq-a9") -OBJECT_DECLARE_SIMPLE_TYPE(ZynqMachineState, ZYNQ_MACHINE) +#include "hw/arm/xilinx_zynq.h" =20 /* board base frequency: 33.333333 MHz */ #define PS_CLK_FREQUENCY (100 * 1000 * 1000 / 3) @@ -87,15 +85,6 @@ static const int dma_irqs[8] =3D { 0xe3401000 + ARMV7_IMM16(extract32((val), 16, 16)), /* movt r1 ... */ \ 0xe5801000 + (addr) =20 -#define ZYNQ_MAX_CPUS 2 - -struct ZynqMachineState { - MachineState parent; - Clock *ps_clk; - ARMCPU *cpu[ZYNQ_MAX_CPUS]; - uint8_t boot_mode; -}; - static void zynq_write_board_setup(ARMCPU *cpu, const struct arm_boot_info *info) { diff --git a/include/hw/arm/xilinx_zynq.h b/include/hw/arm/xilinx_zynq.h new file mode 100644 index 0000000000..cefb7789ff --- /dev/null +++ b/include/hw/arm/xilinx_zynq.h @@ -0,0 +1,30 @@ +/* + * Xilinx Zynq Baseboard System emulation. + * + * Copyright (c) 2010 Xilinx. + * Copyright (c) 2012 Peter A.G. Crosthwaite (peter.croshtwaite@petalogix.= com) + * Copyright (c) 2012 Petalogix Pty Ltd. + * Written by Haibing Ma + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef QEMU_ARM_ZYNQ_H +#define QEMU_ARM_ZYNQ_H + +#include "target/arm/cpu-qom.h" +#include "hw/core/qdev-clock.h" + +#define TYPE_ZYNQ_MACHINE MACHINE_TYPE_NAME("xilinx-zynq-a9") +OBJECT_DECLARE_SIMPLE_TYPE(ZynqMachineState, ZYNQ_MACHINE) + +#define ZYNQ_MAX_CPUS 2 + +struct ZynqMachineState { + MachineState parent; + Clock *ps_clk; + ARMCPU *cpu[ZYNQ_MAX_CPUS]; + uint8_t boot_mode; +}; + +#endif /* QEMU_ARM_ZYNQ_H */ --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055382; cv=none; d=zohomail.com; s=zohoarc; b=X0V/9Bs6oD0Qf0+i6FB7JEFyfB1rCEdbVbfCAqWGuJ8zxlt7SqVJo0fUHGXZYEwAnilRnBZrI1HuLkQ+1+xhWEoPpdvS8GruM7BgCaDswoYcKfVmkPTf28sLDpaG540zlJmO6zkWEihPVMlSkGgqcik/5F25Oz8moZ/k8ggJCR8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055382; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=i9pCJynB0tUPfa2OetJeRpXDd6u9BIzpuCekF6i5wNU=; b=FCLAmvvjEhqsOEXEC8WzHaSUkdUuZaZOiPGU1rzck+j7aK8EDYaja1cn2ZGgoOOgUY8QqZp4a9c/hufr719d1uzvmpYLQTg8PSgmHAjLqyKXMNyCv8RkYgCOs9v738qA26uZYUQyZCu5S8hOQJfE/prfVgPaasm5EEXQhHe8vNg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055382113202.3792667189366; Fri, 29 May 2026 04:49:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgl-0001cQ-7G; Fri, 29 May 2026 07:47:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgh-0001Zs-SU for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:40 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgg-0008Cg-4f for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:39 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-43fe62837baso8045972f8f.3 for ; Fri, 29 May 2026 04:47:37 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055257; x=1780660057; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=i9pCJynB0tUPfa2OetJeRpXDd6u9BIzpuCekF6i5wNU=; b=CKGiI7AtK/6EuWdm7LnqeSqqcNjXsJQEpKHkvm01r0R9+d9yXxt8VkZMbLMbhBNFs1 MVv71fVoHGpq2znTywG5Da++FcBYccwAAdvx1w0yF7pWfhBkzPbovH6MubmAILyvxgB+ SINJYEuS9fe37sFZR10XbYom1SPP2n13kz0ZE0zKwKUsnCiPNTLxh2noRa0tag0G0a8G 7/YYIGvs5XO7urTfSTjwnumkMD7qp4s8Fznr2/gGzJCKrAvysE+CrpJG2RL1Hq5SgM0j 9oQCa2r+8LAjVEPyfMVyJ/GfMwXycyxPVVs6CYmJRWXyMa7c05jgaiWT7aRqZUNS+a5l CWDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055257; x=1780660057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=i9pCJynB0tUPfa2OetJeRpXDd6u9BIzpuCekF6i5wNU=; b=BiGgOxJBLLNHUb3pgAE/SQNY1ZQlkQrO1xVBWQB2dJAv6PGavpyywLwdd3a56KYW0i xT8yV16ADnN04jTx15bDyvUV5YVTNpNbim06X0v+g667IZ9VGkZX6GFLYTSTw6KzW/9j vbWabgjtIY8INmB28h3n74AkZXUt5aYwyfRlXf9FjQCiZToSFE46otbIvoCGNpNZPxm6 eZ/VHsjnzbHsnF8sJw49IN8zI70ogSATGx8nPHGBWfRGXypHl9nKkorUKXRJ6SdViuzE Ooyn6WKp7r4wvH8+PeixItQeqATPqobHqfvwDgP8bMglgJhvnZLzRkIt3dmUsQMuZBP1 rsZA== X-Gm-Message-State: AOJu0Yzwm6Vvfao3XqB3pKzMclNiOnB0OmZUsJoJIlFwoEADi6CE5/BX sjr6x6YqAGSlBCvJyFzmLg6QGdNnJquzb2VQCyNg9OZcAJf8UpPsPVVNKrYpYYW07Xo6ACil5Fs vJLyw X-Gm-Gg: Acq92OGesM25fQiPnGKGDy7ogV15OuptOEuk+87P3mhPpDvy/CQz1J/Qu12OrgPpNEs 60L4bJv6LcJN64enEDNCWH7s/kmwlzQx1QQc/pjqyqTMLNu+9uM6MxqPhQA3FimxOr7udiFjP0E puM/pQTXP/n2/Uk7ASlCK9zMd8FKhhBqDyGKNRzkD0SPDpJwtUDUdHnt7HB3FXB2Tsqq4GanNrz ZG+NoTcOPooIYNMvhI/f3uzQTeiWIb/ws/jgWYev96mue5CRMaAJ6stWDBiucRK4SP1N7yAOp9x /De+p0656kLqTOMSjJ+w4bJd99i2MjWUEyVprf2yTNQTdV2JRMNrACzl+3LMSyWHJcltrcR7qc5 SusgMLwrttwyPe7SWeMCNX0P4hPFciKZuTgzcgzqehelpARd8yzNBKXTh+RvEWjWqtbjAP0pomx FSW7MeN44M3b8VAM4PV48Pt6zPowUmpVuhN07XivPwGt2xOUzY81zruWdUCpXkJIVxVL1zHH35/ vuIDBIaX1GefeC3dS1naAQG50E8JhOiOJBxvyCx8A== X-Received: by 2002:adf:e010:0:20b0:43c:ef4f:79e4 with SMTP id ffacd0b85a97d-45ef145ff50mr3197331f8f.37.1780055256627; Fri, 29 May 2026 04:47:36 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 11/21] target/arm: Add feature predicate for FEAT_CMPBR Date: Fri, 29 May 2026 12:47:12 +0100 Message-ID: <20260529114723.42040-12-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x429.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055383368158500 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-id: 20260518174750.660258-2-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- target/arm/cpu-features.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index f9c979d20b..4e8d844fea 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1061,6 +1061,11 @@ static inline bool isar_feature_aa64_cssc(const ARMI= SARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ISAR2, CSSC) !=3D 0; } =20 +static inline bool isar_feature_aa64_cmpbr(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64ISAR2, CSSC) >=3D 2; +} + static inline bool isar_feature_aa64_lut(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ISAR2, LUT); --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055292; cv=none; d=zohomail.com; s=zohoarc; b=UoWlE/htnvWHrphbWFhzGMto9iwzYjhKEYj7oLsJ8Jp1MU4qywS1RLTGuEYX21goK6LWSix1oEqf+6mVkD3KJ63a73oxLKbzdGDxSQF/JL98tvNWCWlAOh4T/2wfL/Esw5sT0baz1cJ+ACKxRJDukOMRowjvxrqqYUlP7BPuTMI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055292; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=FPp7rLmAeAO7bbC5MF2z3j3U4/fy4rUHCwooIsHRjIs=; b=bjJiovO7577g4EvxwmXj1RGeesFyx8Z39yAHTJQQG5B3OVYP5v5lhsLZ+MflhlCf5A/kaAr+wiN6yqCLSV5Q1/YYUkB7ZRfQr0faOhvVfJoZcZHcmmY5kz7mpffIAVMKDan9XslqyJo64yxvI4xtujPGwlap5jiKWOha2C5i+mE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055292861367.66804445842115; Fri, 29 May 2026 04:48:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgk-0001bQ-2f; Fri, 29 May 2026 07:47:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgj-0001an-5z for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:41 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgh-0008D0-98 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:40 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-45e6a4d0be0so6282369f8f.1 for ; Fri, 29 May 2026 04:47:38 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055258; x=1780660058; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=FPp7rLmAeAO7bbC5MF2z3j3U4/fy4rUHCwooIsHRjIs=; b=IyICqXQxsy3cEx25QskjYx0cp0ZPapjMsVf04aVgOTTEQ6cqxb01Bnt0dEbK30WER/ /Nw5JHWZqDPNyc50LW4aYVQaYaFuYfwQvRvCslOHp03hLnU8qJnRyFZGXJhrHO74Oh6m Ta5GqFKsAK8S/X9J1+OcZsF9pqE0InhzWP9ud/7k60UA78KlaMn8HmxAP5my26oNq7FP 7DWHZo1AMaYoDyXTklKncBXAKYfIz8M5mgE2+8vJ1YhVfe9vJTr3OX7WLDGabD6kxsHp DyITCDyjOPwIb2clYKe9h3ECQCMwsi0JclO/0wrjQ/Meq7gHHQ1BI35Uh32SO+fUkO+j VdRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055258; x=1780660058; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=FPp7rLmAeAO7bbC5MF2z3j3U4/fy4rUHCwooIsHRjIs=; b=IXsT+6YiZoXTZnNYCLLSgDf7PaRfuhVvxZPN+9+KKS86FHrseg71vd2m2xgYTZP3Md RzhsD/I+XjbOYTPCb96fC33JxQ91zg3q+fE0l0dV5jPLrsjUQDRKR/6mpaFl3WFaTr5r NtN9/kixBsKAG8q+qHYRb2am5Kki2cMtHp3y6EkKMiauXXs+O3sb4IYQlVurOsb0QZXv nPD9f9GuPaj/k8/1o7hGYQ9rZO3IYqauKwMq3JIW1lZrCuQmOZKNEDIAyEsedlR5gbsP lftHzmSHhttQ1MJidCrFemmgYk4z15xNMj97FoQSA36EEcsDIg5G1+L6k3Tku1tAjNYL 9zWA== X-Gm-Message-State: AOJu0YwSABWNKq6r6ReHA3KbyM5iJZwiMwGB12qLcbVrO/czkeNpdN33 7qGZUHhkFC09n0gJUvHQz97g5ieGJEJwuhHA0OscntwsRJRYhC4Tki0uih568F1Vj3oiVZa5Qoc HgpYH X-Gm-Gg: Acq92OGa5QbFAu+7TQgSdw4vdeqto2dLh8S5rEcJragt/MMTS81I6gAg/1ETT4icAEO eYx92tbEth1/VGaqEQ3zOfV9QN16C00h3n6y+dfSqBMj7ZcwpEJ+LKacK8IGnY8wKMZF0T7gwsp nVj19EOAt+Ztpsky59MN3bwwJu8S9oFEeUMMGoyYkiKbvlOwEsLw1ZKqBDA/o8Zr46in5PYo5t3 Zc8UqbmQBvNNUkCzrdPr7kOb+2G0xTzExjaUwI7sKKQMv6yDwQfxWjBiz52J6/U7FKlcL0hg2pZ pfaQiGezZN8emIPvY0dWz9RtDmtHehI70c6d7/oEf+KGZK63zhM7Fse3b6Q43huvK+OHDC77dgT IQv93l3+MmFiRbKV78cYR777AuDFiM26Den+jeYFwqyBm3EVkL9Ax/wSYw24HKhsJMTqEsEBPNH WzgQgOjQnWadwg3tGDcTMuX3p9cKJpxfy0EDbgGwNnECYzJOKC8u5eaKqJJaM+NtW8qBn6EEB5F 624gZzWwDdgvkfBJMFvgvaz46a3me/6RP6NFwnRvQ== X-Received: by 2002:a05:6000:4694:b0:45e:ee40:2185 with SMTP id ffacd0b85a97d-45ef142f104mr3358375f8f.14.1780055257737; Fri, 29 May 2026 04:47:37 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 12/21] target/arm: Implement CB, CBB, CBH Date: Fri, 29 May 2026 12:47:13 +0100 Message-ID: <20260529114723.42040-13-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42e.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055294817154100 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Compare and branch instructions, with various operand widths. Signed-off-by: Richard Henderson Message-id: 20260518174750.660258-3-richard.henderson@linaro.org Reviewed-by: Peter Maydell [PMM: move var decl to top of function] Signed-off-by: Peter Maydell --- target/arm/tcg/a64.decode | 9 +++++++ target/arm/tcg/translate-a64.c | 43 ++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 02c7264cb9..a5a2a45a2f 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -208,6 +208,15 @@ TBZ . 011011 nz:1 ..... .............. rt:= 5 &tbz imm=3D%imm14 bitpos=3D # B.cond and BC.cond B_cond 0101010 0 ................... c:1 cond:4 imm=3D%imm19 =20 +# CB, CBB, CBH +%imm9 5:s9 !function=3Dtimes_4 +&cb cc rt rm imm esz +@cb . ....... cc:3 rm:5 .. ......... rt:5 &cb imm=3D%imm9 +CB_cond 0 1110100 ... ..... 00 ......... ..... @cb esz=3D2 +CB_cond 1 1110100 ... ..... 00 ......... ..... @cb esz=3D3 +CB_cond 0 1110100 ... ..... 10 ......... ..... @cb esz=3D0 #= CBB +CB_cond 0 1110100 ... ..... 11 ......... ..... @cb esz=3D1 #= CBH + BR 1101011 0000 11111 000000 rn:5 00000 &r BLR 1101011 0001 11111 000000 rn:5 00000 &r RET 1101011 0010 11111 000000 rn:5 00000 &r diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 15b40090c0..94dad693eb 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -1774,6 +1774,49 @@ static bool trans_B_cond(DisasContext *s, arg_B_cond= *a) return true; } =20 +static bool trans_CB_cond(DisasContext *s, arg_CB_cond *a) +{ + static const TCGCond cb_cond[8] =3D { + [0] =3D TCG_COND_GT, + [1] =3D TCG_COND_GE, + [2] =3D TCG_COND_GTU, + [3] =3D TCG_COND_GEU, + [4] =3D TCG_COND_NEVER, /* reserved */ + [5] =3D TCG_COND_NEVER, /* reserved */ + [6] =3D TCG_COND_EQ, + [7] =3D TCG_COND_NE, + }; + TCGCond cond =3D cb_cond[a->cc]; + TCGv_i64 t, m; + DisasLabel match; + + if (!dc_isar_feature(aa64_cmpbr, s) || cond =3D=3D TCG_COND_NEVER) { + return false; + } + + t =3D cpu_reg(s, a->rt); + m =3D cpu_reg(s, a->rm); + if (a->esz !=3D MO_64) { + MemOp mop =3D a->esz | (is_signed_cond(cond) ? MO_SIGN : 0); + TCGv_i64 tt =3D tcg_temp_new_i64(); + TCGv_i64 tm =3D tcg_temp_new_i64(); + + tcg_gen_ext_i64(tt, t, mop); + tcg_gen_ext_i64(tm, m, mop); + t =3D tt; + m =3D tm; + } + + reset_btype(s); + match =3D gen_disas_label(s); + + tcg_gen_brcond_i64(cond, t, m, match.label); + gen_goto_tb(s, 0, 4); + set_disas_label(s, match); + gen_goto_tb(s, 1, a->imm); + return true; +} + static void set_btype_for_br(DisasContext *s, int rn) { if (dc_isar_feature(aa64_bti, s)) { --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055385; cv=none; d=zohomail.com; s=zohoarc; b=FJOFTx3xlIBtUfkaMKekZbRxjY6HYLJoqukvCtXEE6zAuDvUqvZljmR3dG8M/Glxz0t8/B2C9kqEEMvdHVanZv3le2IfT4tXZRMKQ8GAdsjsILKGdLi3hD+9/AdYMULgRBSbmPA9/j/EZ0jF3rlleax1tcUVw1e18a+wQntrLkg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055385; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=oFPyMg6CG4UqvbKuUhXJfwaLJHXNaajBdeaaZX6YoCE=; b=fCvHkTv3jMjWnMXwmHghKjCmWkXWzhhO3Qyh5vssqBUykaz9KVMnSUOhnbR+hL2QJNoAhcl3fj6HQrzKKXUKxvunmkPWbAo9RaQGfnVlAJ6WmfGaAMSMW1myHAzGd/WdzG5kS6tGiMfoM+LG6TeKbSQmlNpxCiCnmfWu1HzN/9U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055385419852.598348431494; Fri, 29 May 2026 04:49:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgl-0001ca-HZ; Fri, 29 May 2026 07:47:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgk-0001cA-4W for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:42 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgi-0008DH-Gt for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:41 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-45ef372c58aso278723f8f.0 for ; Fri, 29 May 2026 04:47:40 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055259; x=1780660059; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=oFPyMg6CG4UqvbKuUhXJfwaLJHXNaajBdeaaZX6YoCE=; b=ngdcIAVVI04Dv9aTMkun3jeqWF84fo8QOg+Gw+ZP9fcE4Y8AAdzyt0yswFAtbCTKTw Z9M8hmDc0vCOEhB0l0RVuoxa+7kWq038WeSr1P7U5lcQgPmpb67CH9WeDj60ZWPpR0+r gL7FVHx3Nv05tEL07LJgq0Jboxvl3Rjd4SbYn1H+jhK1NtyGK5zU4PaKWSAyHTk3Fp0c mLSBcyj9boj3uXJW/Pljc7+f6Y8WRetk9cSZVH2aJXoKytrRw7voeyoEj/DTA1BHHR9Y kYjJXmK3AqOA1TP0b9rMl/WJp35jsejKpsbaQmxNtJo47+6VCjteS9WjralNU5Hm1dBs kncw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055259; x=1780660059; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=oFPyMg6CG4UqvbKuUhXJfwaLJHXNaajBdeaaZX6YoCE=; b=ljOX0iu3XT+9fz+ftBbI9z7N+65epu/g8qD3IgYtIj1WW700UvSJTthmYQvmjw2J9d jSCyyIaCQyKi4C+2GoZ/SBbNPGaNAZ3yW4hgA5SOphFfzsTdKfQHFS7yvs7M+x4VHjBL 2CqBzTr7zDM4AzFoIgLfH1I9z47i51SFmyUUQXDBE1i29WvPlFsFHALP1Yv11QS/d53J v/AT/lctGFd22+nmK/6p2MVRwQxlTDg6vfa2Pi1aKL1x3UeW8vZ07+sAZ2geu/hTQbv2 PBJQ/a7Qxa89EikWz5UqQex+9C6YQOiyiwliqh0RW03TitZi6+EhFVTySeRgXKMMzv5a 69Gw== X-Gm-Message-State: AOJu0YxqpMIg4KKKslas8oII9nSrCoREn0suGetGw2FDllx8Wz/nTmSZ N9pxBlec3Dyes6SlNf79c2D0ZLCQruQGZ1wJm0hd+jOxMnyssYTd3D3MgwoFXz2mgKrYT391rnl Vxnaj X-Gm-Gg: Acq92OEbY5tb5MkDHveyuHFYehhdOWGRo7ctx8Qxqibee3/UBG0jOIC3KxJs3AgXGsM EoJMsrzQKD1MYzZmpeqIf790/ZjkMms+J/4iLtXqNEZjFBi901xfkarZxhjePWHh+XHWzuNkiUx E2OfSw/eVvuvNWVKNx/fyyAN+IiJSsPMk/XMx68DJlvEDKd8ALtilPSTq32oNzTYGpV6f9BCzhY 4FpVqg9Qvip6D8Gvjb9duqTfEX2NcuM7QD9WjSHc42Tq9sSEsn5vHLnC4ivQKPBcxm2dBj2sG6j 19Xy2he+133pSkcVt1gAf6AiaAuy4UVJR3p22LakVEXbHif+/yg/JB7uZCFtIVi9PglAcouYcIb 7e5Sqy/WR2PFIevT87EUEsFIIKMiDCBOqdOg+qe9D4MoRDOZUH2/DMDnZJUSHaQ0sGOqlEREdDP iRc7fIcfSEVue/NQG4JliA2bolezgKpaEVHG1UaiOTyGaB6Dcz8DMm+zYKpFTpUYezfeZS2iJJC 60NfE3klh3M1STXaCuhLw0I0lkE3Hq6CGNYWTv4TA== X-Received: by 2002:a05:6000:461b:b0:43d:e31:68d1 with SMTP id ffacd0b85a97d-45ef143ef08mr4758696f8f.21.1780055259158; Fri, 29 May 2026 04:47:39 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 13/21] target/arm: Implement CB (immediate) Date: Fri, 29 May 2026 12:47:14 +0100 Message-ID: <20260529114723.42040-14-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42e.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055388193154100 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-id: 20260518174750.660258-4-richard.henderson@linaro.org Reviewed-by: Peter Maydell [PMM: var decl at top of function; add comment] Signed-off-by: Peter Maydell --- target/arm/tcg/a64.decode | 2 ++ target/arm/tcg/translate-a64.c | 43 ++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index a5a2a45a2f..d8a3269573 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -217,6 +217,8 @@ CB_cond 1 1110100 ... ..... 00 ......... ..... = @cb esz=3D3 CB_cond 0 1110100 ... ..... 10 ......... ..... @cb esz=3D0 #= CBB CB_cond 0 1110100 ... ..... 11 ......... ..... @cb esz=3D1 #= CBH =20 +CB_cond_imm sf:1 1110101 cc:3 imm6:6 0 ......... rt:5 %imm9 + BR 1101011 0000 11111 000000 rn:5 00000 &r BLR 1101011 0001 11111 000000 rn:5 00000 &r RET 1101011 0010 11111 000000 rn:5 00000 &r diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 94dad693eb..765bc3f0b0 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -1817,6 +1817,49 @@ static bool trans_CB_cond(DisasContext *s, arg_CB_co= nd *a) return true; } =20 +static bool trans_CB_cond_imm(DisasContext *s, arg_CB_cond_imm *a) +{ + /* Note that CB imm and CB encode the condition differently */ + static const TCGCond cb_cond[8] =3D { + [0] =3D TCG_COND_GT, + [1] =3D TCG_COND_LT, + [2] =3D TCG_COND_GTU, + [3] =3D TCG_COND_LTU, + [4] =3D TCG_COND_NEVER, /* reserved */ + [5] =3D TCG_COND_NEVER, /* reserved */ + [6] =3D TCG_COND_EQ, + [7] =3D TCG_COND_NE, + }; + TCGCond cond =3D cb_cond[a->cc]; + TCGv_i64 t; + DisasLabel match; + + if (!dc_isar_feature(aa64_cmpbr, s) || cond =3D=3D TCG_COND_NEVER) { + return false; + } + + t =3D cpu_reg(s, a->rt); + if (!a->sf) { + TCGv_i64 tt =3D tcg_temp_new_i64(); + + if (is_signed_cond(cond)) { + tcg_gen_ext32s_i64(tt, t); + } else { + tcg_gen_ext32u_i64(tt, t); + } + t =3D tt; + } + + reset_btype(s); + match =3D gen_disas_label(s); + + tcg_gen_brcondi_i64(cond, t, a->imm6, match.label); + gen_goto_tb(s, 0, 4); + set_disas_label(s, match); + gen_goto_tb(s, 1, a->imm9); + return true; +} + static void set_btype_for_br(DisasContext *s, int rn) { if (dc_isar_feature(aa64_bti, s)) { --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055328; cv=none; d=zohomail.com; s=zohoarc; b=g0Rtmn1n/LUYU48VacQfRdMlMsHp8GyLf86pCcODlveFZb3igfy8/U1+WjZjWfEtH5Kgecu9haAjF5CRCVwijRnFmLLnrXCOlGlAo2H6xShfH/eeWY+31EoD3LvFX70W2gr5OZq2jPrpBy4fCJIXmfpitnHCLvekC2/KdwE5x5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055328; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=8wRv/E3k2nzF756LIvjiKBw9+SXmuBb0NqpGmE3Ip94=; b=C+7SBfpn3n7NIxVlfOWilsAuw1TG4ae2cSoG8MlXTxWZZaIuwnQAq+9uWsZjeSPXCG6E6W+h6FgVRocqvNjxIptO1svCdvOQiY6jJAPks6Cb7IfH6w8D52JSwxnrKj200wlRGsBvYURZG4mxFKh1/GjJs2V7T52Z4w06vK1Wq+M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17800553286811013.7042527437858; Fri, 29 May 2026 04:48:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgn-0001dr-1x; Fri, 29 May 2026 07:47:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgl-0001cb-GQ for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:43 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgj-0008DU-KY for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:43 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-44a74032ff8so10352004f8f.1 for ; Fri, 29 May 2026 04:47:41 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055260; x=1780660060; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=8wRv/E3k2nzF756LIvjiKBw9+SXmuBb0NqpGmE3Ip94=; b=qRqCOAivZ12G9ao6sKZTAP4rfUQ/gOYIxrt4MK1ui2dbM1xm8KuGbatmWPsNUBUruv /p44BQfPxFetrQ/Riqv66iqZDqgMQiboL2JTucjsKS6mjngQyCnI+72Fv0hlpStIhXSq rMydwRKpo0t4xU4D1+xh3cfr9C9zg8OtLaw2o6uDORQyqqQat1m5NLwQmJdwAbJEoSkc cQT3Lpb+4AcWzjhaV6o8QQ+/s7LwaLX/CyHbXbiqmOvhLQlOzS3gNzSZMSY9J8VBcuFB mz/lvnAAl09v5Wkh2xYkhK4MsYRFicIAkEoAFIVsiQh0QNDsU+Q4/ZBOHZfSY3st27bD 4GyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055260; x=1780660060; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8wRv/E3k2nzF756LIvjiKBw9+SXmuBb0NqpGmE3Ip94=; b=YiivilyDhKqmSpTIa9d2yC3lvDsAoKaIkwoiHLPLDd7GNP5hm7MJf1NgwmFYV1gBPe 6ywclKSUcqlWKFq2kU8n77B8sf80ehb/Rrix0RUHX0c3gRMj8zEOlda8hbt5E2ibDxxX P2Fx7EOYRMB5A53NLb3090Y5zCEO6rLeWOO/jBUvLLZvPyaiLxYdsv3zofEyxFjqNAFX L54wxBmP58WUFaun0/TgPyHc1mrwMsQ+E4OTnESlfGgIPs1pPF/itLQalwnaZZur01fw e3QZ2sJswfd0UopwdJVQm9+UhYYq7oKsTTfQIg9McLrObSEnIMn6Ybfwdl9WTxpj65E8 KKfQ== X-Gm-Message-State: AOJu0Ywg2Y6/RA4vkTSTrHE8p+HfQvbmXZol+Ox6LhaZp2XDAVtJUZyz xZ47NP9TlDfpDndkNPz/XPEPDei9m0XhCMBQ3FG0vuyT7HNUjS6TZhJLHu6t/1cfYgYnIjhQs3P n/5gS X-Gm-Gg: Acq92OEql2Ro4y3TiBXIK/y2VhBu/arWPSxkzuZNxNgTcXxkgL/419/x3CYGfz4FqPr tXl3AmiZ6vM7mRaDZ3/F4Ml6hcuG5gl5fIojaJxb+Kwkp7jj1rpvVWgHZNrnWDYbWv0cR3nYgnq pw7lhoUolxscj4P4Lt3yUF+banPIHXF26i2ENGNQssucxzVwd+wHDbcx5yGiOCICS03f0UKhRcr T3XdLojYGlWkcar6N1r5Hx0RB1LNO5cQjroRsdiOMdX2kx9lH0w85yZxnE4+DpKJmOWJ5gYayEe Yn3k+x2vtIkSR/jXaGeujVfxQ1DUF1s1QebXPifCIh866oWsIfWddsbZnF1DrAO9+AGR2UIleZs CHcEvhNwvAJ0e5TU80P4u4Q3PAWYQB/IWiIABbmTUdBuuUZ4iUB5kczhyg4XCqMbRjbJEp1B/NS UT55sLexscZVeSMTLdyCjwSoIj9/Kj1u7w+A1FEw0N0SkD21Kipv43B2ojDPIuv9IXai6NSwsWR 3sP2wCh11jKlXWUsksnLmxhFS7rvOkW55JEHFf/1g== X-Received: by 2002:a05:600c:3b10:b0:48f:e230:2a21 with SMTP id 5b1f17b1804b1-4909c0d0f1bmr48824385e9.32.1780055260148; Fri, 29 May 2026 04:47:40 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 14/21] target/arm: Enable FEAT_CMPBR for -cpu max Date: Fri, 29 May 2026 12:47:15 +0100 Message-ID: <20260529114723.42040-15-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055331177158500 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-id: 20260518174750.660258-5-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- docs/system/arm/emulation.rst | 1 + linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index e44b3016be..37ca4e47b8 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -35,6 +35,7 @@ the following architecture extensions: - FEAT_CCIDX (Extended cache index) - FEAT_CHK (Check Feature Status) - FEAT_CMOW (Control for cache maintenance permission) +- FEAT_CMPBR (Compare and Branch instructions) - FEAT_CRC32 (CRC32 instructions) - FEAT_Crypto (Cryptographic Extension) - FEAT_CSSC (Common Short Sequence Compression instructions) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index ceeeee5315..228b593316 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -170,6 +170,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_rcpc_8_3, ARM_HWCAP_A64_LRCPC); GET_FEATURE_ID(aa64_rcpc_8_4, ARM_HWCAP_A64_ILRCPC); GET_FEATURE_ID(aa64_gcs, ARM_HWCAP_A64_GCS); + GET_FEATURE_ID(aa64_cmpbr, ARM_HWCAP_A64_CMPBR); =20 return hwcaps; } diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index a377f67b9c..ce76e09d52 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1262,7 +1262,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ISAR2, MOPS, 1); /* FEAT_MOPS */ t =3D FIELD_DP64(t, ID_AA64ISAR2, BC, 1); /* FEAT_HBC */ t =3D FIELD_DP64(t, ID_AA64ISAR2, WFXT, 2); /* FEAT_WFxT */ - t =3D FIELD_DP64(t, ID_AA64ISAR2, CSSC, 1); /* FEAT_CSSC */ + t =3D FIELD_DP64(t, ID_AA64ISAR2, CSSC, 2); /* FEAT_CSSC, FEAT_CMP= BR */ t =3D FIELD_DP64(t, ID_AA64ISAR2, ATS1A, 1); /* FEAT_ATS1A */ SET_IDREG(isar, ID_AA64ISAR2, t); =20 --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055305; cv=none; d=zohomail.com; s=zohoarc; b=EPNwKpmqHNzIbvDOqp44ViO+EndUaamQaZ3eCe7EfRhkkFbDuDUecgJ78FEXpiSNk6xTm6wyQhk8oKTTvvv9CpF0xPFge99ns1WIV80Q5MmzZ5b6qK4Id+6aqfyRIQaoS2+edbMMKBC46724GrSQwLAZCaB94RQccDRRr3bXBO4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055305; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=5epfWRhDxaC8XI13YVukA2ByRaHS+EVk7OK1nsBBQug=; b=Lfx67KiYMhSvNLyokdy/udNy1hAd2OUNRhQnZc/ZwyAyhD5vbsJUqjs+WdZHrhsb2CfF1XpOODMY7imtUF9+svFEwcikCZZfqxWbkx1V32wetvcoE/ksvezMUrw+7e+hMjsPGeyFcfEUT0lLR7LzRfQ0K5zWY4WmwwvSAD615eM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055305437599.5499792179917; Fri, 29 May 2026 04:48:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgo-0001ep-P1; Fri, 29 May 2026 07:47:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgm-0001dR-H8 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:44 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgk-0008Do-Rt for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:44 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-45ed18d8a1bso2686407f8f.0 for ; Fri, 29 May 2026 04:47:42 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055261; x=1780660061; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=5epfWRhDxaC8XI13YVukA2ByRaHS+EVk7OK1nsBBQug=; b=YhnCOGiXBYQOlyeYpfLEcHBfYgxY6GLTLFqH+5QCRTrCcRU7Ri71L6jbSiieP6LGgy qM97tjzerJKxLP7SA8lT9IGYEVrbTxlGmmCEPN7y4tnkV4hM6CTg4PlilgTIwiqCQME7 nra7rwX2bd58/+CG917qVFgLxXw3ud48dmc7DbSXcE9KOYeGyyYXZDqyXeFAxHvL9f3f iIVOBwT8zSJcZcl8x0wnHCuiiCIfZG2STXAmHlRRhqCUz127iTkTpJaWxhYaPRIz4ZLa pCkyLZg8npap8R9Bb8AUl5w6QgQlZ22C3oUZpCWG8yRMJM1pKLgGMacT1vbUqVKImc5v v8lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055261; x=1780660061; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5epfWRhDxaC8XI13YVukA2ByRaHS+EVk7OK1nsBBQug=; b=iJWO9NsGDQUcsksEuQ1WbB+QzuOQ3RS+obXagUn6rHDsjwWI3lR539CFdDby2uGGNk YK46G02iJEvN6KRCXxN/SBDwfJeHQPzrW8fFEDt8DZtJcnpcpUdNqXLmtPs7gNtGaBmD yTuDftZBVysq7sVjsPN6i+yssAcKkXZNzu6AGM07NjSloAe8QB113JJbQAMe/ZnvlF9X z7pCz3oDT5qmXGs7H0WUo9ljgWv/FsMVO68ooI8mqFOL4KU7cIKH8gxwqSnK4kCqnRKO 73iU/1rChdwWkVVKuaEdPvOObJQ/RDd14KyYkjq+4kIFNEalQGPS3uR1/tBAIDi8MKT5 kteQ== X-Gm-Message-State: AOJu0Yy0io7k2fRVogwF5FMjCcXvP1ajudH+OTr4xu+B9GosltHPOmEx yK/j2aJWEkgF7M0JuwPjHzRB/1IFSinU+BvcPysJd3yM/10j5OwOncaF7qGjXwXb1j2sVhR0aS7 xEnMA X-Gm-Gg: Acq92OFUBa/KNx8eRr16gDsomwcZyJI1IIS4fh8BHQYYtXHpdzTuEUfQw6usgliPbCl 3VSJ+NIRhQGYhueprA8dyWo0c3FCo8c5B8Q29eQswblnof/dT302KScgha8P4HM5CqedADyJA6A tNfm50xk3j5iPC+Pem1X0df65kXtI3JUn5bmXehrzHZEsMCCmvTiCYC6xKYlM0cxiMbjRD5Hpy3 /dwHZjKepcua9ZNkG+xiEwX/0HMxPgFU7tH9y7fZXP4fez0/hAfuuLs65tvHoOmf1zhD+/+TVMT Z+GEVPEczF2wQVUZ/xFzLseIQds9tEgnvz2ElsQY9iquYzUHehJIlLWvnLg1FCJm961hLcPqEea 9ozffRiSUZyn93c6O3RkbVawEWVLiOm7WQpE7scRE6KkZsNRZkVDMJJ8ETD8nLv6RyAzbIPa5/k L4LSplo22Ryvndph/XAn7AuLZ+GH8+ECAakpkrN5pR7RtmmWenHjD0u29HUYd2rjv7i88+J1mX8 vOA11KF2D6u/VKZydCoXqIMMPEzUgX1wHlKxJUf9T4OXotzcwl7 X-Received: by 2002:a05:6000:2988:20b0:45e:8547:f21e with SMTP id ffacd0b85a97d-45ef147c77amr3539107f8f.36.1780055261361; Fri, 29 May 2026 04:47:41 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 15/21] target/arm: Don't assert if 64-bit EL2 AT insn sees a Domain fault Date: Fri, 29 May 2026 12:47:16 +0100 Message-ID: <20260529114723.42040-16-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42d.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055307054158500 Content-Type: text/plain; charset="utf-8" The Domain fault type can only happen for 32-bit short-format descriptors. This means that it almost never needs to be encoded in a long-format fault status code. However, there is one corner case where we do need to report it as a long-format FSC: if a 64-bit EL2 does an AT insn on an AArch32 EL1&0 translation regime that is using short-descriptors and that translation operation hits a Domain fault, then this is reported in the PAR_EL1 in long-format. The PAR_EL1 register description defines that this should be reported as 0b111101 for a level 1 Domain fault or 0b111110 for a level 2 Domain fault. The Arm ARM pseudocode special cases this in the function AArch64_PARFaultStatus() (because no other "fault to LFSC" code path can be a Domain fault). For QEMU, implement it in arm_fi_to_lfsc(). Cc: qemu-stable@nongnu.org Fixes: 1fa498fe0de97 ("target/arm: Provide fault type enum and FSR conversi= on functions") Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3512 Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260526174155.2491217-1-peter.maydell@linaro.org --- target/arm/internals.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/arm/internals.h b/target/arm/internals.h index ae5afc5362..f39a992012 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -893,6 +893,16 @@ static inline uint32_t arm_fi_to_lfsc(ARMMMUFaultInfo = *fi) assert(fi->level >=3D 0 && fi->level <=3D 3); fsc =3D 0b001100 | fi->level; break; + case ARMFault_Domain: + /* + * This can only happen when doing an AT insn at EL2 for an AArch32 + * stage 1 EL1&0 translation regime using short-descriptors, and + * the translation hits a Domain fault. This needs to be reported = in + * the long-format PAR. Compare pseudocode AArch64_PARFaultStatus(= ). + */ + assert(fi->level =3D=3D 1 || fi->level =3D=3D 2); + fsc =3D 0b111100 | fi->level; + break; case ARMFault_Translation: assert(fi->level >=3D -1 && fi->level <=3D 3); if (fi->level < 0) { --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055306; cv=none; d=zohomail.com; s=zohoarc; b=IHGEB0T2xirJX7jS7dY8MkzwpRZ0pZ7yo3OQO4DCjmIJiIgIBJiJbt241tBMHk0PzAXZjeEekXS9M99cTnWPNneQ4JMGBnlEq+FKvnqZuJjoZRP0fLUnajvX00zpMnR74uL/duxWNrda0M8pgaiLQPbIH/YGyyRv4BZa6yrR4P0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055306; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=t/OUB1GP9tck40luMQUBOFZYpEMh4lTb6rVQxTXavNo=; b=By58u2CA2574iNFOo/i73FkrCSRK0kSt9ltAQNqxNo0oHLzUQFOzGQQUWVvrA6dPOQp8DQygwu3RImsqB7JuQ6mHBuaWR349OozKYkm7x9j0J8ZHBDnZHqSigqOZfTHG0aeGM9D9HKhqEnVTpR0LYDj8Nq/HfGwPsmT48GCMiUE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055306281206.325563708687; Fri, 29 May 2026 04:48:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgr-0001i0-HO; Fri, 29 May 2026 07:47:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgn-0001eP-Jm for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:45 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgl-0008Dy-V0 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:45 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-49050ff7cbdso64161275e9.2 for ; Fri, 29 May 2026 04:47:43 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055262; x=1780660062; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=t/OUB1GP9tck40luMQUBOFZYpEMh4lTb6rVQxTXavNo=; b=fYMpal0FLEje7gHCEWK0Xm5p7bD9XtyFc6zDEHM4FxoDfmchaLdXGR4tR6iet3zO61 EzQQr4ng8uHlUOoKZjANg4atsuocTRPyBBPEHMQlBrICFTjOltOn39eRoU7e9XfiMAxL Ap30UhoL2IneHVsT0LD2KHW/j0PQO+vkeUY+M84NqaoKwCxdXWDcnIMrmLc+J6kdk8AS lpm9/tkZ8e/GT3hs+AIEkF7L4IM7sZCede2LfxU0S6L/UydY+U5cXWR3EejugVT2zdAN F/cCNvVWjq2xYQ3e7uwf5sWAEfslKEGaoxJh0lR/uQAXpYhi0OQjKJ92cwuxhLWjKcBJ rQIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055262; x=1780660062; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=t/OUB1GP9tck40luMQUBOFZYpEMh4lTb6rVQxTXavNo=; b=NdhYKsVOlzJx5vukT42JjRS4QMUVu0+IhI7l5HCc+++TfXeGNaXF5aLOp2oh7ajsIY JmkP6t1POUwgN08X1KbgIi9qmG11vXfQOYsTGEtMG8Rl2A0aLCR79thHwMoRO3ulThCf 7/yHn8bB/cEGLykga14Ljm0JwLSFxC/UkN8ewZVZJyNd3yZJd1rS9QmrRQmEfI/PPOVe 5DUKR1QJ/ITHlKXRmDMdDFEUBf2+yGFxSHq7v/mKWzra6cHNe1Cy9utfAfnEuM72WwlX JzpuKNbMxaRC4L/g5z5fNr41/wdd5GDpBhM85Bza9ZazGyDEct+jGGn2DBNRFTipirZW xkow== X-Gm-Message-State: AOJu0YwszO3IUIR9uRAcsERtE7oKUECYFmGcgTMye86ZaAbIg1vnC0/S /tBJyafZZPHG9QuMsyKykQJShQy/1gqD4u112ikfGFAP28pms0R/DBGXIdIGxF5gFz0N3ZXQCLY CNqim X-Gm-Gg: Acq92OGSM7wdHxUcXr8ZagyHkAf33hFRIoN8B3t5dJcykAHhE3K7RTeXatao3SiscKO Vzcbg9jsXC7mmWbauVGdVeRv7yTeNS9onbUIlP4A3X3VpowYHRNsB8UHyC+t9BUdbFiE7zThvgg sq77vXvrPKpqGmKbTKClBzOnlgK778AIESVH4u7wY8MLSTGglhYgkOCLq/+Ftvh/a0dwAYVaeFu CXmemX1L81gvjTmh7vrKARHhFBG6FTU/BFTHgK1GEUfjVBXJQt2YPGy0aYsE7SsNG5LOf0fQ0g/ MA7AR+e+lnZHOUn6lXPQb0u7Er0nqqPOR3vhiWnLoVVaMntij6G+Bi3bo02ni+NE+uPGYQltPtM KkDTznTcZDxTnQkQ5rDY2gZs7t0UqcyS3+ho+rEg8nBwiDudTAWJU+HhfzyS6TZCKEHlNSmsV8G hNWhDSo0EC4myFkSAG4QefyYghkACkF/uCkEPB5ATOg7RxqY0VpeY4HanMv6Undu8a9bsV0qr99 L+csEiGmsjvIgrY4hi6dBMR9rjiIM0crcMKFQSDeQ== X-Received: by 2002:a05:600c:3b9f:b0:490:59cc:998e with SMTP id 5b1f17b1804b1-4909d2e9009mr45635455e9.3.1780055262405; Fri, 29 May 2026 04:47:42 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 16/21] target/arm: SME BFCVT, BFCVTN have "Alternate BFloat16 behaviors" Date: Fri, 29 May 2026 12:47:17 +0100 Message-ID: <20260529114723.42040-17-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055307021158500 Content-Type: text/plain; charset="utf-8" The Arm ARM A1.5.10 notes that some instructions have "Alternate Bfloat16 behaviors" when FPCR.AH =3D=3D 1. We implement these using the FPST_AH and FPST_AH_F16 fp_status words. The list includes the SME BFVCT (single-precision to BFloat16) and BFCVTN, but we forgot to make those use FPST_AH_F16 when we implemented them. (We get the ASIMD and SVE insns on the list right.) Add the missing logic to select the right FPST. Cc: qemu-stable@nongnu.org Fixes: 465d36db0e1 ("target/arm: Implement SME2 BFCVT, BFCVTN, FCVT, FCVTN") Reviewed-by: Richard Henderson Signed-off-by: Peter Maydell Message-id: 20260521180854.1744788-1-peter.maydell@linaro.org --- target/arm/tcg/translate-sme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index e2d17de165..82aa14131b 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -1449,9 +1449,9 @@ static bool do_zz_fpst(DisasContext *s, arg_zz_n *a, = int data, } =20 TRANS_FEAT(BFCVT, aa64_sme2, do_zz_fpst, a, 0, - FPST_A64, gen_helper_sme2_bfcvt) + s->fpcr_ah ? FPST_AH : FPST_A64, gen_helper_sme2_bfcvt) TRANS_FEAT(BFCVTN, aa64_sme2, do_zz_fpst, a, 0, - FPST_A64, gen_helper_sme2_bfcvtn) + s->fpcr_ah ? FPST_AH : FPST_A64, gen_helper_sme2_bfcvtn) TRANS_FEAT(FCVT_n, aa64_sme2, do_zz_fpst, a, 0, FPST_A64, gen_helper_sme2_fcvt_n) TRANS_FEAT(FCVTN, aa64_sme2, do_zz_fpst, a, 0, --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055360; cv=none; d=zohomail.com; s=zohoarc; b=Dyz7ce9+PAR0GtoGA/CTwBgOKPw2bW23Kfd+dsEjsFHK9wLru0MiY4lPuAHlLBynf1Rijn41W6PJOm4nPXuJvLaDq+itUL8Ixol1hMBU2sXpvMAyGI7pLcp8rmUoWd8Q4Y2l9PdocJICiJWHsQqbP2bMZ621aTpFiQ9zUUMhesY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055360; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=vwSDr23/yqJtm1sOj694gpdNPiF/wTTGWdWIzGDRjgQ=; b=jBl71G8Z2gBqk3UrfHbBoQyxE+zs4RWUcnOE/NkBlItbKbas8IdTnWRCRbBOGs1OfWW8MoFstl31QZLdRDu7CDxvx/RKL7SUeGQlQcBANMRysgL7jM44MsOqjPWskAttv0ayI4YgyHbEUijGrcCE7gLDj+iHdPT5zRV9m0XJSoY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178005536096267.38742846794776; Fri, 29 May 2026 04:49:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgs-0001i9-6B; Fri, 29 May 2026 07:47:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgp-0001er-42 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:47 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgn-0008E8-56 for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:46 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-45ef56d9b67so149095f8f.2 for ; Fri, 29 May 2026 04:47:44 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055264; x=1780660064; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=vwSDr23/yqJtm1sOj694gpdNPiF/wTTGWdWIzGDRjgQ=; b=mpABK/zN0Aa/LHj6J64W/kYRkO3sYBUpYNh3SqPbplEOX5q4z2GR5hTt7UeU2/0Q55 tGaVmoUAPUAbIJJyZjQONjsf0w/pxW/RSHT+I5eKm2mlhyczUtDz17IIs6yKM+GTgufN ib/hmWj46xkc/kyGxUZwUk3DqvUss/jaSNHyro+QyrDDEA+K/IyAiCfZhRRz+Ypit9T4 SMRooCHOIMMrlPFKa+deG6KXVl1gsoNkHMMjEb3tJ6sFqozc4tfCoFx1DZmhmQy7S1WR pl7VrgvB43Pqjcycicap9VsPrXvB4uKJAL6SvAhrpA1uUO8QZyUMUerSKdfQnbNqf3PY ghdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055264; x=1780660064; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=vwSDr23/yqJtm1sOj694gpdNPiF/wTTGWdWIzGDRjgQ=; b=Ndw1McrON8x0gmACtaMkhAvOjauNe6KPll1eQLwuOCP+r2vIjX9IFOhVfuF/1H9a9M 0tJPdoWF6E1EdQOmHZjLSqkdLJly0Liao+L9r6JkyCsu4VhkbfCwwdDKyJukrXHcxBYc 19Z2q4hGXh7UZrOjxKjHX4eS7umt87ApwSZpmKZrFmlUSh18ycKv8aAqVnrypE7IukFI GEVh+L0IY+fUsULR2NeDRAYL0lJOr/JtV0bTvGhp6Gn5mAsVKZoNvL4AjSVjciuLkgU6 cWUJAEx9z2Q5F/z7lzfzwBL0/KXkr7bTwqWYk6Fz6OVMit/7lu4LB0M7ZwHbKd0tw0hp RDqA== X-Gm-Message-State: AOJu0YxmqXR5nySrwOSVORzrkwi3bKGKqdNov1lZw4RmrlqWNFOOmn6q QLPXczBvGNSVxKbw3pWyg8d4J5dxGY73VWd5vtFbuao7oXNTs1AiePtSHEALkgH9YHRYqn7eBD9 uQxsL X-Gm-Gg: Acq92OEbWvewdCNzYaOkBd6jHpBtbmOUc6yP+FyZ5+NlyTl2uaoAd/VZMT6eNd71xGE woS+bpbiDfhxevwD4EE8H64ifhvsUVpQ3d5x5JzjvqUxDqfUejOlkZ3ilsXsGaCV4ZEImuo4E4q tLCeglNKQ4vk25FUIu90quGZ6SyOEcfBEcUz7aVUrMwEruSE6YT9b/EKSaWDLQwPhBBTIelJm4W 3sNfhayT7fzzHBJ9J0z7+dMhArgErl/dSRoIjiSuZvEkYVteyeOb5hJ46fJfXCSTnMdMTB2XVG5 3GCPUAPMdfO4kZWG8zi47x+kJK7hYFjw1JDYU/iyO+Ag3GVLpcczNQ8bBJTIepp+JdCH5WhMMEP L58hVa3p6iuSpGD1L5mTzSCCF7xf1nuuKrSkzX0QEVfszdOoHczfA/Sk+PdYSMEuwUtaaKDhjRR 0tke0z3OIMdVJ2iJnVQWpNIs0gYoTWEGikt06+gcY+ZjEWgiDrXVk8ybKq7m55bqBefWjgaC/vt JTY6tSZPZYh0l89Q+vmNnleKWkDB6DH0Govs1Q5pg== X-Received: by 2002:a05:6000:41e2:b0:45e:6518:21ad with SMTP id ffacd0b85a97d-45ef13fdceamr4169274f8f.3.1780055263605; Fri, 29 May 2026 04:47:43 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 17/21] target/arm: implement FEAT_RNG_TRAP for RNDR/RNDRRS Date: Fri, 29 May 2026 12:47:18 +0100 Message-ID: <20260529114723.42040-18-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055364093154100 Content-Type: text/plain; charset="utf-8" From: Jason Wright Add an .accessfn to the RNDR and RNDRRS system registers that traps reads to EL3 when SCR_EL3.TRNDR is set, as required by FEAT_RNG_TRAP. Mark SCR_EL3.TRNDR (bit 40) as a writable field in scr_write() when the CPU advertises the feature. The pseudocode in DDI0487 revision M.b shows the trap firing from EL0, EL1, EL2, and EL3, so there is no check of arm_current_el(). When FEAT_RNG_TRAP is implemented without FEAT_RNG, an RNDR/RNDRRS read with SCR_EL3.TRNDR=3D0 should UNDEF rather than succeed; handle that case in access_rndr(). Register the rndr_reginfo CP reg entries whenever either FEAT_RNG or FEAT_RNG_TRAP is implemented, so the accessfn fires even on a FEAT_RNG_TRAP-only CPU. When SCR_EL3.TRNDR is set, ID_AA64ISAR0_EL1.RNDR reads as 1 regardless of whether FEAT_RNG is implemented; give ID_AA64ISAR0_EL1 a readfn so it reports this at runtime, as we already do for ID_AA64PFR0_EL1. Suggested-by: Richard Henderson Suggested-by: Peter Maydell Signed-off-by: Jason Wright Reviewed-by: Richard Henderson Signed-off-by: Peter Maydell --- target/arm/cpu-features.h | 5 ++++ target/arm/helper.c | 58 +++++++++++++++++++++++++++++++++++---- 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 4e8d844fea..38a695ded7 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -908,6 +908,11 @@ static inline bool isar_feature_aa64_rndr(const ARMISA= Registers *id) return FIELD_EX64_IDREG(id, ID_AA64ISAR0, RNDR) !=3D 0; } =20 +static inline bool isar_feature_aa64_rng_trap(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64PFR1, RNDR_TRAP) !=3D 0; +} + static inline bool isar_feature_aa64_tlbirange(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ISAR0, TLB) =3D=3D 2; diff --git a/target/arm/helper.c b/target/arm/helper.c index 34487eeaa3..9dd8fdfa41 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -790,6 +790,9 @@ static void scr_write(CPUARMState *env, const ARMCPRegI= nfo *ri, uint64_t value) if (cpu_isar_feature(aa64_fpmr, cpu)) { valid_mask |=3D SCR_ENFPM; } + if (cpu_isar_feature(aa64_rng_trap, cpu)) { + valid_mask |=3D SCR_TRNDR; + } } else { valid_mask &=3D ~(SCR_RW | SCR_ST); if (cpu_isar_feature(aa32_ras, cpu)) { @@ -5170,6 +5173,21 @@ static uint64_t id_aa64pfr0_read(CPUARMState *env, c= onst ARMCPRegInfo *ri) } return pfr0; } + +static uint64_t id_aa64isar0_read(CPUARMState *env, const ARMCPRegInfo *ri) +{ + ARMCPU *cpu =3D env_archcpu(env); + uint64_t isar0 =3D GET_IDREG(&cpu->isar, ID_AA64ISAR0); + + /* + * When FEAT_RNG_TRAP is active (SCR_EL3.TRNDR set), ID_AA64ISAR0_EL1.= RNDR + * reads as 1 regardless of whether FEAT_RNG is implemented. + */ + if (env->cp15.scr_el3 & SCR_TRNDR) { + isar0 =3D FIELD_DP64(isar0, ID_AA64ISAR0, RNDR, 1); + } + return isar0; +} #endif =20 /* @@ -5304,6 +5322,22 @@ static const ARMCPRegInfo pauth_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, keys.apib.hi) }, }; =20 +static CPAccessResult access_rndr(CPUARMState *env, const ARMCPRegInfo *ri, + bool isread) +{ + if (env->cp15.scr_el3 & SCR_TRNDR) { + return CP_ACCESS_TRAP_EL3; + } + /* + * Note that FEAT_RNG_TRAP may be implemented without FEAT_RNG. + * In that case, if the trap is not enabled, the read undefs. + */ + if (!cpu_isar_feature(aa64_rndr, env_archcpu(env))) { + return CP_ACCESS_UNDEFINED; + } + return CP_ACCESS_OK; +} + static uint64_t rndr_readfn(CPUARMState *env, const ARMCPRegInfo *ri) { Error *err =3D NULL; @@ -5335,11 +5369,11 @@ static const ARMCPRegInfo rndr_reginfo[] =3D { { .name =3D "RNDR", .state =3D ARM_CP_STATE_AA64, .type =3D ARM_CP_NO_RAW | ARM_CP_SUPPRESS_TB_END | ARM_CP_IO, .opc0 =3D 3, .opc1 =3D 3, .crn =3D 2, .crm =3D 4, .opc2 =3D 0, - .access =3D PL0_R, .readfn =3D rndr_readfn }, + .access =3D PL0_R, .accessfn =3D access_rndr, .readfn =3D rndr_readf= n }, { .name =3D "RNDRRS", .state =3D ARM_CP_STATE_AA64, .type =3D ARM_CP_NO_RAW | ARM_CP_SUPPRESS_TB_END | ARM_CP_IO, .opc0 =3D 3, .opc1 =3D 3, .crn =3D 2, .crm =3D 4, .opc2 =3D 1, - .access =3D PL0_R, .readfn =3D rndr_readfn }, + .access =3D PL0_R, .accessfn =3D access_rndr, .readfn =3D rndr_readf= n }, }; =20 static void dccvap_writefn(CPUARMState *env, const ARMCPRegInfo *ri, @@ -6522,11 +6556,24 @@ void register_cp_regs_for_features(ARMCPU *cpu) .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_tid3, .resetvalue =3D 0 }, + /* + * ID_AA64ISAR0_EL1 is not a plain ARM_CP_CONST in system + * emulation because the RNDR field depends on SCR_EL3.TRNDR + * at read time when FEAT_RNG_TRAP is implemented. + */ { .name =3D "ID_AA64ISAR0_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 6, .opc2 =3D = 0, - .access =3D PL1_R, .type =3D ARM_CP_CONST, + .access =3D PL1_R, +#ifdef CONFIG_USER_ONLY + .type =3D ARM_CP_CONST, + .resetvalue =3D GET_IDREG(isar, ID_AA64ISAR0) +#else + .type =3D ARM_CP_NO_RAW, .accessfn =3D access_tid3, - .resetvalue =3D GET_IDREG(isar, ID_AA64ISAR0)}, + .readfn =3D id_aa64isar0_read, + .writefn =3D arm_cp_write_ignore +#endif + }, { .name =3D "ID_AA64ISAR1_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 6, .opc2 =3D = 1, .access =3D PL1_R, .type =3D ARM_CP_CONST, @@ -7454,7 +7501,8 @@ void register_cp_regs_for_features(ARMCPU *cpu) if (cpu_isar_feature(aa64_pauth, cpu)) { define_arm_cp_regs(cpu, pauth_reginfo); } - if (cpu_isar_feature(aa64_rndr, cpu)) { + if (cpu_isar_feature(aa64_rndr, cpu) || + cpu_isar_feature(aa64_rng_trap, cpu)) { define_arm_cp_regs(cpu, rndr_reginfo); } /* Data Cache clean instructions up to PoP */ --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055400; cv=none; d=zohomail.com; s=zohoarc; b=GfVslfBt/QsHgw78M/XuorlI+ok5DiiYEvVvYbRluJRDvsVtNpoqOw2P1mTmW3MYjuoU5GFfu+Z17UNjUQcgIkh8Jw+fF1bvCg6T3JTlqhQZNkRNfei6SiJ6ooQKa/zDHWN60fTgc4fZPWQlMhFHO4bsBOdeUCeOohmCfM2Dzqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055400; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=OmMyNqDcnuHo19CGH900J404XhaIWbyUs/leN5tQe+c=; b=Ap/hh/+A2+nIUEfAufDUVt1xnBkpuWVzitmGe/ELXwMlphh9D9gkCAwiaCbRXt/vddXV0NomUi8dCOBISuUU7ZXNUBT5s1WW8iKolsgcR7Fin+l3ifzYQPxP/mVpm8HRJNTJQkNr+Gno7RiXrwVy4/6IBreqQGGqe+GLK0BsS6U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178005540064090.79010455994126; Fri, 29 May 2026 04:50:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgs-0001iI-KL; Fri, 29 May 2026 07:47:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgq-0001hW-4Y for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:48 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgo-0008EN-Dj for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:47 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-45ef4223be7so262831f8f.2 for ; Fri, 29 May 2026 04:47:46 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055265; x=1780660065; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=OmMyNqDcnuHo19CGH900J404XhaIWbyUs/leN5tQe+c=; b=MPD/UGch1tlg6TjH66P1jEZPRc6zzNiour6KINQufeK5bXjmbnB+yCBDg3VRD0E2ZV pZDRI7hN/RJLZVDf5HHSUdGOowk00j83/qM6Ks6RLuO2s+dfa/ng+oTtW7vev/HxhVYy qt+qhM4mx60u9VHjOiMJTtzFbVxePRdJhXF0osj4gWPSvSdG8bmfkkZ+yhLJejdfbuC1 KR+g/cDnErvHeQiDgQ3J7z4ZfnSwX5grZ3GONSp7JG2h0qUYxgkjIyKeBetshO2+IZK9 yx5yYKN3DP79ndkg1oDBc0ztFJ7hVUBnvZ9ZrHySrZq+eQB349mK8SUrhjk3areTWaN2 1ehQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055265; x=1780660065; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OmMyNqDcnuHo19CGH900J404XhaIWbyUs/leN5tQe+c=; b=QHELzUP/76lZ7sd6UC2ZteO0AjFMaW7sb3zIFUbHnEfBbFVkSmUSFDaWyU1IZ+myz7 fJkkV3p0NDJfmpMNK0SusbA7yUoC3nUhszR0a4hM21FvwcK0cGFlWlt+puScU6+IarGV wht4ADN5AKykCybYrg/YOU00IuMjRfQHb8N7v100sexchUZ3IuaTzS8+1wz0L41CVwyD w3xyMZfIyU3g6YQ/ouHDYMPe6vFcJK0tPkDh4bymf2GJBwx72spmdMw/4Ku+OZW7YK94 J1c6BcXzeXXtZMUTYLFUkFhOg5GvTh/RVThPjLAWl4U58SYoSRnXY4t50t1xKfH2U1An iOUQ== X-Gm-Message-State: AOJu0YwxrfEg/dhwe3dsiX6soSP5LScTJzCkRa4kaOtkBbpO11smSbJ8 4vLpalFL1ttEQvX+mkgNn3jvVPny3FioLGHIxKOA0lO9XQUh0DwdV9vnquKFr20Kc6JwZy3KL+M kr4UI X-Gm-Gg: Acq92OG4aNWu+2MJnymDIGN8jpNaa5Iv03V0mBeEjyT/s2eVIdzZLR9PSyxQkCDIXgn LXrlHOT4+h+9uVQ8fKVOXUMQoVBGrffAWoCRJwtbjvIolCQCcnU1GqpgECk7XyuiQBz/GposaQX 9aZCNdmPtJpIKMx+4K8R7oX1Jl0Q44J3R0RML0GpdFpWa4Wxodizx/OBAN2cn54G+z/ftKz8nT6 wpsCIBAcMaynzs983Cib1ARGa/di4MqX9P4Kk4b+76iQtV+cYImwc0Qqlw9G5uLPgflEmeoy3re klLK0WXI7zQAyZ8S0tyJouEyCYngm8e4GjSk69DS741DI+iJx+SXoQnWR+vGe6ba+8+YZpavnmt kYAjwcb6ZDH463KQ8LL5EhQnSctugtv2kKD55HFvMaEdNS9z9ou3X307oEdpQWPwEUEpegq0nYn MLY8n8CMg8it9ahMk0+Y6pQujWxAq8LLTDFxVSt2dKe0wfhI2H59yjfO4pfRw4W1s+UkxHg2qlp XgMKfqGhS1G6SyvW2vSKPV5OiVh04WhrM45etZmgw== X-Received: by 2002:a05:6000:41f6:b0:45e:f585:2b7f with SMTP id ffacd0b85a97d-45ef5852c9dmr925922f8f.32.1780055264649; Fri, 29 May 2026 04:47:44 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 18/21] target/arm: advertise FEAT_RNG_TRAP on cortex-max Date: Fri, 29 May 2026 12:47:19 +0100 Message-ID: <20260529114723.42040-19-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055402422154100 Content-Type: text/plain; charset="utf-8" From: Jason Wright Set ID_AA64PFR1.RNDR_TRAP=3D1 on the max CPU model so guests and firmware detect FEAT_RNG_TRAP, per the Arm Architecture Reference Manual for A-profile architecture (DDI 0487), and document the feature as emulated in docs/system/arm/emulation.rst. Signed-off-by: Jason Wright Reviewed-by: Richard Henderson Signed-off-by: Peter Maydell --- docs/system/arm/emulation.rst | 1 + target/arm/tcg/cpu64.c | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 37ca4e47b8..18c6355967 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -136,6 +136,7 @@ the following architecture extensions: - FEAT_RME (Realm Management Extension) (NB: support status in QEMU is exp= erimental) - FEAT_RME_GPC2 (RME Granule Protection Check 2 Extension) - FEAT_RNG (Random number generator) +- FEAT_RNG_TRAP (Trapping support for RNDR/RNDRRS) - FEAT_RPRES (Increased precision of FRECPE and FRSQRTE) - FEAT_S1PIE (Stage 1 permission indirections) - FEAT_S2PIE (Stage 2 permission indirections) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index ce76e09d52..1a4f50486d 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1292,6 +1292,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64PFR1, MTE, 3); /* FEAT_MTE3 */ t =3D FIELD_DP64(t, ID_AA64PFR1, RAS_FRAC, 0); /* FEAT_RASv1p1 + FEAT= _DoubleFault */ t =3D FIELD_DP64(t, ID_AA64PFR1, SME, 2); /* FEAT_SME2 */ + t =3D FIELD_DP64(t, ID_AA64PFR1, RNDR_TRAP, 1); /* FEAT_RNG_TRAP */ t =3D FIELD_DP64(t, ID_AA64PFR1, CSV2_FRAC, 0); /* FEAT_CSV2_3 */ t =3D FIELD_DP64(t, ID_AA64PFR1, NMI, 1); /* FEAT_NMI */ t =3D FIELD_DP64(t, ID_AA64PFR1, GCS, 1); /* FEAT_GCS */ --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055397; cv=none; d=zohomail.com; s=zohoarc; b=ZmPjrEtIjCFwnh3IqTFhMgf9oACpcCx+KPCaauXJaFxKAkkH/ZT71NumO/sPntX6iVkxXViTPlvSkGFt0dfWAqwQTlB3Q9u54wIftB46+1e3HRZPtkZeUkhAN1HMVB5J6nNA1obzuHB9xi2cyXHQFRw6ShFOJ8kEOS7zK7X3+Bw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055397; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ramOWrlR3t8XVUyFSiGNcrPRaqjo7C5Q2fq7bwfvjM8=; b=iWamMS+R050moJaIDxc2aSOV9G1YTp5ey08JhxWo9gY8rgqlQNcAeIijQZtf9c6NWGgu312Y4+7JEwg0D0WttAxjf+ySr+jQ+3Whf2hBTS2sOq08dv1kSO39M+VT6150BxyO+eobG4eQbb4FhuYdxBJBs6HdYYhQXjCosGgp01E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055397907818.7959431059955; Fri, 29 May 2026 04:49:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgt-0001iq-58; Fri, 29 May 2026 07:47:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgr-0001hz-9n for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:49 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgp-0008F9-FV for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:49 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-45ef189aa1cso506761f8f.0 for ; Fri, 29 May 2026 04:47:46 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055266; x=1780660066; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ramOWrlR3t8XVUyFSiGNcrPRaqjo7C5Q2fq7bwfvjM8=; b=MySFhFE4a8qH1YUWSEJmrp486+hLm8zksHSL2p61ilQ+1Kti7NOoAsoyO86/LPWPKq 61y6aKtYq7yPihr0R9tZlsq4ZOwTUIYmttpgfCQ2qKVbjiU/rbmfEDSJSkV2+d9TFLQm Wv+w8IdeeJS1aVpUIknlWtoPr40NllUnpquOVqndf1Or8AMrKZNCiOPRiOK5TWLrUQA6 bV7asEX1ed3YnM3z512F8h5S4n7qOiNf8n6914ll+Lmne5+X+nNsCCEfQrYFO1vkihCe znrNYanck5bbp7AW/fa8xJKNQuGlhUtXWUNw9OnsemqgNsJiH1H0tBxnuNB//ou3b4NH sNaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055266; x=1780660066; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ramOWrlR3t8XVUyFSiGNcrPRaqjo7C5Q2fq7bwfvjM8=; b=CoTQpEEJU05p+Lw19rXNKYurBKweQHYsghbSbfFcCiFeLqx6mttTSaDEXeLOAT+jzY TGAefEGKYkL/7v3mxzO7/tquYT0Vlhi5rn7T0OPlv77zKqTPnGwZmh6xk9NF/V1NFRUZ DypJiB4FirCtRIaRYeBMkBj+i54t1X4X1IyXqUJns0Hij7Y7aoyw+79RQq1ZOqekWwrc j1J3BQ+eAT3QqSLLuot/TjT9q5SW0eFVtt/wp3g1s2g7tXTGJdvkIzeu9vfkXsD9Ji/J WgSquZYvY1eHueCvVbAfDnyDg+j/3zgBmo3NZ7uPCiBUbiM5B+KZmAxE6ujlfGgEjXmw bfLQ== X-Gm-Message-State: AOJu0Yzkcm8wYZ0k9giDCvDqq5ZGoHwprumCP4h9/gfZmWdRKYXVRlJf FdGT7FCBblXzRq6VROjOHRsfRcWzje5s4H27w99FaKvI7uiSG1xbab5nw8lslsBCvkJIWYdyssm 2gMON X-Gm-Gg: Acq92OH7ZJFq/1+cn3YVwGeLV0gP2aLBaI5ZUyU5BgHxxL90hP1sakjzuOVyEvk6Fa9 OyHTVzHQ5WzOFFI/mbsb88CBvEFRhV2oaAXHszHEtrtf5SD1CV5WYVC2UFounN/lB8QK9iBfR2t 7JwGJ34gDUC5ndL2lU3VTKn5uofbxhTnXHOvdoHf2T4IB4XCGgmaeZyduI+nUk0Q2OvX0qs3CGo PyRJzToXEa/0pqlwYUf90evw/8p5APnbXmuDnqYUDNdDkTbFTh9DJ6UjgLcfl8bHqZuwFyHSDFo wsH9IA/me1CKqGdsRm9SflIoW9NRZK9MNXTfgyR2xE7eR2hApKMa951ef5z/S/fVxrhiojtVn+Z fXrilcNuueX5FxjghkiqPCPmdtbAUWnj6yF73qwaPlNDSQKOWkwq2etDV9znyp9wDjjvnsyQRGd PQCDH1ajnKWyDwgRdlY8jwne8xZKj02LFW2j87RERkCt1oHq+X6l7jVQL5MCxZu5ke6vkFH4HiX jSrtnW5quyx4Q4tWh885qKMG4IiZ+fFNlEWkpdvjA== X-Received: by 2002:a05:6000:41e2:b0:45e:ea46:ce11 with SMTP id ffacd0b85a97d-45ef13f8ef9mr4418780f8f.14.1780055265950; Fri, 29 May 2026 04:47:45 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 19/21] hw/dma/omap_dma: Remove unused ifdeffed out code Date: Fri, 29 May 2026 12:47:20 +0100 Message-ID: <20260529114723.42040-20-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055400462154100 The OMAP DMA device includes a lot of code which has been disabled via ifdefs for over a decade. Whatever this unfinished development work was, all knowledge of it is long gone, and we're unlikely to be doing any serious work on this device model in future. If we did, we'd likely have to start from scratch. Remove all the ifdeffed out code. We will fix up the indentation in a followup commit that has only whitespace changes. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-id: 20260528152852.3349928-2-peter.maydell@linaro.org --- hw/dma/omap_dma.c | 94 ----------------------------------------------- 1 file changed, 94 deletions(-) diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c index b042e7c59c..a93d9ad196 100644 --- a/hw/dma/omap_dma.c +++ b/hw/dma/omap_dma.c @@ -343,9 +343,6 @@ static void omap_dma_transfer_generic(struct soc_dma_ch= _s *dma) struct omap_dma_channel_s *ch =3D dma->opaque; struct omap_dma_reg_set_s *a =3D &ch->active_set; int bytes =3D dma->bytes; -#ifdef MULTI_REQ - uint16_t status =3D ch->status; -#endif =20 do { /* Transfer a single element */ @@ -362,7 +359,6 @@ static void omap_dma_transfer_generic(struct soc_dma_ch= _s *dma) a->dest +=3D a->elem_delta[1]; a->element ++; =20 -#ifndef MULTI_REQ if (a->element =3D=3D a->elements) { /* End of Frame */ a->element =3D 0; @@ -375,78 +371,6 @@ static void omap_dma_transfer_generic(struct soc_dma_c= h_s *dma) ch->cpc =3D a->dest & 0xffff; } } while ((bytes -=3D ch->data_type)); -#else - /* If the channel is element synchronized, deactivate it */ - if (ch->sync && !ch->fs && !ch->bs) - omap_dma_deactivate_channel(s, ch); - - /* If it is the last frame, set the LAST_FRAME interrupt */ - if (a->element =3D=3D 1 && a->frame =3D=3D a->frames - 1) - if (ch->interrupts & LAST_FRAME_INTR) - ch->status |=3D LAST_FRAME_INTR; - - /* If the half of the frame was reached, set the HALF_FRAME - interrupt */ - if (a->element =3D=3D (a->elements >> 1)) - if (ch->interrupts & HALF_FRAME_INTR) - ch->status |=3D HALF_FRAME_INTR; - - if (ch->fs && ch->bs) { - a->pck_element ++; - /* Check if a full packet has been transferred. */ - if (a->pck_element =3D=3D a->pck_elements) { - a->pck_element =3D 0; - - /* Set the END_PKT interrupt */ - if ((ch->interrupts & END_PKT_INTR) && !ch->src_sync) - ch->status |=3D END_PKT_INTR; - - /* If the channel is packet-synchronized, deactivate it */ - if (ch->sync) - omap_dma_deactivate_channel(s, ch); - } - } - - if (a->element =3D=3D a->elements) { - /* End of Frame */ - a->element =3D 0; - a->src +=3D a->frame_delta[0]; - a->dest +=3D a->frame_delta[1]; - a->frame ++; - - /* If the channel is frame synchronized, deactivate it */ - if (ch->sync && ch->fs && !ch->bs) - omap_dma_deactivate_channel(s, ch); - - /* If the channel is async, update cpc */ - if (!ch->sync) - ch->cpc =3D a->dest & 0xffff; - - /* Set the END_FRAME interrupt */ - if (ch->interrupts & END_FRAME_INTR) - ch->status |=3D END_FRAME_INTR; - - if (a->frame =3D=3D a->frames) { - /* End of Block */ - /* Disable the channel */ - - if (!ch->auto_init) - omap_dma_disable_channel(s, ch); - else if (ch->repeat || ch->end_prog) - omap_dma_channel_load(ch); - else { - ch->waiting_end_prog =3D 1; - omap_dma_deactivate_channel(s, ch); - } - - if (ch->interrupts & END_BLOCK_INTR) - ch->status |=3D END_BLOCK_INTR; - } - } - } while (status =3D=3D ch->status && ch->active); - - omap_dma_interrupts_update(s); -#endif } =20 enum { @@ -475,13 +399,6 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_= s *dma) dest_p =3D &s->mpu->port[ch->port[1]]; if ((!ch->constant_fill && !src_p->addr_valid(s->mpu, a->src)) || (!dest_p->addr_valid(s->mpu, a->dest))) { -#if 0 - /* Bus time-out */ - if (ch->interrupts & TIMEOUT_INTR) - ch->status |=3D TIMEOUT_INTR; - omap_dma_deactivate_channel(s, ch); - continue; -#endif printf("%s: Bus time-out in DMA%i operation\n", __func__, dma->num); } @@ -552,11 +469,6 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_= s *dma) =20 /* Set appropriate interrupts and/or deactivate channels */ =20 -#ifdef MULTI_REQ - /* TODO: should all of this only be done if dma->update, and otherwise - * inside omap_dma_transfer_generic below - check what's faster. */ - if (dma->update) { -#endif =20 /* If the channel is element synchronized, deactivate it */ if (min_elems =3D=3D elements[omap_dma_intr_element_sync]) @@ -612,9 +524,7 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_s= *dma) =20 /* TODO: check if we really need to update anything here or perhap= s we * can skip part of this. */ -#ifndef MULTI_REQ if (dma->update) { -#endif a->element +=3D min_elems; =20 frames =3D a->element / a->elements; @@ -629,11 +539,7 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_= s *dma) =20 /* TODO: if the destination port is IMIF or EMIFF, set the dir= ty * bits on it. */ -#ifndef MULTI_REQ } -#else - } -#endif =20 omap_dma_interrupts_update(s); } --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055336; cv=none; d=zohomail.com; s=zohoarc; b=PGoHDU+TXhAsR2d9h7IodVhRSawQHn41IoH2/U9caWpuI1E6bW8L4EGHOq8ZW2LYTf9feg/dUWSdSu/bz8gTvDgx3SHtbV524OoiwRjY88AQ2XThz4qey/7DTISQsk8/JA0ecwY45/orJySSgDrC/H8Uwm/NYSoJbRsIAa68KcY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055336; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=5EAWUWr4AJq45/iqbCnBFS2ikIkq25zXWdRXk2fFgzs=; b=eO1/rvi93+2RuP5djXjYpZ16SrPpL+L4t6Vq9gOXVCrJzucZ4sZdiR+WTnOjV/e9QkRwePmM2m3DDCET+meHOz5dqjEaj2BT/+6QjpWztYvPjFQJIege3UQ/pP2d1W7qzEjYeMNXOE+1MJbOxzIPqzYS0t/l/Grxp0W8wzT7Bk8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055336892539.1016635026442; Fri, 29 May 2026 04:48:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgu-0001k7-So; Fri, 29 May 2026 07:47:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgs-0001iH-Dx for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:50 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgq-0008FJ-Ke for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:50 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-45ef5146b56so177682f8f.0 for ; Fri, 29 May 2026 04:47:48 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055267; x=1780660067; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=5EAWUWr4AJq45/iqbCnBFS2ikIkq25zXWdRXk2fFgzs=; b=RHDRfpP5zmqXw7Vslh2ynBJqlFv017JxGcYkSGAqKzDxFTodG8c2plgAc7JGNLmNXs yObk2FEry41B0KrJ3gs5hd6qlX55XjqqJCv3xPFiMPpXeTAw8BU2TJSdc//jc9p8Rjrj HX5p4/2Q/JP0TmN6r/bo5ojDiSQ/O1f0UtGq6f78czhmQPWRMMYcyt1Lr6Yn4lrcSY8o iyymK9Kvdg5DdKwneiRGyMNVkRadno3mrLZ6zKfdtbfx5O69aWog7Zs5Cl9mS7q7b2+M n5U9jb8xpTj9V4ImEWJJEeYgf+qq6/QJ1OgcGhuSKi2C6RFuRCkKlOEQP1y1oO11O7m/ Sfxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055267; x=1780660067; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5EAWUWr4AJq45/iqbCnBFS2ikIkq25zXWdRXk2fFgzs=; b=CA9FBcvlBmujbvaXOPHX9AQN1ImEcrUgIYVu74cahaQS56Bh576lUDIkpRtgRbhJn2 SO4JVQQPeHIlIc+0VwFquh+06Iklnx/3paumXv2K0Ne9UNSXc4c10gpeNZ786hx0uCx1 1teyNnsXaErwc1dy66WON9kDdPb9ZPhCP+RM2dnvQ9HhIb/5UptUjxcjKGgEATjhoSRx YEPOx7j9cAVzPfnVB9ZbL8lilqd+iIJZsh8NElju9kTWz9ylPZ//EqpFMTgsqudBbcAb 0xDeX2iB2oVnlzgp4Sfu/Ik+o7cHXw/7rXCyt7G/EfVUbhpZc76LvJ3HHoBHs1N13K0x XZkQ== X-Gm-Message-State: AOJu0YwgLnmowiK9tNI5f5x2dkHaBpO81kOVIMDSyHtgbRsfvdS3lblp XPt6UgHzs1RdzmtsYqQ/tvWFioZqUqQRwBBQ3YBdZMawX/8FQQfz2r0RFnfj1zjIozSlk7IvNHs DVuMF X-Gm-Gg: Acq92OEfNhn4WqJgWhsCzdp+bdWX02GVafyx3M/RMKA+lgU+6st/gGU9Vb4WtZ5xCKI AEXypjPWCYWy8bYt1WYyDkIOW1OdStwQFqHS3sAb4jtobqCy2609oNaTuP5Yo2sgPQ3p4YCh2f0 e/plnrr7QWTmRQYQFBXzqVi9C31IjPvr01NQ7EcVdSGv63DgIBBa4YB/Q7F8Q/mIUT0HwfbuTik 14LqIzbdB8BX/4cmK6OidzZLBiFzNgeTMlmn9nlQ2JjDmFbl3o2VuJIcrVU83SFXghy9KmD9AZ6 qtf5gsYovZkJIecNweuWNlCJShtyyuSaO+91bpXh3ovWK+TKKop5ja2m8BG/hoi5TSCEdodu4mU tXSvCKKQzyE4kUF1U2UyK5OoACF+FbvNOVtztsSzcPnPNLsj563droo+dq9Rmrty1RcQCoeKg2L 9OBymJf4NWrhs2apQTy977/gh4HkwIPWcPCkUrB6aCgfst13mZeuGikkLyhO0kCXF3CUNPWgqol wRRv1L+xfMJ/RHtCA9boppOj7mfccjVjaP4SsdGkA== X-Received: by 2002:a05:600d:8498:10b0:490:3d3d:805a with SMTP id 5b1f17b1804b1-4909c14dcfbmr28883435e9.12.1780055267126; Fri, 29 May 2026 04:47:47 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 20/21] hw/dma/omap_dma: Fix coding style in omap_dma_transfer_setup() Date: Fri, 29 May 2026 12:47:21 +0100 Message-ID: <20260529114723.42040-21-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x436.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055339427154100 We're about to fix indent in a section of the omap_dma_transfer_setup() function, which will make checkpatch complain. Since we're touching the code anyway, fix the uses of if() with no braces and wrongly formatted multiline comments. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20260528152852.3349928-3-peter.maydell@linaro.org --- hw/dma/omap_dma.c | 51 ++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c index a93d9ad196..b8bbb707c4 100644 --- a/hw/dma/omap_dma.c +++ b/hw/dma/omap_dma.c @@ -471,49 +471,59 @@ static void omap_dma_transfer_setup(struct soc_dma_ch= _s *dma) =20 =20 /* If the channel is element synchronized, deactivate it */ - if (min_elems =3D=3D elements[omap_dma_intr_element_sync]) + if (min_elems =3D=3D elements[omap_dma_intr_element_sync]) { omap_dma_deactivate_channel(s, ch); + } =20 /* If it is the last frame, set the LAST_FRAME interrupt */ - if (min_elems =3D=3D elements[omap_dma_intr_last_frame]) + if (min_elems =3D=3D elements[omap_dma_intr_last_frame]) { ch->status |=3D LAST_FRAME_INTR; + } =20 - /* If exactly half of the frame was reached, set the HALF_FRAME - interrupt */ - if (min_elems =3D=3D elements[omap_dma_intr_half_frame]) + /* + * If exactly half of the frame was reached, set the HALF_FRAME + * interrupt + */ + if (min_elems =3D=3D elements[omap_dma_intr_half_frame]) { ch->status |=3D HALF_FRAME_INTR; + } =20 /* If a full packet has been transferred, set the END_PKT interrup= t */ - if (min_elems =3D=3D elements[omap_dma_intr_packet]) + if (min_elems =3D=3D elements[omap_dma_intr_packet]) { ch->status |=3D END_PKT_INTR; + } =20 /* If the channel is packet-synchronized, deactivate it */ - if (min_elems =3D=3D elements[omap_dma_intr_packet_sync]) + if (min_elems =3D=3D elements[omap_dma_intr_packet_sync]) { omap_dma_deactivate_channel(s, ch); + } =20 /* If the channel is frame synchronized, deactivate it */ - if (min_elems =3D=3D elements[omap_dma_intr_frame_sync]) + if (min_elems =3D=3D elements[omap_dma_intr_frame_sync]) { omap_dma_deactivate_channel(s, ch); + } =20 /* Set the END_FRAME interrupt */ - if (min_elems =3D=3D elements[omap_dma_intr_frame]) + if (min_elems =3D=3D elements[omap_dma_intr_frame]) { ch->status |=3D END_FRAME_INTR; + } =20 if (min_elems =3D=3D elements[omap_dma_intr_block]) { /* End of Block */ /* Disable the channel */ =20 - if (!ch->auto_init) + if (!ch->auto_init) { omap_dma_disable_channel(s, ch); - else if (ch->repeat || ch->end_prog) + } else if (ch->repeat || ch->end_prog) { omap_dma_channel_load(ch); - else { + } else { ch->waiting_end_prog =3D 1; omap_dma_deactivate_channel(s, ch); } =20 - if (ch->interrupts & END_BLOCK_INTR) + if (ch->interrupts & END_BLOCK_INTR) { ch->status |=3D END_BLOCK_INTR; + } } =20 /* Update packet number */ @@ -522,8 +532,10 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_= s *dma) a->pck_element %=3D a->pck_elements; } =20 - /* TODO: check if we really need to update anything here or perhap= s we - * can skip part of this. */ + /* + * TODO: check if we really need to update anything here or perhap= s we + * can skip part of this. + */ if (dma->update) { a->element +=3D min_elems; =20 @@ -534,11 +546,14 @@ static void omap_dma_transfer_setup(struct soc_dma_ch= _s *dma) a->dest +=3D min_elems * a->elem_delta[1] + frames * a->frame_= delta[1]; =20 /* If the channel is async, update cpc */ - if (!ch->sync && frames) + if (!ch->sync && frames) { ch->cpc =3D a->dest & 0xffff; + } =20 - /* TODO: if the destination port is IMIF or EMIFF, set the dir= ty - * bits on it. */ + /* + * TODO: if the destination port is IMIF or EMIFF, set the dir= ty + * bits on it. + */ } =20 omap_dma_interrupts_update(s); --=20 2.43.0 From nobody Sat May 30 17:44:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1780055389; cv=none; d=zohomail.com; s=zohoarc; b=Gnf6GLkGpyq+cZgy8DcuB+PRWwbhMVNSP2GNbeNxV1Lc5p646NNSfov7ToLkOkrAUGIcFVFcZav0LuNRUhtmdmw0aU5s4NvSH/kWoZURGVmybzg0utdo4dmIdHjDr0X+in65WXOm+5w+8/75VhPaLkugGz+ykimz1IwpJ4KEDaU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780055389; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=6NWO6d9ExJHQj9pOcS0mvnOh3Ls1e0Xs5nWSzTsKqPM=; b=Zh932tfAKvUfmQiOnB6su51otaybVBkWe74nSjCGd6r8ofQJlb+W/TwUj1bdDC6NzEeK7trfVq+72sfOlK+Uvli2gIxwUdhtjVqqf8JVpCMi7MyoLWAtAwC/3bvGPWpCNIy1LJq5BfEfX1ebfPTBy/tZDOT+PBfbzvQ/MVJmGFo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780055389342148.48197544148206; Fri, 29 May 2026 04:49:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSvgv-0001kD-7n; Fri, 29 May 2026 07:47:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSvgt-0001jW-Np for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:51 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wSvgr-0008FS-Me for qemu-devel@nongnu.org; Fri, 29 May 2026 07:47:51 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-45ef189aa1cso506791f8f.0 for ; Fri, 29 May 2026 04:47:49 -0700 (PDT) Received: from lanath.. (wildly.archaic.org.uk. [81.2.115.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3563cb9sm3007358f8f.29.2026.05.29.04.47.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 04:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780055268; x=1780660068; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=6NWO6d9ExJHQj9pOcS0mvnOh3Ls1e0Xs5nWSzTsKqPM=; b=FvujYUbo+lyBESsILMGHfgJDII7aucXpoLBrqJnoaPoHnKnybHKsGWrzUi+t8wduhi IRlBbWwcE0JTXTU/ldJq4eSMHqxLSYHA6lqcA75ubuZwINrsj0xDV5nc9nmLi5KTG/yl iqbngsOZrwYP1UFqzKJuZf4XjlLsOUvEpGgyh0fKFjboRn3tHWDIQ1/TPttnf5WUWzw8 nskxPIYHrMmLwap585h+X1qouQVDG/jjobMb4vyKfwuP5Dsd1uy2XmgYK0hKlpLg46Xe LWA3mz9FcjxQD7scY5gAQ4ErKQ2hwEl7sBaByglGo0oZRZxODQSiRYrvFKQOzVxHQML4 8tEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780055268; x=1780660068; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=6NWO6d9ExJHQj9pOcS0mvnOh3Ls1e0Xs5nWSzTsKqPM=; b=SGttoPNQkUbkBbeAs++JQ/pFrxEPNT8Erokuq/VuTBE43bLuJmHDtmBog4xUBGBw+A hENGJq239SyH9UGcC06BdCljgxtz01zCps5itCUMkzNpmEEbo3p3lbPk6OV2sNHiGxwq XorKXcm3jNt8p/yZkPbickGSRp0UTPimErOXGXR+qHZezrcRFIEmXQiStBbaW7eSjInN IAlxtKG/9IA3WTCxeA5X7rSGJkUioNeaIUzBKUon/qcqhwMD490duRoahicQ0cgTkPTm QeiuFcgdSm1sEs91kLrDsMDf370q3SbsU2O9NfYsDpE68OajghAZiz9eZecBUSX1q+Ba 7u1w== X-Gm-Message-State: AOJu0YwHG2aTQhYRJjcrlEbGUx3PJlRpZhDm9k9Yyliix0HsLgtHBJFL ymFYuzlZK1IPJcfoYSc7WX/UeUxUmQ6U4BP7lP9CGYWOiWlTwxn7nibBoq3kGhQ2ugu7r6WoUDV BJsLT X-Gm-Gg: Acq92OGgAey5qAL/SSRmcXrBbIgN2KDXmJEHoccZUUAYCyhxuZl76MlOTthG7FzhInd zVq+J9PCmlj7TkDlc9rlN+9n5+KuV7cpbOg8zZ9o7qCV8X16sNN7fjOZF0OxlHgO8a0AOTTqFuE mz7/6bZmbjEGZGrYMTRsfucyyloSVy6he51cBS78VYnawZkDc9cXl48ZJnwF1iAQZACBuebtCNE 4XaVgPoUQ/0/q+LOwROaoOW5Rk0WeCb4KJK8xwWwudZDQSu8rOYYWeQx5JrrZgsml7nXMZHCVrW 2e9BESfXcWjTZQ9iwiqfALJohFHTAMWiPRTkQw8vFIKGjmQfFONzIEX608nj+HexOymRqxxmkSA btvDoh6gD4yCex+cPs/Tw+6rr9h8Uci5ZKXlX7qocotdGN+c2s7p3ucMDIT916Wl6+nwub/2bNF 9q9KXp4vc+A+xz/VhgarGfJYgB71X6Hl9QpE/TGk3ZdAroTGyrw+xSZ6LhyeOfPVxnHRwxr5iXO YHuUJL7pWNbewAJGT8uLWFWMi6iDU/7IvhjHugm8A== X-Received: by 2002:adf:e001:0:20b0:441:36b7:725f with SMTP id ffacd0b85a97d-45ef13ed5cbmr3414686f8f.5.1780055268201; Fri, 29 May 2026 04:47:48 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 21/21] hw/dma/omap_dma: Fix indentation after ifdef removal Date: Fri, 29 May 2026 12:47:22 +0100 Message-ID: <20260529114723.42040-22-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260529114723.42040-1-peter.maydell@linaro.org> References: <20260529114723.42040-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x431.google.com 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1780055391509158500 Some of the ifdefs in omap_dma_transfer_setup() which we just removed had if() blocks in them. Now that the code inside them is always unconditional it has an extra unnecessary layer of indentation; fix this, as a whitespace only change. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20260528152852.3349928-4-peter.maydell@linaro.org --- hw/dma/omap_dma.c | 156 +++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c index b8bbb707c4..668fc49054 100644 --- a/hw/dma/omap_dma.c +++ b/hw/dma/omap_dma.c @@ -470,91 +470,91 @@ static void omap_dma_transfer_setup(struct soc_dma_ch= _s *dma) /* Set appropriate interrupts and/or deactivate channels */ =20 =20 - /* If the channel is element synchronized, deactivate it */ - if (min_elems =3D=3D elements[omap_dma_intr_element_sync]) { + /* If the channel is element synchronized, deactivate it */ + if (min_elems =3D=3D elements[omap_dma_intr_element_sync]) { + omap_dma_deactivate_channel(s, ch); + } + + /* If it is the last frame, set the LAST_FRAME interrupt */ + if (min_elems =3D=3D elements[omap_dma_intr_last_frame]) { + ch->status |=3D LAST_FRAME_INTR; + } + + /* + * If exactly half of the frame was reached, set the HALF_FRAME + * interrupt + */ + if (min_elems =3D=3D elements[omap_dma_intr_half_frame]) { + ch->status |=3D HALF_FRAME_INTR; + } + + /* If a full packet has been transferred, set the END_PKT interrupt */ + if (min_elems =3D=3D elements[omap_dma_intr_packet]) { + ch->status |=3D END_PKT_INTR; + } + + /* If the channel is packet-synchronized, deactivate it */ + if (min_elems =3D=3D elements[omap_dma_intr_packet_sync]) { + omap_dma_deactivate_channel(s, ch); + } + + /* If the channel is frame synchronized, deactivate it */ + if (min_elems =3D=3D elements[omap_dma_intr_frame_sync]) { + omap_dma_deactivate_channel(s, ch); + } + + /* Set the END_FRAME interrupt */ + if (min_elems =3D=3D elements[omap_dma_intr_frame]) { + ch->status |=3D END_FRAME_INTR; + } + + if (min_elems =3D=3D elements[omap_dma_intr_block]) { + /* End of Block */ + /* Disable the channel */ + + if (!ch->auto_init) { + omap_dma_disable_channel(s, ch); + } else if (ch->repeat || ch->end_prog) { + omap_dma_channel_load(ch); + } else { + ch->waiting_end_prog =3D 1; omap_dma_deactivate_channel(s, ch); } =20 - /* If it is the last frame, set the LAST_FRAME interrupt */ - if (min_elems =3D=3D elements[omap_dma_intr_last_frame]) { - ch->status |=3D LAST_FRAME_INTR; + if (ch->interrupts & END_BLOCK_INTR) { + ch->status |=3D END_BLOCK_INTR; + } + } + + /* Update packet number */ + if (ch->fs && ch->bs) { + a->pck_element +=3D min_elems; + a->pck_element %=3D a->pck_elements; + } + + /* + * TODO: check if we really need to update anything here or perhaps we + * can skip part of this. + */ + if (dma->update) { + a->element +=3D min_elems; + + frames =3D a->element / a->elements; + a->element =3D a->element % a->elements; + a->frame +=3D frames; + a->src +=3D min_elems * a->elem_delta[0] + frames * a->frame_delta= [0]; + a->dest +=3D min_elems * a->elem_delta[1] + frames * a->frame_delt= a[1]; + + /* If the channel is async, update cpc */ + if (!ch->sync && frames) { + ch->cpc =3D a->dest & 0xffff; } =20 /* - * If exactly half of the frame was reached, set the HALF_FRAME - * interrupt + * TODO: if the destination port is IMIF or EMIFF, set the dirty + * bits on it. */ - if (min_elems =3D=3D elements[omap_dma_intr_half_frame]) { - ch->status |=3D HALF_FRAME_INTR; - } - - /* If a full packet has been transferred, set the END_PKT interrup= t */ - if (min_elems =3D=3D elements[omap_dma_intr_packet]) { - ch->status |=3D END_PKT_INTR; - } - - /* If the channel is packet-synchronized, deactivate it */ - if (min_elems =3D=3D elements[omap_dma_intr_packet_sync]) { - omap_dma_deactivate_channel(s, ch); - } - - /* If the channel is frame synchronized, deactivate it */ - if (min_elems =3D=3D elements[omap_dma_intr_frame_sync]) { - omap_dma_deactivate_channel(s, ch); - } - - /* Set the END_FRAME interrupt */ - if (min_elems =3D=3D elements[omap_dma_intr_frame]) { - ch->status |=3D END_FRAME_INTR; - } - - if (min_elems =3D=3D elements[omap_dma_intr_block]) { - /* End of Block */ - /* Disable the channel */ - - if (!ch->auto_init) { - omap_dma_disable_channel(s, ch); - } else if (ch->repeat || ch->end_prog) { - omap_dma_channel_load(ch); - } else { - ch->waiting_end_prog =3D 1; - omap_dma_deactivate_channel(s, ch); - } - - if (ch->interrupts & END_BLOCK_INTR) { - ch->status |=3D END_BLOCK_INTR; - } - } - - /* Update packet number */ - if (ch->fs && ch->bs) { - a->pck_element +=3D min_elems; - a->pck_element %=3D a->pck_elements; - } - - /* - * TODO: check if we really need to update anything here or perhap= s we - * can skip part of this. - */ - if (dma->update) { - a->element +=3D min_elems; - - frames =3D a->element / a->elements; - a->element =3D a->element % a->elements; - a->frame +=3D frames; - a->src +=3D min_elems * a->elem_delta[0] + frames * a->frame_d= elta[0]; - a->dest +=3D min_elems * a->elem_delta[1] + frames * a->frame_= delta[1]; - - /* If the channel is async, update cpc */ - if (!ch->sync && frames) { - ch->cpc =3D a->dest & 0xffff; - } - - /* - * TODO: if the destination port is IMIF or EMIFF, set the dir= ty - * bits on it. - */ - } + } =20 omap_dma_interrupts_update(s); } --=20 2.43.0