From nobody Tue Oct 28 12:35:58 2025 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 (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1515015527801833.1078138376121; Wed, 3 Jan 2018 13:38:47 -0800 (PST) Received: from localhost ([::1]:37753 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWqkF-0004v0-6S for importer@patchew.org; Wed, 03 Jan 2018 16:38:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52391) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWqY1-00030G-Gk for qemu-devel@nongnu.org; Wed, 03 Jan 2018 16:26:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWqXt-0008Lv-Kr for qemu-devel@nongnu.org; Wed, 03 Jan 2018 16:26:05 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:37618) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWqXt-0008L8-Eg for qemu-devel@nongnu.org; Wed, 03 Jan 2018 16:25:57 -0500 Received: by mail-qk0-x242.google.com with SMTP id p13so3255573qke.4 for ; Wed, 03 Jan 2018 13:25:57 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id a19sm1104402qtj.74.2018.01.03.13.25.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 13:25:55 -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=snvkTuHmK4qvMBCHqS4/mU8ku5+N0FDLcHAnii7JzgU=; b=Fc2sC6qeq6f4aeAwJSUWNPWVqF4MJUG98eULy53bpTQ/LfjdKrwe3Jj8IIaqGLHrZJ oMHAmg0W2qhcj1UleEypxT/SiM+QGVkvO47PB7VNAojTXsfmZVeaquqtRbLBOwn/IgyO iXTc8Cwac8P/HbevFuieC/YQOL28xsZRH8MjRIqxhAcS7ejjvNU0k4dD5+Mv+fxHfpk7 o5K276fINrLbIeLMRrvnMP7Ua4ZhLFviY31hiEwAyiWl7+ZE2L0DzzMgjkOpCcr1akV5 a3gqLivjI3fq5g24/e+NS/2vUrUbygBMa7ejTV5MWhH73WRdOSiftwXWxLqWOAsTlYyD EhRQ== 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=snvkTuHmK4qvMBCHqS4/mU8ku5+N0FDLcHAnii7JzgU=; b=G+xv0VWN52cXg/XX58zoK+Rhjropd9RWTQlw7g9zJe8cXNOJ/0/tcgXM3Iuc1DUnJD hH1H+RVEnoxtenhjhsYP/dZ+nt1EUkjM9WoTL33zpU4J3bt0J8SBBJCJeTJtRycN/Es7 Rfq+rDTRbD88bWilq+3mo4paSbnMAxJK+o0WHxGonrN9E9TGtjE9Dz6T0hGMz8in54he GC2D6Ae+5TrlaQZYtlNCQYn5IftwTtbOHBZeehbnM7KUIWTgwpzuMlcrm4IQsAnks7jC 5DnpCo5veSHoj1yNX9fXn1R1vw+76rqg6/evLBp3hd+yglR7cGZDj6wz6GFJ3ICNm5d/ a+Rw== X-Gm-Message-State: AKGB3mKs3PYdP3nGMJZv7mD2SyDRDdkii+xXO0Qn20t+NxGjjInscQ1y wjXEIgBPwEjMgTyhCNOlClc= X-Google-Smtp-Source: ACJfBov6nara4nejQNSMPN8ccVbcXqSFm/6K7osWW1b4U3qg6i55BYME2gm+zfSz3nicZvTBEyi9OQ== X-Received: by 10.55.214.198 with SMTP id p67mr3493593qkl.250.1515014756962; Wed, 03 Jan 2018 13:25:56 -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:27 -0300 Message-Id: <20180103212436.15762-17-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::242 Subject: [Qemu-devel] [RFC PATCH v2 16/25] sdcard: add missing SPI legal commands 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 we don't implement them, but when firmware use them we get a UNIMP log. CMD: 58, 59 ACMD: 6, 18, 25, 26, 38, 43 - 49 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index d2a0baa0a7..a8198ecce9 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1324,6 +1324,18 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) } break; =20 + case 58: /* CMD58: READ_OCR (SPI) */ + if (!sd->spi) { + goto bad_cmd; + } + return sd_r3; + + case 59: /* CMD59: CRC_ON_OFF (SPI) */ + if (!sd->spi) { + goto bad_cmd; + } + goto unimplemented_cmd; + default: bad_cmd: qemu_log_mask(LOG_GUEST_ERROR, "SD: Unknown CMD%i\n", req.cmd); @@ -1340,14 +1352,16 @@ static sd_rsp_type_t sd_normal_command(SDState *sd,= SDRequest req) return sd_illegal; } =20 -static sd_rsp_type_t sd_app_command(SDState *sd, - SDRequest req) +static sd_rsp_type_t sd_app_command(SDState *sd, SDRequest req) { trace_sdcard_app_command(sd->proto_name, sd_acmd_abbreviation(req.cmd), req.cmd, req.arg, sd_state_name(sd->state)); sd->card_status |=3D APP_CMD; switch (req.cmd) { case 6: /* ACMD6: SET_BUS_WIDTH */ + if (sd->spi) { + goto unimplemented_cmd; + } if (sd->state =3D=3D sd_transfer_state) { sd->sd_status[0] &=3D 0x3f; sd->sd_status[0] |=3D (req.arg & 0x03) << 6; @@ -1361,7 +1375,12 @@ static sd_rsp_type_t sd_app_command(SDState *sd, sd->data_start =3D 0; sd->data_offset =3D 0; return sd_r1; + } + break; =20 + case 18: + if (sd->spi) { + goto unimplemented_cmd; } break; =20 @@ -1382,6 +1401,19 @@ static sd_rsp_type_t sd_app_command(SDState *sd, } break; =20 + case 25: + case 26: + if (sd->spi) { + goto unimplemented_cmd; + } + break; + + case 38: + if (sd->spi) { + goto unimplemented_cmd; + } + break; + case 41: /* ACMD41: SD_APP_OP_COND */ if (sd->spi) { /* SEND_OP_CMD */ @@ -1428,6 +1460,12 @@ static sd_rsp_type_t sd_app_command(SDState *sd, } break; =20 + case 43 ... 49: + if (sd->spi) { + goto unimplemented_cmd; + } + break; + case 51: /* ACMD51: SEND_SCR */ if (sd->state =3D=3D sd_transfer_state) { sd->state =3D sd_sendingdata_state; @@ -1443,6 +1481,12 @@ static sd_rsp_type_t sd_app_command(SDState *sd, default: /* Fall back to standard commands. */ return sd_normal_command(sd, req); + + unimplemented_cmd: + /* Commands that are recognised but not yet implemented in SPI mod= e. */ + qemu_log_mask(LOG_UNIMP, "SD: CMD%i not implemented in SPI mode\n", + req.cmd); + return sd_illegal; } =20 qemu_log_mask(LOG_GUEST_ERROR, "SD: ACMD%i in a wrong state\n", req.cm= d); --=20 2.15.1