From nobody Mon Feb 9 23:07:58 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of _spf.google.com designates 209.85.216.195 as permitted sender) client-ip=209.85.216.195; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-qt0-f195.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of _spf.google.com designates 209.85.216.195 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-qt0-f195.google.com (mail-qt0-f195.google.com [209.85.216.195]) by mx.zohomail.com with SMTPS id 1518732833166702.4605128370656; Thu, 15 Feb 2018 14:13:53 -0800 (PST) Received: by mail-qt0-f195.google.com with SMTP id k13so1634077qtg.5 for ; Thu, 15 Feb 2018 14:13:52 -0800 (PST) Return-Path: Return-Path: Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id t5sm10732075qtn.44.2018.02.15.14.13.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Feb 2018 14:13:51 -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=v8J0cgJfZiMQFBGPXVMglqaG+uomzPi6vpMeIWRfanc=; b=tiKmr2RNgvTANHgpXZ9vpGTJ1XeNLdRy7uZOaecrLpMJfHe8HNY1KG0wugxDcUaH+1 mosnTcVJMHiM4WS8udPtrL55uornEPzjD4jZQdWQIu41afadkTdMr/R4VpFU1hSAjHqr O+BU+d9kL92rZCyb77HWSxFx9J2vNVMNz3mp2FrRWZNLg/zwbqgalw6g+nPVN/8GN2Ps eg4KaQkYi1+F6zC38+jPgtBl6uDWM8djUiRPVmrCWfgsnA6pKPmYDD0Aclh9+rrJq8P7 QB8NSpp9tUCWW8EyuvhxWAtA0muhTUpRlaot6qCRI8PEfASSxkxl+f3FAbvmQXxLFpxf 5fMQ== 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=v8J0cgJfZiMQFBGPXVMglqaG+uomzPi6vpMeIWRfanc=; b=U51GvmHE9SF5XgudAFd+7EbN4AaJSHg6Lo6CJ5R+zS8Sv4osTYVeUsL78DDwOtKzo8 sgKdUGlKbHhBU0UrPqbFshUtb4jIhxX+qMAnRwGH5W213JC8t528mDT2ca5wM2Kkq4qK iDJ3JZocUxUHFVLYvs+ypjG2UyZwLiH/BlsgM5cBm3eQtO32t7UeapffVJa+GZGkY8uG 8dv+LcPntIR8ZAwU+IrfYEct4nQU7nz+u8I5sU+V/j91VL6QKIsfSh9EPkNgXrn7ThH1 p3W2T1nWIU6EZupFnphIoEBGYNwNl5U4tWSXYnPFwifplFvwhw38MZKlw5rgpVzDF/zJ 60/Q== X-Gm-Message-State: APf1xPCSjurSBnjpU1966FnKzRrOpmY63jplnQ2DN0JywCD0Ol6v/Iv3 +amhlLkyWFZVVV+e6a5cQgU= X-Google-Smtp-Source: AH8x226c7xt1IhHH/kv6W5WsUrtVfD+L2Fi61m23mOVWu//dhBrZwqrbUTuvkGZBeOBdVYScatEkDQ== X-Received: by 10.200.13.9 with SMTP id q9mr6900798qti.133.1518732832330; Thu, 15 Feb 2018 14:13:52 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, "Edgar E . Iglesias" , Prasad J Pandit , Andrzej Zaborowski Subject: [PATCH v4 07/20] sdcard: use the correct masked OCR in the R3 reply Date: Thu, 15 Feb 2018 19:13:12 -0300 Message-Id: <20180215221325.7611-8-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180215221325.7611-1-f4bug@amsat.org> References: <20180215221325.7611-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZohoMail: RDKM_0 RSF_0 Z_629925259 SPT_0 use the registerfields API to access the OCR register Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sd.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index b43baa2edd..3970e590e6 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -47,8 +47,6 @@ =20 //#define DEBUG_SD 1 =20 -#define ACMD41_ENQUIRY_MASK 0x00ffffff - typedef enum { sd_r0 =3D 0, /* no response */ sd_r1, /* normal response command */ @@ -273,13 +271,26 @@ static uint16_t sd_crc16(void *message, size_t width) =20 #define OCR_POWER_DELAY_NS 500000 /* 0.5ms */ =20 +FIELD(OCR, VDD_VOLTAGE_WINDOW, 0, 24) +FIELD(OCR, VDD_VOLTAGE_WIN_LO, 0, 8) +FIELD(OCR, DUAL_VOLTAGE_CARD, 7, 1) +FIELD(OCR, VDD_VOLTAGE_WIN_HI, 8, 16) +FIELD(OCR, ACCEPT_SWITCH_1V8, 24, 1) /* Only UHS-I */ +FIELD(OCR, UHS_II_CARD, 29, 1) /* Only UHS-II */ FIELD(OCR, CARD_CAPACITY, 30, 1) /* 0:SDSC, 1:SDHC/SDXC */ FIELD(OCR, CARD_POWER_UP, 31, 1) =20 +#define ACMD41_ENQUIRY_MASK 0x00ffffff +#define ACMD41_R3_MASK (R_OCR_VDD_VOLTAGE_WIN_HI_MASK \ + | R_OCR_ACCEPT_SWITCH_1V8_MASK \ + | R_OCR_UHS_II_CARD_MASK \ + | R_OCR_CARD_CAPACITY_MASK \ + | R_OCR_CARD_POWER_UP_MASK) + static void sd_set_ocr(SDState *sd) { - /* All voltages OK, Standard Capacity SD Memory Card, not yet powered = up */ - sd->ocr =3D 0x00ffff00; + /* All voltages OK */ + sd->ocr =3D R_OCR_VDD_VOLTAGE_WIN_HI_MASK; } =20 static void sd_ocr_powerup(void *opaque) @@ -447,7 +458,7 @@ static void sd_response_r1_make(SDState *sd, uint8_t *r= esponse) =20 static void sd_response_r3_make(SDState *sd, uint8_t *response) { - stl_be_p(response, sd->ocr); + stl_be_p(response, sd->ocr & ACMD41_R3_MASK); } =20 static void sd_response_r6_make(SDState *sd, uint8_t *response) --=20 2.16.1