From nobody Mon Feb 9 16:35:19 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1515015156093997.3310521396731; Wed, 3 Jan 2018 13:32:36 -0800 (PST) Received: from localhost ([::1]:37658 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWqeA-0008Ck-Lj for importer@patchew.org; Wed, 03 Jan 2018 16:32:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51684) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWqXO-0002OA-Dl for qemu-devel@nongnu.org; Wed, 03 Jan 2018 16:25:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWqXK-0007uS-1I for qemu-devel@nongnu.org; Wed, 03 Jan 2018 16:25:26 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:33453) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWqXJ-0007tx-Sw for qemu-devel@nongnu.org; Wed, 03 Jan 2018 16:25:21 -0500 Received: by mail-qk0-x244.google.com with SMTP id x7so3255769qkb.0 for ; Wed, 03 Jan 2018 13:25:21 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id a19sm1104402qtj.74.2018.01.03.13.25.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 13:25:20 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=YaRT0n90W+iZBkz3j4BVI/8ejai5AWtvj1jVf55XU8U=; b=pMcC5A7u9IoBW+T2W9sJjgZS2V8iFHOIJ60NOUtKCjfWVlkHuheLhP5RuGnLp0vm8i W32682NAKt8dsblR/qHDIR6tuWLtDx6xF+0rxtod8bWUdbSQLrWuxCEuqJHUjwXCCxvg EhZmX3TUjq8t4zNXxgFh9jEfQlAWIOSTPcrNwj8tD7BiKZm9CKCKip+61xHNUQOtzcsQ FE/Q8yAi1aNyCZfLBKTb1BfB6PQdT/OSqxi2Hzm7PnVhr+LhDev3URBEHQTlV1qD9REh X4xehguPt0peQeZNEm/aqQMzcITPBYkQa8pnwERnoneTTZN+06zd7TYA5q9R0oJnWmfh Vfmw== 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 :in-reply-to:references:mime-version:content-transfer-encoding; bh=YaRT0n90W+iZBkz3j4BVI/8ejai5AWtvj1jVf55XU8U=; b=W1Z8ivaba/tTxpgjLOkiJZ4qxJ1BgviHbezfwJBKEDAMI2bnPrbmXZpVIhvS7fTy25 JhzXROBAPFHMDedVa0NwrVbtQc56jADKD4Uk1Sg6w+1IsHVnly3tuX3G87C2VZHi/Y9X v9eD5S0fjnJn6mVh1Zx9GeNzfXlO5zgwuDnnlcxo/guEb3vqQCHroSPp7QXUGurVSOKy FCAIl4bkk+beuVcgQW2n3mfSWi4WN8VfSiFyu8CwcDDj2DgoELsBJUwbFIUOmi7UidFO aXmnekieCLarB+VsYkmWQUoaaC0+XUdCas7Acj9nMCuJJK+pAJV1RR1jvhSdsgIuq4Rp Xltg== X-Gm-Message-State: AKwxytdblwwFEZhc7+CbUD2SyiuaHFyyOEq3/QtMQgIDxuTKtoZ0C8KI IfxcfoQVhkVAU5B2KSAuJhk= X-Google-Smtp-Source: ACJfBosc1aXU9m0z6Ydk9IEWjkr50CjdlJNJTDct9nZV56TofjoMD5GaI/rL8rekDS8LuFeC2sqMSg== X-Received: by 10.55.16.134 with SMTP id 6mr413317qkq.307.1515014721397; Wed, 03 Jan 2018 13:25:21 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko , Andrew Baumann , Olbrich , Andrzej Zaborowski Date: Wed, 3 Jan 2018 18:24:19 -0300 Message-Id: <20180103212436.15762-9-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103212436.15762-1-f4bug@amsat.org> References: <20180103212436.15762-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v2 08/25] sdcard: use the registerfields API to access the OCR register X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Paul Brook , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 7d43ab072b..1f209b8199 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -32,6 +32,7 @@ #include "qemu/osdep.h" #include "hw/qdev.h" #include "hw/hw.h" +#include "hw/registerfields.h" #include "sysemu/block-backend.h" #include "hw/sd/sd.h" #include "hw/sd/sdcard_legacy.h" @@ -53,8 +54,6 @@ do { fprintf(stderr, "SD: " fmt , ## __VA_ARGS__); } whil= e (0) #endif =20 #define ACMD41_ENQUIRY_MASK 0x00ffffff -#define OCR_POWER_UP 0x80000000 -#define OCR_POWER_DELAY_NS 500000 /* 0.5ms */ =20 #define SDCARD_CMD_MAX 64 =20 @@ -293,6 +292,10 @@ static uint16_t sd_crc16(void *message, size_t width) return shift_reg; } =20 +FIELD(OCR, CARD_POWER_UP, 31, 1); + +#define OCR_POWER_DELAY_NS 500000 /* 0.5ms */ + static void sd_reset_ocr(SDState *sd) { /* All voltages OK, Standard Capacity SD Memory Card, not yet powered = up */ @@ -303,9 +306,10 @@ static void sd_ocr_powerup(void *opaque) { SDState *sd =3D opaque; =20 - /* Set powered up bit in OCR */ - assert(!(sd->ocr & OCR_POWER_UP)); - sd->ocr |=3D OCR_POWER_UP; + assert(!FIELD_EX32(sd->ocr, OCR, CARD_POWER_UP)); + + /* card power-up OK */ + sd->ocr =3D FIELD_DP32(sd->ocr, OCR, CARD_POWER_UP, 1); } =20 static void sd_reset_scr(SDState *sd) @@ -594,7 +598,7 @@ static bool sd_ocr_vmstate_needed(void *opaque) SDState *sd =3D opaque; =20 /* Include the OCR state (and timer) if it is not yet powered up */ - return !(sd->ocr & OCR_POWER_UP); + return !FIELD_EX32(sd->ocr, OCR, CARD_POWER_UP); } =20 static const VMStateDescription sd_ocr_vmstate =3D { @@ -1494,7 +1498,7 @@ static sd_rsp_type_t sd_app_command(SDState *sd, * UEFI, which sends an initial enquiry ACMD41, but * assumes that the card is in ready state as soon as it * sees the power up bit set. */ - if (!(sd->ocr & OCR_POWER_UP)) { + if (!FIELD_EX32(sd->ocr, OCR, CARD_POWER_UP)) { if ((req.arg & ACMD41_ENQUIRY_MASK) !=3D 0) { timer_del(sd->ocr_power_timer); sd_ocr_powerup(sd); --=20 2.15.1