From nobody Mon Feb 9 08:50:58 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=1741565461; cv=none; d=zohomail.com; s=zohoarc; b=I4zVvQwTLFq+J8eKkM4cYA94qelYYoNe3g0P1oPyUltsSW4Hp4FFKJ8XGq5uN/eDSNKNVKLsrNZounSGIjwKAhLIAz6TjCruDQkTS3bBObXwNqCPUHZLPH1hMeFH46iIt/WOWxW2tHZ+eTvPI84rjRxiTXorm7pg5rqGz/PvYcA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741565461; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=5pnCT+L+XCXZVRzhjHTFwBDsZqVtfDpTg3ZhsoQOpQ8=; b=XtHBI8E1Eth3p/tPZj+VZ8h/qWq2eCsqzfNACKUTpWqzIccy4qpSXaZaiupZOxpxaUohWxiMIyZt4yV6o4S3xECIW/gkxoW9jHv+6qviu3Kfqi7DfbcHdFqTOvUpgRkU/8S71axIyH8QbaefPyvyGwj/UhdXCtt3MtMr3viKphA= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741565461283561.1534708653917; Sun, 9 Mar 2025 17:11:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1trQhR-0003RP-FB; Sun, 09 Mar 2025 20:08:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1trQfx-0002Fp-F2 for qemu-devel@nongnu.org; Sun, 09 Mar 2025 20:07:22 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1trQfu-0007RT-47 for qemu-devel@nongnu.org; Sun, 09 Mar 2025 20:07:21 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-38a25d4b9d4so1897144f8f.0 for ; Sun, 09 Mar 2025 17:07:17 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3912bfb7aefsm13011423f8f.20.2025.03.09.17.07.14 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 09 Mar 2025 17:07:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741565236; x=1742170036; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5pnCT+L+XCXZVRzhjHTFwBDsZqVtfDpTg3ZhsoQOpQ8=; b=I/PjIAtKIXTUQLVuwyXA3WaaVPgWf4onGC8j+w9YXYSt1LEsv4k09DSgZue2YZTmf0 cPyTT1/zjWvlLvqPMYV7dId+tM2e/XIbtN2FjKHkaNtMoOVKk4Jy07epll/q8Hf1qSTX KyGOz69YShGTtAUv/G5wEjaHL6FOrSTY6v9eGYcPxSrPNwejVK9W/Pewxa57zCl37H2J OmHHJHek0TSz1IUMKP/vzq0QnmmgMyBRlZFZGS7xR+d5h3/eOj+xHjgLGzhhpaY4LsRb NJA9Ci8Nk9N+7vQxC6CbT146JTbOmodMMC3nYIUKAR9cp2coy676MUmS6ccFvqo8LeXj IfXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741565236; x=1742170036; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5pnCT+L+XCXZVRzhjHTFwBDsZqVtfDpTg3ZhsoQOpQ8=; b=rJoDPPGLJUo/58F9gE2VjhzvstWLD+ROJ2yrDVFcC0lMXnX0H9yCA2Qdpgqzz9i4Qu wDm1X60ox7FjWm8kfD2fqvwc3ouP+7plXna41tFlzXwKVemiyhSOF5ZEDRYzYkHpUuI0 rL0Xeh2WYMpBtWMx1aTl9fi7TB2gMDAtTsYbhpXUg8aBOH/zkRiE2mQAZ4Q0Iiexvzmt PI2RN9Z3caaIFyDNO5EI5I0alD9bUVlPrCB2+3Cd++9DgH0/Dnm78ATnQEN7B6NyWHx/ of4yYG1g9liclBGaTi03WDZpz2cgX+20ezFBFa1f4t+UA4Q2ESZ5qEGCes+lQqm6/WLc RvCw== X-Forwarded-Encrypted: i=1; AJvYcCWv2VbtvoyGC00MxopTNRVRoPxJKvyQLav8JRzY9+dK68KubF8e4oLSTJhFCtPHkGXZ8yzEJb4i/fdC@nongnu.org X-Gm-Message-State: AOJu0YzsmXPMxxDH31LEY2NL/2sJMVkhh9GpJ5NlP1h5RhrqvRLBZVi8 8OqNevZd8j9egba3OkE6aQKocl2k2N8FFWmoA+roWf7fm4FsKiCmWauJ1klMSeE= X-Gm-Gg: ASbGncvzMg+JBvOc9KXwg4r0vilnRXbpZu95EuPX9cUnZxUB6iA1dYhyVwsozIAPqj9 E5w1Cui5P9G2om12Mdv+SxtZBopD+Ecg/mJzfBMCkUUbkCjtQSz0J+NUuEHUkh98xYD/7Q5pBzr m/hlJJfde8eoAE7/wVlGpCATbFWdYb09yp7mLFdxFr9ZxYNS1q1UXTFmxPkK0CVCnmNn4pbFvvy TgxLAr5uN/934YBPzeazMsw8KIG/dD8iuWcpA7ocJneMMXY0ixVG1MHogCLA7qn18XLoSAUgX7P bwdQ+UOR03RC3EGbSTsFsBytbwvCwMxZI/FC49fUt4PcSmdS4nYEnJO7dak5mhygUjIBmchoPDl oWDawufYZ7QMbeMdTt9sfpyD+Sod5DQ== X-Google-Smtp-Source: AGHT+IExOYuUC9c0jjou6VwjYlH1/dVaaW96Dm5KLLx1HJjqlOxdUjGQDNrH5Vb77V7Nv/5RRsA41A== X-Received: by 2002:a05:6000:410a:b0:391:4559:8761 with SMTP id ffacd0b85a97d-39145598929mr1282305f8f.36.1741565236138; Sun, 09 Mar 2025 17:07:16 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: BALATON Zoltan , qemu-devel@nongnu.org Cc: Steven Lee , Joel Stanley , Bernhard Beschow , Peter Maydell , qemu-arm@nongnu.org, Andrey Smirnov , Paolo Bonzini , Bin Meng , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Eduardo Habkost , qemu-ppc@nongnu.org, =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Guenter Roeck , Andrew Jeffery , Troy Lee , Jean-Christophe Dubois , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-block@nongnu.org, Jamin Lin Subject: [PATCH v5 10/14] hw/sd/sdhci: Allow SDHCI classes to register their own read-only regs Date: Mon, 10 Mar 2025 01:06:16 +0100 Message-ID: <20250310000620.70120-11-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250310000620.70120-1-philmd@linaro.org> References: <20250310000620.70120-1-philmd@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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=philmd@linaro.org; helo=mail-wr1-x42f.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1741565462080019000 Some registers are read-only. Since we allow instances to clear/set extra bits of capareg, log when read-only bits normally set by hardware are cleared at board level. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/sd/sdhci.h | 7 +++++++ hw/sd/sdhci.c | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 108bc1993c6..eb21b64f932 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -120,6 +120,13 @@ struct SDHCIClass { const MemoryRegionOps *io_ops; uint32_t quirks; uint64_t iomem_size; + + /* Read-only registers */ + struct { + uint64_t capareg; + uint64_t maxcurr; + uint16_t version; + } ro; }; =20 /* diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 6868bf68285..eb6a0e0f939 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -73,6 +73,7 @@ static bool sdhci_check_capab_freq_range(SDHCIState *s, c= onst char *desc, =20 static void sdhci_check_capareg(SDHCIState *s, Error **errp) { + SDHCIClass *sc =3D s->sc; uint64_t msk =3D s->capareg; uint32_t val; bool y; @@ -208,6 +209,11 @@ static void sdhci_check_capareg(SDHCIState *s, Error *= *errp) qemu_log_mask(LOG_UNIMP, "SDHCI: unknown CAPAB mask: 0x%016" PRIx64 "\n", msk= ); } + msk =3D sc->ro.capareg & ~s->capareg; + if (msk) { + qemu_log_mask(LOG_UNIMP, + "SDHCI: ignored CAPAB mask: 0x%016" PRIx64 "\n", msk= ); + } } =20 static uint8_t sdhci_slotint(SDHCIState *s) @@ -1407,7 +1413,9 @@ static void sdhci_init_readonly_registers(SDHCIState = *s, Error **errp) error_setg(errp, "Only Spec v2/v3 are supported"); return; } - s->version =3D (SDHC_HCVER_VENDOR << 8) | (s->sd_spec_version - 1); + s->version =3D s->sc->ro.version + ?: (SDHC_HCVER_VENDOR << 8) | (s->sd_spec_version - 1); + s->maxcurr =3D s->sc->ro.maxcurr; =20 sdhci_check_capareg(s, errp); if (*errp) { --=20 2.47.1