From nobody Mon Feb 9 19:08:51 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.49 as permitted sender) client-ip=209.85.221.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613671012; cv=none; d=zohomail.com; s=zohoarc; b=mKY39I6uDS4oMHi+7znp0G+CzOL8bE5WuuSwMgwYhdBNAseK90nGYDUPabimiBGPaj6rcc2yCqAvdHMwxwdSY/Ax+3td1KJ4HovafvrJUk1pJuWn9gGtckgh/ZSK9OONpP7D4RYfKhPv70eZ4FvnZebXnCVWirLnsArfwaDMU9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613671012; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Sender:Subject:To; bh=U4K5mV9Oj6Q7VuTUZ6Y9QWIDTEEDo3vpgGL+EGjUbzs=; b=citdMrxj2uLhYlvzk79GdIavXOSDQA/oAZgvNdTphl0n/vOoJEWOQ6Ba7qZtPGM5F6oaDHm4WT17aoFuisYXKbPTTxcxj/RXUgkSbtl1AbRGjJV2jzxlfvmKFZX2CwbBvo+stp1t7B6UAPjHaSDrU7ILyjEO+Zbs5vsdLztGKQc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by mx.zohomail.com with SMTPS id 1613671012567491.92504868450953; Thu, 18 Feb 2021 09:56:52 -0800 (PST) Received: by mail-wr1-f49.google.com with SMTP id l12so3971068wry.2 for ; Thu, 18 Feb 2021 09:56:51 -0800 (PST) Return-Path: Return-Path: Received: from localhost.localdomain (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id v12sm10813669wrv.69.2021.02.18.09.56.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Feb 2021 09:56:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=U4K5mV9Oj6Q7VuTUZ6Y9QWIDTEEDo3vpgGL+EGjUbzs=; b=izsRhtu2Ynvx7FgS2WhmdmUvvrf5xRP74YGCGEND0kzGltiroV+RnzoWPCGQCf3zwo pMCLhhJYWlmIrMVbRBakEh1gGnWlrClh5TbjmaNqJ80l9k05FG8G7zfwr3c6x0Grzx1s 1xCHu2n7+AhbPgcEe6ALwczDLqQJO+cWjeA68y1MYmX19Mt0LgMa4aJCZ3dx4EwW3Lc7 xUxkABjhJqcjTUhOh5bjkSDM9kFAwDm9MmeQ0nqySk9V4heoRENeD7ijrFP9g89k8SdX Khgb8x2Wmn02tElL7r+ixFAgYpeJ6hcuef9a4jnOvb2uZpDRcKrSJk1p8mPDYdLUXMkB EMJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=U4K5mV9Oj6Q7VuTUZ6Y9QWIDTEEDo3vpgGL+EGjUbzs=; b=SIc9n6vlz2pW35U3RVcZF7vZwWXy5/dbk1SDrG+bmZPKAv5mBx0msTzsdHuxQdWwT5 e2LIihQ1/v/FPswBn8AJmljm6G+EB6d6wmUFm01DXG407sEb98gcDM1O9iAqNi1id39b yLNBt/PyiyN8TahQ3wvmcur8xvDQT1SpLaxCLP7bh+jp3iOBm6vfPIoW+jFm9XbnPx/e V0CG6++gO6dWAq4OyGO3BTqvhLNS8qGFx1dfN9Jkk3LWxNGcSgYx0n/HBit69XkGSbPe IIdVaUjo5XXZUig8qrESbADNm4bXIr/MmSFWfe7YVUcjTlkxX+sunTS3GDhuCFZogFkY EVUw== X-Gm-Message-State: AOAM5314oHnCTEQxV0w8BK0ds02VHdxXDKAiK36omW0zIAL8HVpvdkGf 0504fqnrLhoKylIml/SreJE= X-Google-Smtp-Source: ABdhPJxfaL6jMMgyQe5CI/4N6F7+kwudKxpEBLsyCd5M1EGHngXH1KTAFT0M8LnJ9R5hLRfmfTRlhA== X-Received: by 2002:adf:f905:: with SMTP id b5mr5204767wrr.129.1613671010785; Thu, 18 Feb 2021 09:56:50 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bin Meng Subject: [PATCH] hw/sd/sdhci: Report error when guest access protected registers Date: Thu, 18 Feb 2021 18:56:48 +0100 Message-Id: <20210218175648.1636219-1-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) The SDHC_SYSAD and SDHC_BLKSIZE can not be accessed while a transaction is in progress, see 'SD Host Controller Simplified Specification' 1.5) SD Command Generation The Host Driver should not read the SDMA System Address, Block Size and Block Count registers during a data transaction unless the transfer is stopped because the value is changing and not stable. Report guest intents as errors. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng --- Based-on: <1613447214-81951-1-git-send-email-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 5b8678110b0..98928c18542 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1136,6 +1136,10 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t va= l, unsigned size) sdhci_sdma_transfer_single_block(s); } } + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Transfer already in progress," + " can not update SYSAD", __func__); } break; case SDHC_BLKSIZE: @@ -1163,8 +1167,11 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t va= l, unsigned size) if (blksize !=3D s->blksize) { s->data_count =3D 0; } + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Transfer already in progress," + " can not update BLKSIZE", __func__); } - break; case SDHC_ARGUMENT: MASKED_WRITE(s->argument, mask, value); --=20 2.26.2