From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.53 as permitted sender) client-ip=209.85.218.53; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f53.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1613779999; cv=none; d=zohomail.com; s=zohoarc; b=V2SADuWmRjZT0TiOBT7kgOD354aYNkg05ccNH1t8fEj2fme7pnNYVkbwAlkB4mVAf37rZSIMohbLh3CwXOs17Ce9i0OtxOyuzbRNZBDtMOluYPpfckAQG8NbPnxCQNrmfPPOC3fWUkSGej8Ph0kPoJcyDtrnZhoHFJ47bh9Y6qw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613779999; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/u/xjf4UYFb69kyu3yFPBKnJe5Gy0CQG9X8dWyHsftQ=; b=VhgEZhEw360JNRwxDWhqR81ixKQcGULD5/YZfxtlVV3FaE9wGVIDk6B9fC+FQEX7feGaJz8Q/DI9opxnO8cjFlt67mjfyLSmNeyv9hD32qTHIQ+S7z8Sb5cBdBd4Iu4JKqmrgL6y8s0pa95Sw9BR8WAxkcRBz7mr4eaMtC3MGL4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by mx.zohomail.com with SMTPS id 1613779999367606.8854166523727; Fri, 19 Feb 2021 16:13:19 -0800 (PST) Received: by mail-ej1-f53.google.com with SMTP id hs11so16977945ejc.1 for ; Fri, 19 Feb 2021 16:13:18 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id kz4sm5357871ejc.38.2021.02.19.16.13.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:16 -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=/u/xjf4UYFb69kyu3yFPBKnJe5Gy0CQG9X8dWyHsftQ=; b=VIzQS8y+ecHm3uvQeKJVueeuStSdzbRKyYrXRQqvX0q12Yjf2HoyHbhhGaw+o6CQGG nbvLtHxLA1WMIYO0CZcXVf4ncGWXTX3Sr7JZMjOP9BlEy51/sibKusyYTPaZopb+oGQf +DTslNjynxk78V2NLehCRBdI8UcsThNt1xfc+HzrikV4JRPa9fxUXWeoG5rHo0mPR+gs ps3P8a//pVDfS+BovAlQcFM5AlTeK2xZzyvBJvPE07hYLiSHNEj6ojJ4NmHJTPDOLOh1 DHtI/Fo5W9T2BrGHM0u48SgyqIuIfh+LTHKZK/NntmwbHWNcw2adYSUauzZPlQ2FXsZd C46Q== 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=/u/xjf4UYFb69kyu3yFPBKnJe5Gy0CQG9X8dWyHsftQ=; b=QVSL3uGDtoEXVSxb7FfC11t2ixj+gKcXYF3BuNWPpv4kvCogE7nDTyyp/GXGp0Jh/x e1lfHvyGGNWf8rm9LT/AsTO4ldbmPxtTwXRJWi1tb9pMwLbPjIR5pi8GJFRDU2Hazjzk fNxJQVJHgfMzdPL+2FpH7wsg1BIfHz07JgjvqIXrz5OEPFeN1+DfaUzx4GPvHxJG7AC3 e21u53QO6yA4397gPL59qvGYSeynxwNAnCe8vQmxIJsom/ZWB8P4JBfSlEWj9n765jB+ EvlC8DRHfxkzBGi9D2ySSFJPvv4KLLPU6nDt6cqNr5v+7pfYMJCE8Xh8tArB/EUHexG+ c5BA== X-Gm-Message-State: AOAM530NU7QoKZzzx/yJhLdlljCQfA5uDdOlAePEcNjfmybM9l6BVP9Q 81oSRl/fR6T1qcN3EKS95l0= X-Google-Smtp-Source: ABdhPJwkT4QxH8ZRDePCzdamCNx+78ChKXQiAknGagchqWQdrRVF8eWanV0n5x2M/vTMkX8Y0uYrbw== X-Received: by 2002:a17:906:9259:: with SMTP id c25mr10982020ejx.37.1613779997553; Fri, 19 Feb 2021 16:13:17 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 01/18] hw/sd: ssi-sd: Support multiple block read Date: Sat, 20 Feb 2021 01:12:52 +0100 Message-Id: <20210220001309.2225022-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng In the case of a multiple block read operation every transferred block has its suffix of CRC16. Update the state machine logic to handle multiple block read. Signed-off-by: Bin Meng [PMD: Change VMState version id 5 -> 6] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Message-Id: <20210128063035.15674-2-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/ssi-sd.c | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index be1bb101645..6d20a240c69 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -52,6 +52,7 @@ struct ssi_sd_state { uint8_t cmdarg[4]; uint8_t response[5]; uint16_t crc16; + int32_t read_bytes; int32_t arglen; int32_t response_pos; int32_t stopping; @@ -88,11 +89,26 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uin= t32_t val) { ssi_sd_state *s =3D SSI_SD(dev); =20 - /* Special case: allow CMD12 (STOP TRANSMISSION) while reading data. = */ - if (s->mode =3D=3D SSI_SD_DATA_READ && val =3D=3D 0x4c) { - s->mode =3D SSI_SD_CMD; - /* There must be at least one byte delay before the card responds.= */ - s->stopping =3D 1; + /* + * Special case: allow CMD12 (STOP TRANSMISSION) while reading data. + * + * See "Physical Layer Specification Version 8.00" chapter 7.5.2.2, + * to avoid conflict between CMD12 response and next data block, + * timing of CMD12 should be controlled as follows: + * + * - CMD12 issued at the timing that end bit of CMD12 and end bit of + * data block is overlapped + * - CMD12 issued after one clock cycle after host receives a token + * (either Start Block token or Data Error token) + * + * We need to catch CMD12 in all of the data read states. + */ + if (s->mode >=3D SSI_SD_PREP_DATA && s->mode <=3D SSI_SD_DATA_CRC16) { + if (val =3D=3D 0x4c) { + s->mode =3D SSI_SD_CMD; + /* There must be at least one byte delay before the card respo= nds */ + s->stopping =3D 1; + } } =20 switch (s->mode) { @@ -212,8 +228,9 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uin= t32_t val) return SSI_TOKEN_SINGLE; case SSI_SD_DATA_READ: val =3D sdbus_read_byte(&s->sdbus); + s->read_bytes++; s->crc16 =3D crc_ccitt_false(s->crc16, (uint8_t *)&val, 1); - if (!sdbus_data_ready(&s->sdbus)) { + if (!sdbus_data_ready(&s->sdbus) || s->read_bytes =3D=3D 512) { DPRINTF("Data read end\n"); s->mode =3D SSI_SD_DATA_CRC16; } @@ -224,7 +241,12 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, ui= nt32_t val) s->response_pos++; if (s->response_pos =3D=3D 2) { DPRINTF("CRC16 read end\n"); - s->mode =3D SSI_SD_CMD; + if (s->read_bytes =3D=3D 512 && s->cmd !=3D 17) { + s->mode =3D SSI_SD_PREP_DATA; + } else { + s->mode =3D SSI_SD_CMD; + } + s->read_bytes =3D 0; s->response_pos =3D 0; } return val; @@ -255,8 +277,8 @@ static int ssi_sd_post_load(void *opaque, int version_i= d) =20 static const VMStateDescription vmstate_ssi_sd =3D { .name =3D "ssi_sd", - .version_id =3D 5, - .minimum_version_id =3D 5, + .version_id =3D 6, + .minimum_version_id =3D 6, .post_load =3D ssi_sd_post_load, .fields =3D (VMStateField []) { VMSTATE_UINT32(mode, ssi_sd_state), @@ -264,6 +286,7 @@ static const VMStateDescription vmstate_ssi_sd =3D { VMSTATE_UINT8_ARRAY(cmdarg, ssi_sd_state, 4), VMSTATE_UINT8_ARRAY(response, ssi_sd_state, 5), VMSTATE_UINT16(crc16, ssi_sd_state), + VMSTATE_INT32(read_bytes, ssi_sd_state), VMSTATE_INT32(arglen, ssi_sd_state), VMSTATE_INT32(response_pos, ssi_sd_state), VMSTATE_INT32(stopping, ssi_sd_state), @@ -316,6 +339,7 @@ static void ssi_sd_reset(DeviceState *dev) memset(s->cmdarg, 0, sizeof(s->cmdarg)); memset(s->response, 0, sizeof(s->response)); s->crc16 =3D 0; + s->read_bytes =3D 0; s->arglen =3D 0; s->response_pos =3D 0; s->stopping =3D 0; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.50 as permitted sender) client-ip=209.85.218.50; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f50.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780004; cv=none; d=zohomail.com; s=zohoarc; b=PgEU7DB5CFv2EMOihclt2QOGcsGKJ+MCcq+qCVla8SHXnMWFoQOAGTi+R3ln1AjsUxi4QaGCMxuXHd2ILGRIk+u+lNWZZ2j2hn9zva2MYGWSZLWoQP/XGp3EOQv150roTVlme+UeprsNE9CNu+XQ21ELVHbMAiWRHzzdXcK1rug= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780004; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nrlOa5uEAXGuJkLltzQnPowCn7sKixIFglrfWbQ5DbM=; b=OMRHZ6GeknRy0mn7oWpmkCxMb2BBtdCLh60v9bY10HNXwpiXKlsQ56s1GiYK0UYQe/7HiwPciKnshSMInUZWVJW7sTiUCV64nvXicX3VeDWnCxiNLG6cOrjO/aVbobWuz5x0a2PfMGTVKwUIRNp4NLyaes+VHG8ZoKApyL/5Tqw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by mx.zohomail.com with SMTPS id 161378000449169.36483044072838; Fri, 19 Feb 2021 16:13:24 -0800 (PST) Received: by mail-ej1-f50.google.com with SMTP id k13so15041289ejs.10 for ; Fri, 19 Feb 2021 16:13:23 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id t19sm5303919ejc.62.2021.02.19.16.13.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:22 -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=nrlOa5uEAXGuJkLltzQnPowCn7sKixIFglrfWbQ5DbM=; b=QAD6ACOIlM/KBAnKRsx6IA7sa+qDc0jKWXbKf7a1gioSTHTybKlQZwcPkc3h7AZqPE YMifDlRa9c1DTp0h2mQgtC8eQ1lnPbRx3qP96dz6OgwfdxJ/8kK1MaD2oEIb69G6eH1f n6Eu4JlWuDrDFCzMBqrGkMdKzaRq92+M2Dg9GWnstVRLMS2MOCdxPf32iOnX7w3zuG/W WI65/1hzEgAb6zKbCp78wNPuCc4ep2wH8CZ5FRrowWZOOkSr3ZD1uUmJZWsmN9Sqc2t5 4N9lWfCW1qKY7HD40OpgV0oaq71ifIXvOBbELaPXkHGAggPg1saZRCP+HArsk2YmKBJP JroQ== 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=nrlOa5uEAXGuJkLltzQnPowCn7sKixIFglrfWbQ5DbM=; b=sfLy99b0971bvjcPMZWu87cG/pJi62nCiZEatIIIVhl3aXkny+rNvy+8NCDyd40vWT GLvuVpWuzGeCKfNEOtxDiQIyL+So3iDLz9kyzjeZl28aLx8Nwt740fetKqh4E+5aJr7P idRy6aQx1+2Jb5/vhIQ/GFs53SgH1LKiB+N7rxwLsvRir4vYnCt6LNjemfFyxPO3rFFO xvlwUORCnpnud1+vZcZfPJmSBNRDyre4ByMq2yYHOSMKIYIBLNOkO5LOAqCGJbJ5ad8J Gr88L4WR+L0X4he4o/An6do0Xwm49vK662oh5FG/Pi+Iudk6PoHjNgKmR75nUPe2WfWr GdXg== X-Gm-Message-State: AOAM531POdcfcnHawVsOSYcSYlFvBOzJcxpISSZdlQueKcsr+5JanmZL ELahkneurqVdy6ilwURRUczIjr+O43M= X-Google-Smtp-Source: ABdhPJw3VH+7yNQ6NrAnDw7jATmQ3stVlfUY7cC4HbKWONnshGWdjfJLz5KWx+6bKc3eMjq6gghFKw== X-Received: by 2002:a17:906:4f96:: with SMTP id o22mr10634328eju.511.1613780002800; Fri, 19 Feb 2021 16:13:22 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 02/18] hw/sd: sd: Remove duplicated codes in single/multiple block read/write Date: Sat, 20 Feb 2021 01:12:53 +0100 Message-Id: <20210220001309.2225022-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng The single block read (CMD17) codes are the same as the multiple block read (CMD18). Merge them into one. The same applies to single block write (CMD24) and multiple block write (CMD25). Signed-off-by: Bin Meng Tested-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Message-Id: <20210128063035.15674-3-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 8517dbce8ba..a85a821abbe 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1181,24 +1181,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) break; =20 case 17: /* CMD17: READ_SINGLE_BLOCK */ - switch (sd->state) { - case sd_transfer_state: - - if (addr + sd->blk_len > sd->size) { - sd->card_status |=3D ADDRESS_ERROR; - return sd_r1; - } - - sd->state =3D sd_sendingdata_state; - sd->data_start =3D addr; - sd->data_offset =3D 0; - return sd_r1; - - default: - break; - } - break; - case 18: /* CMD18: READ_MULTIPLE_BLOCK */ switch (sd->state) { case sd_transfer_state: @@ -1245,35 +1227,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) =20 /* Block write commands (Class 4) */ case 24: /* CMD24: WRITE_SINGLE_BLOCK */ - switch (sd->state) { - case sd_transfer_state: - /* Writing in SPI mode not implemented. */ - if (sd->spi) - break; - - if (addr + sd->blk_len > sd->size) { - sd->card_status |=3D ADDRESS_ERROR; - return sd_r1; - } - - sd->state =3D sd_receivingdata_state; - sd->data_start =3D addr; - sd->data_offset =3D 0; - sd->blk_written =3D 0; - - if (sd_wp_addr(sd, sd->data_start)) { - sd->card_status |=3D WP_VIOLATION; - } - if (sd->csd[14] & 0x30) { - sd->card_status |=3D WP_VIOLATION; - } - return sd_r1; - - default: - break; - } - break; - case 25: /* CMD25: WRITE_MULTIPLE_BLOCK */ switch (sd->state) { case sd_transfer_state: --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) client-ip=209.85.208.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780010; cv=none; d=zohomail.com; s=zohoarc; b=WQV9v+uf/TzKKZglfO81/pmEsNAqEg7ojkGgcHXwnyy6kzL5eocm/I1DQpTdKJJoaYYDyyacpmbAIk6d5m9o5/iCGzvc9wNkgAuDaA+rnRWp+Hq9i3NW6s6lFaptnXQE/NEuPB7Q9koqPl3uKFzJgk9uQXKBedMem6zF3fgaxaY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780010; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Wxy4ChBCXEtXz3ITFAFuSDoWqkojBHWGX+ka1E7CZTU=; b=M+pE/KkWMifPk69yJbfnu21qllO074RKYr7njQ4iDC0oTRb34nSU72leZfeSA5eVwr1gwcDSJbndPdVE6peS3qCZWUXSpuAqzzm+lgBq3b4bTfsYefM8YYQ8wx7MSwYRdXF4i18aXDGnETNX0YwzrQcOMpvE37AVQ5tECl+N/Kc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by mx.zohomail.com with SMTPS id 1613780010029928.9223947877495; Fri, 19 Feb 2021 16:13:30 -0800 (PST) Received: by mail-ed1-f49.google.com with SMTP id g3so12650138edb.11 for ; Fri, 19 Feb 2021 16:13:29 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id b27sm2228192eja.64.2021.02.19.16.13.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:27 -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=Wxy4ChBCXEtXz3ITFAFuSDoWqkojBHWGX+ka1E7CZTU=; b=O7xF00rEGZRpqjhGbhxnbquEzc6aKNrUmJ52N1p6BOgPY+GyPmt4ihsKzXpLYs9ML9 OB35uy0Z9LJirI7vI6JkC943ZDEYjfHe2CJpVNRHoltrh3HhINUvQH9fgWMRmN9Snup4 bMiL+r2d6YS23QnTyfus6D34jjhmX7oj6+1sQUpqG7c+NHTFit5407TgXS7GPGYPgAWd bsm1JFy05iKhx+yvF9lPb+G9aP7T21BMeC13/ibMwXqwJfZUSp7fnrtCTM+xkRWCe/sc AGMEuzHGqsbo8T1vy0zAXOTHv8f+bE8I+JgphwIRWAbxATrqmb3M0C9LZOQ10cqhCiG+ +qsQ== 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=Wxy4ChBCXEtXz3ITFAFuSDoWqkojBHWGX+ka1E7CZTU=; b=cSFOEsyAuj1ckvABwS1Tz+dmVaLC2A7gNMFjK1mZtPzrliLsDMe/Vx7rh+QzADaY4E /iD1L0xuuJDg6dDAA5TU9ytqCpYciIrcoOPxfe+2VtfzCLnD0hnF/ORUu7WmF8JcYiRW z15oT1IX0O9gNlCQBUYnM9Jm522oItDYeeUY3SFk2rh9E9UOn3gq9rY6nmNPPVj3iUj8 T0VgkJZ3VrvgoWhfAj8f7gfjC87WPFZT7oLZ/6Z4gn2O1fIg9ZbMXAejI637SbjVshPi y2DvnsLobQCo4ogBFvVpikIw50IzqEW2O94U8Zqd2yYer6UIRXxzlsC2uvTwcO8KCDaw 7fug== X-Gm-Message-State: AOAM531xngPixQUs+UpKhcscA4w9UPNrK4yNd8yrYNmdz8eJOAPfG+Lo MDh4qmhrfTOFDMrygESdktI= X-Google-Smtp-Source: ABdhPJyX8CLHV0LyShd8DbxPK8x4x4L4YzDv92RcgGmKsGWwQAKWYFWGuJskGKmeMyOxFAj5pYJpkA== X-Received: by 2002:aa7:c58a:: with SMTP id g10mr8954483edq.243.1613780008042; Fri, 19 Feb 2021 16:13:28 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 03/18] hw/sd: sd: Allow single/multiple block write for SPI mode Date: Sat, 20 Feb 2021 01:12:54 +0100 Message-Id: <20210220001309.2225022-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng At present the single/multiple block write in SPI mode is blocked by sd_normal_command(). Remove the limitation. Signed-off-by: Bin Meng Tested-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210128063035.15674-4-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index a85a821abbe..5de9e0a6c20 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1230,9 +1230,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, S= DRequest req) case 25: /* CMD25: WRITE_MULTIPLE_BLOCK */ switch (sd->state) { case sd_transfer_state: - /* Writing in SPI mode not implemented. */ - if (sd->spi) - break; =20 if (addr + sd->blk_len > sd->size) { sd->card_status |=3D ADDRESS_ERROR; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) client-ip=209.85.208.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1613780015; cv=none; d=zohomail.com; s=zohoarc; b=M/pUX8OgXl/lehUFcoBiTRkafv761B1oq9her/hhnqw57S5LCZ3ALfOH/axmmmYRQYtvB9e58Cd5dhvR9dXTgZOqb9hz+Qp0PzzltV1zLfNzRPovUNuoulwrdhvIvLgb29vwPvlsFTGGjB19XGyOFQclsc/pggRkhHLyIb6oK3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780015; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Vf9l8Dn1Veypozrh6l7QkCHwWHZG9oxTlNpxX7vPzt0=; b=LlyX9bfcfSagelL8a10/Kk1cHqlYZeCRgXLOMQJ8qD4C10xIWJzb8YfiCTKOYsAl56OW6vkMy/AcIa0pp6kdh899eUnFG35Wulg/n+i5Ej4/ous2aAxWvgKy+MgFjjiIXZ4BNgTVRdeadMiv+7URrZcTrbXB5yfSd82rLME8lFc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by mx.zohomail.com with SMTPS id 1613780015171595.527135570594; Fri, 19 Feb 2021 16:13:35 -0800 (PST) Received: by mail-ed1-f54.google.com with SMTP id l12so12743953edt.3 for ; Fri, 19 Feb 2021 16:13:34 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id h4sm6344518edv.80.2021.02.19.16.13.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:33 -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=Vf9l8Dn1Veypozrh6l7QkCHwWHZG9oxTlNpxX7vPzt0=; b=Lmsi4kJ99L8vcRN5RuitDAkjx9fRGZNpcKWejAcIfr2y4gYZ9URjuTxmRqJhWvlTpK dLHAE2mXJEHWdxud9MP3Y8mkAJsWIlLZIkYNNeEjY2Nryp+gniCYg6kSfGWH/EqJm3un 4+uNkulYfkHEC4lERJ1shsoYuGOXW78cWDdhNqYIGYjlgXC1LvMnwwNkNxaJI15OApW/ onqvVMnMSZGtG1W5DfhwCvW0Fg/Fps2M3EK00iXEJA3xT2gzJOhbhadqRWy8Bn5Tim7+ IeXsmkuwGlgtpFWe/doow9wO2rNhgXPH8yOMgEw7r8EB2ZFA3LkJ5JdYPeL7GvOHBx6m fumw== 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=Vf9l8Dn1Veypozrh6l7QkCHwWHZG9oxTlNpxX7vPzt0=; b=LDrOL9dMbw5P7ZhD3uXI5Gr792PWNu3A5KCswy2Sm1tfs4xQDJidJeN/SV167ZtVyu fVD9kOb2WSRyw8As8t8DW41tPiKEI9tQ/YEMU8CwPDh/EXZ+Xcxx57Zq9xN0ydN0YotA 6/ubJ9L93x848a1a+sq9fHB2lrQB7MxhG0SNOpwolGNc/e8kfCVzLslANACklSXjKT8J 4L4YQJhV93GoVcpGOj9TqpSH9Hh9VVyKVy3wkDFVX6iavohzFURdUfviJL2Iu0/pTVU9 6iTvuRYDWfv0pItKA3XWETopNkK/m6Iw8Hk7i7/yAVE18GC94HnpuNbvrHKlE79fyKq0 LBqQ== X-Gm-Message-State: AOAM5323XStVtyaDn5iJr86kqFOUEuH8/5AZ+kr0i7WJmNMkmL5Th0UE r7x74FQOQ9V7mEDj4pb6zO4= X-Google-Smtp-Source: ABdhPJwaTS9epjjveIRV5FkOCpz07FQxlcTFVWxthZOxNDNnCaPWbfg+LjsdzUlMLjB4P4bl4pZ1/Q== X-Received: by 2002:aa7:c944:: with SMTP id h4mr11652307edt.233.1613780013479; Fri, 19 Feb 2021 16:13:33 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 04/18] hw/sd: Introduce receive_ready() callback Date: Sat, 20 Feb 2021 01:12:55 +0100 Message-Id: <20210220001309.2225022-5-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng At present there is a data_ready() callback for the SD data read path. Let's add a receive_ready() for the SD data write path. Signed-off-by: Bin Meng Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Message-Id: <20210128063035.15674-5-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/sd/sd.h | 2 ++ hw/sd/core.c | 13 +++++++++++++ hw/sd/sd.c | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 05ef9b73e56..47360ba4ee9 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -116,6 +116,7 @@ struct SDCardClass { * Return: byte value read */ uint8_t (*read_byte)(SDState *sd); + bool (*receive_ready)(SDState *sd); bool (*data_ready)(SDState *sd); void (*set_voltage)(SDState *sd, uint16_t millivolts); uint8_t (*get_dat_lines)(SDState *sd); @@ -187,6 +188,7 @@ void sdbus_write_data(SDBus *sdbus, const void *buf, si= ze_t length); * Read multiple bytes of data on the data lines of a SD bus. */ void sdbus_read_data(SDBus *sdbus, void *buf, size_t length); +bool sdbus_receive_ready(SDBus *sd); bool sdbus_data_ready(SDBus *sd); bool sdbus_get_inserted(SDBus *sd); bool sdbus_get_readonly(SDBus *sd); diff --git a/hw/sd/core.c b/hw/sd/core.c index 08c93b59034..30ee62c5106 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -160,6 +160,19 @@ void sdbus_read_data(SDBus *sdbus, void *buf, size_t l= ength) } } =20 +bool sdbus_receive_ready(SDBus *sdbus) +{ + SDState *card =3D get_card(sdbus); + + if (card) { + SDCardClass *sc =3D SD_CARD_GET_CLASS(card); + + return sc->receive_ready(card); + } + + return false; +} + bool sdbus_data_ready(SDBus *sdbus) { SDState *card =3D get_card(sdbus); diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 5de9e0a6c20..172e83f99d9 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -2037,6 +2037,11 @@ uint8_t sd_read_byte(SDState *sd) return ret; } =20 +static bool sd_receive_ready(SDState *sd) +{ + return sd->state =3D=3D sd_receivingdata_state; +} + static bool sd_data_ready(SDState *sd) { return sd->state =3D=3D sd_sendingdata_state; @@ -2147,6 +2152,7 @@ static void sd_class_init(ObjectClass *klass, void *d= ata) sc->do_command =3D sd_do_command; sc->write_byte =3D sd_write_byte; sc->read_byte =3D sd_read_byte; + sc->receive_ready =3D sd_receive_ready; sc->data_ready =3D sd_data_ready; sc->enable =3D sd_enable; sc->get_inserted =3D sd_get_inserted; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) client-ip=209.85.218.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780020; cv=none; d=zohomail.com; s=zohoarc; b=MCCvlHNnVAigrJVChamc2N4g7GkAASJ8RSRPtgDtiqTPcfpneiGnAuRx0GgZayQMCMo+yTQxDupcznHfMOKhu2SDyIIgU0fF/nrFXp4L1pcTMNACZCXFniTIKr1ztSAS+r8e2maRKxxVZyPdKjKx40llXciketZ4thV3bMTfUIU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780020; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KigaGHfB9MhYavkx3CvoXXkkmhzaw5PYFB81q76DTIg=; b=TUIYPmOFbfYhE2VRX6ukvLSvE32ywN9hCU9QX7mUeRhRD7/M19NAde82fRK0zPeIld5CYzAXiPHIOIZlGCNzcEqeAoEvUJ5tbhmUrXuCFyHR8L15/TgundTEwTHiBtIE6H8bfCwW+hbScdWNMbSlEyHNJDh6CgCsot1mObwRUFo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) by mx.zohomail.com with SMTPS id 1613780020464602.9719930068344; Fri, 19 Feb 2021 16:13:40 -0800 (PST) Received: by mail-ej1-f43.google.com with SMTP id jt13so16981021ejb.0 for ; Fri, 19 Feb 2021 16:13:39 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id dm20sm6289304edb.59.2021.02.19.16.13.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:38 -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=KigaGHfB9MhYavkx3CvoXXkkmhzaw5PYFB81q76DTIg=; b=lDmehx+azURW9GiFet5/oVK/MRtdLSf+beQk5TNJZBeRZAwepdT81CCk/qiFIq6U6p JuukrOx+ZBVhXJkLLtZvDDWTBoHJedhxTKUZDLSYNln3ADZCYCZjuOFfU7EtNWGF7UPw 0yIZEk6QVoX+lm1A/hlJoLjT/Jnvbna9MOqdgp9EqMkmI6nspKBO9pu2fhu6fefP+mO6 6/U/mOKAO9vUL5P++Y2wp4DF9bww+CfpbjM1NwGHHyLyBaauh7rQaQzQwvC/aFQixZoP qIAUPsh1gCnCGHKxrQm4H1rU3XON9qyC1sMfw54OUaz6QZ0IOf/v4gmC8k0PIyO8KjJk L/BA== 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=KigaGHfB9MhYavkx3CvoXXkkmhzaw5PYFB81q76DTIg=; b=MkAx0yos6e7dZjC5tBtptYAmvoLqdboq6fal55nn1PGonRWGYqMv8GDPoCMF0SE0cX cevvnXHVteUNBF1ewXSZcvtEH8Yiz58z6/Ha8F2iyLjdAZHFZcsNHiwV8COprJy3ebZD gsFbfnm3LLU+NWJ8UGH/17UA0rXW1sQmIPNTr/kRTmQ/gYC4l9o33VDjc2k8PPw9W4+o dMdLCgPCrOb6MepOFj9ExSU2nO0bmmLJ/ktvXRuZ2VVxH8xq3I1j5JJGadbXh95QPCp1 iNDCgPeDqZjlYdFC+sCB5aofIWhNw4/tf1xS00MgiFrPvZSLFjJ29MAmeivNTVqAcGjW XBWQ== X-Gm-Message-State: AOAM532p+U5Unj8UxKkD4nnbvveN+EihK0GRLVU43JrOr2MC87YNKu78 l46/G9Zo4CBQNYSI6R/dHwk= X-Google-Smtp-Source: ABdhPJywSxWfmB7M5nIDS0wowbfEaVEoMgGMvwXqc72+g9Y5XE55jW1S6jEmlUKI90WWjUQVAX1A1Q== X-Received: by 2002:a17:906:6096:: with SMTP id t22mr11280734ejj.34.1613780018760; Fri, 19 Feb 2021 16:13:38 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 05/18] hw/sd: ssi-sd: Support single block write Date: Sat, 20 Feb 2021 01:12:56 +0100 Message-Id: <20210220001309.2225022-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng Add 2 more states for the block write operation. The SPI host needs to send a data start token to start the transfer, and the data block written to the card will be acknowledged by a data response token. Signed-off-by: Bin Meng [PMD: Change VMState version id 6 -> 7] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Message-Id: <20210128063035.15674-6-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/ssi-sd.c | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 6d20a240c69..1205ad8b52c 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -43,6 +43,8 @@ typedef enum { SSI_SD_DATA_START, SSI_SD_DATA_READ, SSI_SD_DATA_CRC16, + SSI_SD_DATA_WRITE, + SSI_SD_SKIP_CRC16, } ssi_sd_mode; =20 struct ssi_sd_state { @@ -53,6 +55,7 @@ struct ssi_sd_state { uint8_t response[5]; uint16_t crc16; int32_t read_bytes; + int32_t write_bytes; int32_t arglen; int32_t response_pos; int32_t stopping; @@ -85,6 +88,9 @@ OBJECT_DECLARE_SIMPLE_TYPE(ssi_sd_state, SSI_SD) /* dummy value - don't care */ #define SSI_DUMMY 0xff =20 +/* data accepted */ +#define DATA_RESPONSE_ACCEPTED 0x05 + static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uint32_t val) { ssi_sd_state *s =3D SSI_SD(dev); @@ -113,10 +119,17 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, u= int32_t val) =20 switch (s->mode) { case SSI_SD_CMD: - if (val =3D=3D SSI_DUMMY) { + switch (val) { + case SSI_DUMMY: DPRINTF("NULL command\n"); return SSI_DUMMY; + break; + case SSI_TOKEN_SINGLE: + DPRINTF("Start write block\n"); + s->mode =3D SSI_SD_DATA_WRITE; + return SSI_DUMMY; } + s->cmd =3D val & 0x3f; s->mode =3D SSI_SD_CMDARG; s->arglen =3D 0; @@ -250,6 +263,27 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, ui= nt32_t val) s->response_pos =3D 0; } return val; + case SSI_SD_DATA_WRITE: + sdbus_write_byte(&s->sdbus, val); + s->write_bytes++; + if (!sdbus_receive_ready(&s->sdbus) || s->write_bytes =3D=3D 512) { + DPRINTF("Data write end\n"); + s->mode =3D SSI_SD_SKIP_CRC16; + s->response_pos =3D 0; + } + return val; + case SSI_SD_SKIP_CRC16: + /* we don't verify the crc16 */ + s->response_pos++; + if (s->response_pos =3D=3D 2) { + DPRINTF("CRC16 receive end\n"); + s->mode =3D SSI_SD_RESPONSE; + s->write_bytes =3D 0; + s->arglen =3D 1; + s->response[0] =3D DATA_RESPONSE_ACCEPTED; + s->response_pos =3D 0; + } + return SSI_DUMMY; } /* Should never happen. */ return SSI_DUMMY; @@ -259,7 +293,7 @@ static int ssi_sd_post_load(void *opaque, int version_i= d) { ssi_sd_state *s =3D (ssi_sd_state *)opaque; =20 - if (s->mode > SSI_SD_DATA_CRC16) { + if (s->mode > SSI_SD_SKIP_CRC16) { return -EINVAL; } if (s->mode =3D=3D SSI_SD_CMDARG && @@ -277,8 +311,8 @@ static int ssi_sd_post_load(void *opaque, int version_i= d) =20 static const VMStateDescription vmstate_ssi_sd =3D { .name =3D "ssi_sd", - .version_id =3D 6, - .minimum_version_id =3D 6, + .version_id =3D 7, + .minimum_version_id =3D 7, .post_load =3D ssi_sd_post_load, .fields =3D (VMStateField []) { VMSTATE_UINT32(mode, ssi_sd_state), @@ -287,6 +321,7 @@ static const VMStateDescription vmstate_ssi_sd =3D { VMSTATE_UINT8_ARRAY(response, ssi_sd_state, 5), VMSTATE_UINT16(crc16, ssi_sd_state), VMSTATE_INT32(read_bytes, ssi_sd_state), + VMSTATE_INT32(write_bytes, ssi_sd_state), VMSTATE_INT32(arglen, ssi_sd_state), VMSTATE_INT32(response_pos, ssi_sd_state), VMSTATE_INT32(stopping, ssi_sd_state), @@ -340,6 +375,7 @@ static void ssi_sd_reset(DeviceState *dev) memset(s->response, 0, sizeof(s->response)); s->crc16 =3D 0; s->read_bytes =3D 0; + s->write_bytes =3D 0; s->arglen =3D 0; s->response_pos =3D 0; s->stopping =3D 0; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.52 as permitted sender) client-ip=209.85.208.52; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f52.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780026; cv=none; d=zohomail.com; s=zohoarc; b=fs1OobZHwRiZeMaM0jYbrFGBigkQMfNLC5W7RgW3mfMFXMtd0BhF0PEQoAVLmwe25MFa6u0yyTYhC0/XjUoImJ7Xl8RkK/EmCuFmsz1dXIvEBF1n1RKSEcqLfm+5yjSHJb6XirAcwuCsLPoKHuYcQGA8Pz55FhemgHS5MAPLryg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780026; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=02M7HfeR1O9C/gJijTKiVQeyuhKE0/PPtd8pPEOGOuk=; b=nHPI7+j+k9rUJI1Pauw+djWaa8xwSKaEUWFjiD69OzYAT2TQWVAQjadf6oGzMsNyh0XGZHw+M7DRWyjeDNkEezLIxt803lkBgYvyr10wQUXSM/8aN7y0/eJz9klId8LVv5GRpi2vP/rXBhJFTfYzLzh8LbL3xP8iszYQ685SwUY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by mx.zohomail.com with SMTPS id 1613780025866342.8906798697981; Fri, 19 Feb 2021 16:13:45 -0800 (PST) Received: by mail-ed1-f52.google.com with SMTP id v22so12633275edx.13 for ; Fri, 19 Feb 2021 16:13:45 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id t4sm2378460edw.24.2021.02.19.16.13.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:43 -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=02M7HfeR1O9C/gJijTKiVQeyuhKE0/PPtd8pPEOGOuk=; b=Sk32K2oPN0bBLFaOwRWSGrzA4pjWUcI1bqGBnMqN3i8YKe7Gvn794AnhOU6OEx5nuH RzQgFSHhBzhgmhDdZEFX2ycQg9PDKfCXbwdL8md4EyHvtkOE91H4cjrEf/g9G3k5P+nR AaQJmy4ev8HYOa6ET2ciPjyXOLNKKi/vLu+nojQrd7llj/3rCcXm/DtsQAEGroW0WJV9 16OU9lr8oU9anZhDtHgnpcNoLwONp8mSkOnBJ2VqQaVnWJmrgCCUE9205zVFSgwotsRD D49KQ+mSJO9pBj6VFBf7O+wAaq3nFDWARQujQ4s+Rwg8TvAnGuWxbR0aosF5QXPXljum dDTA== 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=02M7HfeR1O9C/gJijTKiVQeyuhKE0/PPtd8pPEOGOuk=; b=q4NNObxFLotKYJ6jA+hxSTe0hbsC9Xm8/pbxsHSKIMtB4dMV+DHuPRS+0Xiwoz/yWd E+fkLQvPIouR/E5WmGDMIqZlb1FmHbu4IQfqprJp1Olb6RN00d/e/IhvPCdFeZpJndcN zK67pYs765DVXCqQ8tyRHqncwePUEB7DVTKM3uLQwnCi5zFsu5ff9xrAKBuqdb7vRlyZ DZGEVkS03ATdHVlieNHzJvLj64tweMsDHtyND7pIboqgnXg7/HT3AEVJu34kg/MQMkSW wUq80JzIFwLNGNcoskDQqse0Ns4BmBAcz+c2UPv/sdEHhkv5NKYfraA6CuCaZJ/S+f5u DIrg== X-Gm-Message-State: AOAM533cYx87YTvpqPZ/9+d+HPV6Wz7gBaSGnyAyNmsE+0sNzKJQLyPq plHMD4umEIyja9oVgaRi+uE= X-Google-Smtp-Source: ABdhPJxIGurQM15Myq8VdqH7/rDLBbQvd3BzeufolaizPYsGw3Cg7WG8WPknoM/lGv+au7JWDW98Dg== X-Received: by 2002:a50:fa89:: with SMTP id w9mr11475465edr.22.1613780024115; Fri, 19 Feb 2021 16:13:44 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 06/18] hw/sd: ssi-sd: Support multiple block write Date: Sat, 20 Feb 2021 01:12:57 +0100 Message-Id: <20210220001309.2225022-7-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng For a multiple block write operation, each block begins with a multi write start token. Unlike the SD mode that the multiple block write ends when receiving a STOP_TRAN command (CMD12), a special stop tran token is used to signal the card. Emulating this by manually sending a CMD12 to the SD card core, to bring it out of the receiving data state. Signed-off-by: Bin Meng Tested-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Message-Id: <20210128063035.15674-7-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/ssi-sd.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 1205ad8b52c..200e885225a 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -4,6 +4,11 @@ * Copyright (c) 2007-2009 CodeSourcery. * Written by Paul Brook * + * Copyright (c) 2021 Wind River Systems, Inc. + * Improved by Bin Meng + * + * Validated with U-Boot v2021.01 and Linux v5.10 mmc_spi driver + * * This code is licensed under the GNU GPL v2. * * Contributions after 2012-01-13 are licensed under the terms of the @@ -82,6 +87,10 @@ OBJECT_DECLARE_SIMPLE_TYPE(ssi_sd_state, SSI_SD) #define SSI_SDR_ADDRESS_ERROR 0x2000 #define SSI_SDR_PARAMETER_ERROR 0x4000 =20 +/* multiple block write */ +#define SSI_TOKEN_MULTI_WRITE 0xfc +/* terminate multiple block write */ +#define SSI_TOKEN_STOP_TRAN 0xfd /* single block read/write, multiple block read */ #define SSI_TOKEN_SINGLE 0xfe =20 @@ -94,6 +103,8 @@ OBJECT_DECLARE_SIMPLE_TYPE(ssi_sd_state, SSI_SD) static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uint32_t val) { ssi_sd_state *s =3D SSI_SD(dev); + SDRequest request; + uint8_t longresp[16]; =20 /* * Special case: allow CMD12 (STOP TRANSMISSION) while reading data. @@ -125,8 +136,28 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, ui= nt32_t val) return SSI_DUMMY; break; case SSI_TOKEN_SINGLE: + case SSI_TOKEN_MULTI_WRITE: DPRINTF("Start write block\n"); s->mode =3D SSI_SD_DATA_WRITE; + return SSI_DUMMY; + case SSI_TOKEN_STOP_TRAN: + DPRINTF("Stop multiple write\n"); + + /* manually issue cmd12 to stop the transfer */ + request.cmd =3D 12; + request.arg =3D 0; + s->arglen =3D sdbus_do_command(&s->sdbus, &request, longresp); + if (s->arglen <=3D 0) { + s->arglen =3D 1; + /* a zero value indicates the card is busy */ + s->response[0] =3D 0; + DPRINTF("SD card busy\n"); + } else { + s->arglen =3D 1; + /* a non-zero value indicates the card is ready */ + s->response[0] =3D SSI_DUMMY; + } + return SSI_DUMMY; } =20 @@ -136,8 +167,6 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uin= t32_t val) return SSI_DUMMY; case SSI_SD_CMDARG: if (s->arglen =3D=3D 4) { - SDRequest request; - uint8_t longresp[16]; /* FIXME: Check CRC. */ request.cmd =3D s->cmd; request.arg =3D ldl_be_p(s->cmdarg); --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) client-ip=209.85.218.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780031; cv=none; d=zohomail.com; s=zohoarc; b=ake7GY60uQd+jW1Vm4YkGlShpOL6v+f7D7mLV41MPAOvjcm7skl1p6Lkqz4m4H3iS56ElWHgkAH0MEu1bOYOb/66+Jw2zeul2Ojzrw38zRXo30brcyWJy/LSbSW8bfQXUY14CCeRaI4L2F9sffD7W0kox8/JkPfrjTgQ9hZpimA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780031; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oGPDZTaV0ikSGAYkSsSAAwTyV1EcBkuaVgyp/NFAuhI=; b=UHN5n0MJPr3nl9ESAJ8UDKK/P97DOSqYbEJ9bDwm/2zHSLgEiHJeMuwLGotWP97Ivs4hDB/LNL1HU5j1D5OTjac7NuoEERzkOVyfXuHTFKcFXGG2o9eB3pEzzZPXQIOYJUFKswrUnGjXmgu3EY4gPzV/sUAOuq4RVJy9UhfYBxU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by mx.zohomail.com with SMTPS id 1613780031016279.8812047130838; Fri, 19 Feb 2021 16:13:51 -0800 (PST) Received: by mail-ej1-f49.google.com with SMTP id lu16so16843608ejb.9 for ; Fri, 19 Feb 2021 16:13:50 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id bz20sm5666154ejc.28.2021.02.19.16.13.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:48 -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=oGPDZTaV0ikSGAYkSsSAAwTyV1EcBkuaVgyp/NFAuhI=; b=T7Dy+sGGWdm05YCG8xIboJpe+caUC17ZEB/Bai9RWD00PjwhfhMWNCUI82vQAwSK4z ZJD3uDw+Dn5U1q4kgRq8H7y7vSu0fuwW1iNMXZ1Rm/NKndq2b7DcBgm+AXyqZbcC6TPm eN9eqOE/ZmOFCjueVnxNYw3yv9htkN7uQUdDEpRExeejd3mm73ivHLl+ntztuzecS7X7 EEqursh43LM5RxbCTbiuNtURsKXs2cYea6O2gnNO/UJkMF1OwBSRo0wC9jdn/WYaIgwv GD525xKLm2QIVkPSu+iRFEvsR44M1egYdxbnhTO1ceBlle7R9ussYcuuZ9zzqkYhE7QH tmQg== 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=oGPDZTaV0ikSGAYkSsSAAwTyV1EcBkuaVgyp/NFAuhI=; b=P5/bh/+3xAGcZr1maQTLY758NPHdvU1Gm9sJ0qw9pp6ji7uDdS20gdjh4P8jV572IX bl2ocVN/mLbKVLlckh5xphyRpfvtmj9WCSaJfraEXjUWVfRx5bWXb8Flr8UYbwaqqARW 3cypBVbRATWHqyo02jzhcaCzyU86MLEZcLundH/AUHJwxysJ99ZZNshTE/xsRuModnnl ncTSfjjYrX0h59qwo04adpnMZ4Cr9/wh7nZrqj2tTTGy9KxZhuTv2mS7hw7pxA7JsYFF WXcqZn+McA3gsa2jaVTQ/r4YGM5ih1SnKUbOxSvMQek1VZqn33zCQY5FyZGfsRNCgd3c Z4Yg== X-Gm-Message-State: AOAM531olCMbCyvBK2N6ebtSCvhk74B79IHkqZ+VALRFe2kuRT/P+sDX 8gejcuEnP/jhhVL923n2O64= X-Google-Smtp-Source: ABdhPJwgW+/hOEULvSwJxsLnWdLkxFnsH7do3LOmKTuVScmAso0HPG13Jj/y0Pki8795P+mL0Oktsg== X-Received: by 2002:a17:906:a090:: with SMTP id q16mr10853089ejy.236.1613780029307; Fri, 19 Feb 2021 16:13:49 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 07/18] hw/sd: ssi-sd: Fix SEND_IF_COND (CMD8) response Date: Sat, 20 Feb 2021 01:12:58 +0100 Message-Id: <20210220001309.2225022-8-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng The SEND_IF_COND command (CMD8) response is of format R7, but current code returns R1 for CMD8. Fix it. Fixes: 775616c3ae8c ("Partial SD card SPI mode support") Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210128063035.15674-8-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/ssi-sd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 200e885225a..84c873b3fd4 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -176,9 +176,9 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uin= t32_t val) s->arglen =3D 1; s->response[0] =3D 4; DPRINTF("SD command failed\n"); - } else if (s->cmd =3D=3D 58) { - /* CMD58 returns R3 response (OCR) */ - DPRINTF("Returned OCR\n"); + } else if (s->cmd =3D=3D 8 || s->cmd =3D=3D 58) { + /* CMD8/CMD58 returns R3/R7 response */ + DPRINTF("Returned R3/R7\n"); s->arglen =3D 5; s->response[0] =3D 1; memcpy(&s->response[1], longresp, 4); --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) client-ip=209.85.218.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780037; cv=none; d=zohomail.com; s=zohoarc; b=eRz1DFXDKZdvZYR9x8TiFIndpnS3CRgNp+eF5AawNQnjmnlhhtq9n/FJxF4JRNj4hs+32SM7u6/gMpIy4LQLQnjIXmMVNnELdzVupkuSbjztb2lZFsiqeSmt3gbDFXk3Q1MeOQ8+SLS0YK8gGEVCQH5DpxT1Yc0c5+/0tf6Zv5I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780037; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5r9uQjDLFi6eLClRWOICufpqmGktPWbrOwAV+KCU7UQ=; b=Zk3pWCnqFTIX8wJTfIe1OV33lXBnHgC2MMZD8YIrPQS1dlgIneG/Gz6YUS5OgInEuxD2uGFndTjlpz0FMaDTME3O9BlCcKIKDe4AbygeKXR/HtGoAMMS1ZyJEfW7zeCQbIzFXTOsxuK5f1n4nTUE7rhb3VjKwEuHbLcym+yrBHw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by mx.zohomail.com with SMTPS id 16137800373751012.8908424486996; Fri, 19 Feb 2021 16:13:57 -0800 (PST) Received: by mail-ej1-f49.google.com with SMTP id d8so16917068ejc.4 for ; Fri, 19 Feb 2021 16:13:55 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id y29sm6410223edl.91.2021.02.19.16.13.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:53 -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=5r9uQjDLFi6eLClRWOICufpqmGktPWbrOwAV+KCU7UQ=; b=jFyGipKfEkAY+qNILhK+Jyn4icVAI2JYBEKwE9bTp9U4iMje2z5/D2af0hnFhM4EaD C9vkFu40kdNzz4ft579mb4kzMxhmjnVzGsoQjABeJCdgtSzR0nvp8jN1FP8SHyDeovCl Q6axue5dhYMZ5y2100K9FO6+hkY54lkFfAKA3qltmdsxULUjdJOfYMSIl89FyPzSAM3b T6y/Cjalg+WE8ULSe3+MzmpqYPNtQY+vxH1eU8T+jRxGMa7d6gi4gflKQDKpuAdDNNAk thKXISIEyPA8huqQhN7yMFu6fBguEn/p7d9+ORLcptzt7SoMRDrlMnhRQ9+Wa/kdnpti +uLg== 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=5r9uQjDLFi6eLClRWOICufpqmGktPWbrOwAV+KCU7UQ=; b=AC5ZwgU4FV/uUo6oJAf8NmTcTXcwWCcwP4e+SRZyyf7xe4WvgH3SpH9qMvcZCBBI8G mdjjmtIHkpwqln8S61uTtK/vV4x6FvG+/4ioOSsQHXkvclAMmLqoQmn7DLd3uYSkpp/G cHbk9gYiOyln+2GxMfnjS1b3O8pNGdB4Y/SLhvsAIMzw7MJRLWBjnjdGYbX1hRsS40UF DQvqnWcaeoZszM66R176MACLfzMQPKWcmKpOCfDURxomyHEn+QwwzGnR1eLQm1LdJwxN eTOwASrjXAJ4u1vFek63sY4ZfzLIzJbSskxtkXUyg5d6nXOuV2YUr9NaziqGZLzwgVVn 3jeg== X-Gm-Message-State: AOAM5329Ie98e1hlYF6pk+MEhxCAKaFuROKWpRFpqzRs9a3bvW3qnuhZ l7wuUnAmq/1dBEuwaZmnwPY= X-Google-Smtp-Source: ABdhPJy46SGoUfvFAn7rDMoOmhEDDtH27zsPNiMiEsSSuhPUh2Yv3lZK3O1aSDZu8LQQbZZsf/ASew== X-Received: by 2002:a17:906:5d15:: with SMTP id g21mr11358902ejt.373.1613780034488; Fri, 19 Feb 2021 16:13:54 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 08/18] hw/sd: ssi-sd: Fix STOP_TRANSMISSION (CMD12) response Date: Sat, 20 Feb 2021 01:12:59 +0100 Message-Id: <20210220001309.2225022-9-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng CMD12's response type is R1b, which is basically a R1 plus optional addition of the busy signal token that can be any number of bytes. A zero value indicates card is busy and a non-zero value indicates the card is ready for the next command. Current implementation sends the busy signal token without sending the R1 first. This does not break the U-Boot/Linux mmc_spi driver, but it does not make the VxWorks driver happy. Move the testing logic of s->stopping in the SSI_SD_RESPONSE state a bit later, after the first byte of the card reponse is sent out, to conform with the spec. After the busy signal token is sent, the state should be transferred to SSI_SD_CMD. Fixes: 775616c3ae8c ("Partial SD card SPI mode support") Signed-off-by: Bin Meng Message-Id: <20210128063035.15674-9-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/ssi-sd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 84c873b3fd4..907d681d19e 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -243,14 +243,15 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, u= int32_t val) s->mode =3D SSI_SD_RESPONSE; return SSI_DUMMY; case SSI_SD_RESPONSE: - if (s->stopping) { - s->stopping =3D 0; - return SSI_DUMMY; - } if (s->response_pos < s->arglen) { DPRINTF("Response 0x%02x\n", s->response[s->response_pos]); return s->response[s->response_pos++]; } + if (s->stopping) { + s->stopping =3D 0; + s->mode =3D SSI_SD_CMD; + return SSI_DUMMY; + } if (sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read\n"); s->mode =3D SSI_SD_DATA_START; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) client-ip=209.85.218.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780041; cv=none; d=zohomail.com; s=zohoarc; b=WKyxjrfFfBCQVkMJPIlY/QHJ8Fv/02NiG+pyup+vMuMwcgheu8xfOGEysxOiYM+8RGndv4GNjS45whHrjPdIODPhXH0gmQLU3+9vtd6H2ffG47RZLWWCxr2mN9YVpfSUo8eWESBVjua/1OFA2GXqxXOK/V4lUAlogUtbo15x4CQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780041; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vPmCWOVmMcnYs3uJ2Qo8t7odEjhCuWrigA7WBPRKGjg=; b=lp+nNay49vWLWmNSiPuf0qXkPwMIU1zAQIg7fz7d0haLqU+njcNVi2yQfhnYh7KmiD+ooSjz7kBr+ttO4H8Y/LfysU5EY7SA8UttKiGPmV9zFlOlGZ4S58yxwsqnbvWWNHiP7PZeCJWCJfMXVFitRQUgt579rI0BJgDZAp+mdlM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by mx.zohomail.com with SMTPS id 1613780041547530.0729817180812; Fri, 19 Feb 2021 16:14:01 -0800 (PST) Received: by mail-ej1-f41.google.com with SMTP id jt13so16982373ejb.0 for ; Fri, 19 Feb 2021 16:14:00 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id x17sm6426136edq.42.2021.02.19.16.13.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:13:59 -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=vPmCWOVmMcnYs3uJ2Qo8t7odEjhCuWrigA7WBPRKGjg=; b=UfVfOcPfF6WVwbY0VnsklQoRws/Ik3rKG8o868iTYQo/6hSRTtcbkK49oYjeKFHFTx dF05iUI27A9t2w1SRGD8WKR2SMf1LjB8p9fEhNsRNutl7GgAAEAyMTqXCwIGlTfA4mAt 2b9O/oh2A/+bKMIX0bM7gKq2O+KL9QvLQ9qzqVWQLXXU/UxUmB/iocJjGH9rdbJrbVxD uB0u+ZCQf+vTqIKi4J8B9MM3F+H4DO6uPu3qQe2KaefYugGG1KlKMSEU5H42doSdJurs LoIUlFhhkqYNYUnpMbw/VBx3+2k8EQT9JBAbJa5OXDe/gHa/UB/KvQcaS3sNugTPeRWE yyRQ== 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=vPmCWOVmMcnYs3uJ2Qo8t7odEjhCuWrigA7WBPRKGjg=; b=uGaKE2b5gEE+5+Xbg13d4UcGy1Jj0iCP+nh6Ttjn80ufVA8zgm98adUVc2vDQFZruh WErgGh+0jYJS1IQRrFJRL2Jyhbdh+jv4mLNqR7pGcmu/Sa96njx6A+K15JESFmSccif/ JYQSx2XFT7d4yRH/m7Z+6IJwuPhuFhaaf29etQz6/RgblI9T5buqKx1Os4gqbSxsQHu4 mH3GAU+D93aDZti0KRCozEmEc1f7tjAVgCiWclPlSaBaBT2XQDMmZdaLK9nPrifA7jfW B4NVgXNtCOJnS3HezJx9P11mOos3zIcoDVuCMC5x941j89d6Irf+IUp6s/m9wJX2FSO6 0aEw== X-Gm-Message-State: AOAM533PgYWN+wi450lH3zb063bMqjZwS5zXp1O49N6mkrbNoBE1iu+6 NZlkIngDL2zzuD/Y+nOZqLT3XjoTLBI= X-Google-Smtp-Source: ABdhPJwZ2UgRcgXgros8aRHO7r+TB+voXjrFB07eFUHMBBRT9BouPGj1hv11p5ozLpZtlvqQ5ivzQg== X-Received: by 2002:a17:906:69c2:: with SMTP id g2mr10688143ejs.249.1613780039841; Fri, 19 Feb 2021 16:13:59 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 09/18] hw/sd: ssi-sd: Handle the rest commands with R1b response type Date: Sat, 20 Feb 2021 01:13:00 +0100 Message-Id: <20210220001309.2225022-10-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng Besides CMD12, the following command's reponse type is R1b: - SET_WRITE_PROT (CMD28) - CLR_WRITE_PROT (CMD29) - ERASE (CMD38) Reuse the same s->stopping to indicate a R1b reponse is needed. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210128063035.15674-10-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/ssi-sd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 907d681d19e..97ee58e20cf 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -194,6 +194,12 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, ui= nt32_t val) /* CMD13 returns a 2-byte statuse work. Other commands only return the first byte. */ s->arglen =3D (s->cmd =3D=3D 13) ? 2 : 1; + + /* handle R1b */ + if (s->cmd =3D=3D 28 || s->cmd =3D=3D 29 || s->cmd =3D=3D = 38) { + s->stopping =3D 1; + } + cardstatus =3D ldl_be_p(longresp); status =3D 0; if (((cardstatus >> 9) & 0xf) < 4) --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) client-ip=209.85.218.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780047; cv=none; d=zohomail.com; s=zohoarc; b=EkAvHNIaDwPeLFd1HFsfERvA1ZspWo93wbAVxXtEcwELZZJU/LI/bbuYOZjaq3ZsGc20CN2GgKCtvLy35lLPbDONyoH71B9gFFGjlntQXTDzPGainXWxq9TMCMaHPZGGkOpBdl389Tg240BcAHYfhgx2MMUUfp3f7gx43KhwFko= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780047; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NFijLuT8EaS8irfxFTsO9TYYMK5wRiR7VW/dtqh77EQ=; b=Ne1R6EMTpR7MLD+F/AtUqwMOMUKops8ahUHPc5sERXDt2UUgBmqicvx15wSZ0GRYWc/exWVDBraWAPIox8yrea38auac8RPu1FBpYcaRMNlqHAF7ySsT7eeCq8a8dmN2AnpciAuzsJDDBgVD73U6M3ONKAK/bemO3aHMNmz8uqg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) by mx.zohomail.com with SMTPS id 1613780046773506.29505945696974; Fri, 19 Feb 2021 16:14:06 -0800 (PST) Received: by mail-ej1-f43.google.com with SMTP id hs11so16981230ejc.1 for ; Fri, 19 Feb 2021 16:14:06 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id m26sm236707eja.6.2021.02.19.16.14.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:04 -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=NFijLuT8EaS8irfxFTsO9TYYMK5wRiR7VW/dtqh77EQ=; b=mCpS0icxeHlm/LkLxfjGrlGGeShvB7F9lceyAgT+veCFc/6Xv2+rsHCtX/kAKKTgSi C2C9HRVQXi4vAC/OTFL4cvy9bNbdXTHteVSzvCYvykXdi5HB8yGsX7pr374NeYKdXxsI 0JCf0swMQ/62dWIEkLz5aAVC2ObK1PuenZUGvklP4/8kxBrJD5mZFvGvhAmMd8Ldsagh DOWAL/1cEEjaM+3w92yq6w65M7kadaqzTpba79NzQyugbVxU/iMrggomVNUMebN+VvBU 0iSFlsCCf+rQUNj2LUGeUvIHiIvbHuX/JOLBTl6D2v0rc9q9yM9BvB7uQLOcVG0oRp7Q 9uIA== 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=NFijLuT8EaS8irfxFTsO9TYYMK5wRiR7VW/dtqh77EQ=; b=BehopillOgY2rcUP+poPWBnjUrfUnFkMSmFK+69N4AoUKDEnsjUbZRV3wbVcL/bbDa sGwXfZghN7XEVFUzC7cVu2y/zaSguDvEwDxtXbZXa2aAQqjwk0giywU+JmxoZnPFfL0a kX9JQplbjw7ZmQ88L2US4vqEINBb8hGnWryNaf+m0fum/DhdjBjxdn6Av6xwulWp1bFB CBOeHwJk8lBLo00aSG9Qx4/b1F3759gM8ZVJ0FZ5B308pZ6RLkX/gZaBvNTKaew6Bp15 Zlv05xcm/lgpZ6nLDtKy2+sx/Puza9LnZzo1i5DkR3GG+O0Hq3vYCMey/s2HuFYf6MUL 7niA== X-Gm-Message-State: AOAM533Q0W4kuM1k3rWt+8w7R9zFSP68Ynh+8Nj1bXIn5CBJRVygys/O NgQiEqOQc4zwntM6QJur9bomPFzovvw= X-Google-Smtp-Source: ABdhPJziaDzmAq5vR/ZeIm3zSlevg3T/UhSsf1B1AYwdy+Q87ldN9c2t5giJ84fXEaFALXuAyNa30g== X-Received: by 2002:a17:906:34c3:: with SMTP id h3mr11043186ejb.132.1613780044967; Fri, 19 Feb 2021 16:14:04 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 10/18] hw/sd: sd: Fix address check in sd_erase() Date: Sat, 20 Feb 2021 01:13:01 +0100 Message-Id: <20210220001309.2225022-11-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng For high capacity memory cards, the erase start address and end address are multiplied by 512, but the address check is still based on the original block number in sd->erase_{start, end}. Fixes: 1bd6fd8ed593 ("hw/sd/sdcard: Do not attempt to erase out of range ad= dresses") Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-2-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 172e83f99d9..7adcb4edfaa 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -760,7 +760,7 @@ static void sd_erase(SDState *sd) erase_end *=3D 512; } =20 - if (sd->erase_start > sd->size || sd->erase_end > sd->size) { + if (erase_start > sd->size || erase_end > sd->size) { sd->card_status |=3D OUT_OF_RANGE; sd->erase_start =3D INVALID_ADDRESS; sd->erase_end =3D INVALID_ADDRESS; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) client-ip=209.85.218.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780052; cv=none; d=zohomail.com; s=zohoarc; b=LgyctodlpoZjDmhvTptPvk7xeXzbaskcahZLe0hQpxI8K0AhlnYDGaLTN/MkhDOJRAR3EnSz3GfnwsoQTkwyO6qWbHagwpqDwlbpdOk5BaeMF/CiAXfm5LI+3JmEZMyDpsvTjXj0JEJ4XPzp3dzeYnpj/uX1YQOQ0DXNqDleTS8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780052; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Fy9SqTT3Pn6dnjUOO63fiY72ONZWC5VONbRFMJ3FRcE=; b=hUgypI+DPeWPI7MTFdXHhXbxqskbig38xLwZ+t0+JOOTrOQi6vt6ITlBV3aTeaCMmC0l4CSloFatEhN8a79DX+aYJKV8hC/UMNHp1K0fAriqvGu7moWNtkpedvVmAF1QDbSumKVQ1RZDfFCyXOPY3exGaHEZrCw+zj+5DG7CTGA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) by mx.zohomail.com with SMTPS id 161378005197321.90220213883208; Fri, 19 Feb 2021 16:14:11 -0800 (PST) Received: by mail-ej1-f43.google.com with SMTP id t11so16890783ejx.6 for ; Fri, 19 Feb 2021 16:14:11 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id r23sm5774296edp.34.2021.02.19.16.14.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:09 -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=Fy9SqTT3Pn6dnjUOO63fiY72ONZWC5VONbRFMJ3FRcE=; b=TswmdrwOJrMQUYVUhYL49m9C86/WnHdBw03bfxBqvcMjasokaLaRQO/Xe8eJEVTBSt cw+exWhCfvmo1cN+mGctC+9qrAkYO43s1RYWg66Efz26cJ91jSvg5Jc0/d0OhPZe/OOu VvaCamZbilIzh3iTnNkKWYBpJ3e7Y1tGZsrBLdUEn72ootnxOQsb/7BszD4J88I0aEUU BU35YATAnSLpobhtZ2lcw2Sv9cPQdPlOhAW3rrChC7PDbhMDYyToC/b/UECCwdXPEthQ ez0yppPDph87vqS0M/jb/HVVXNe93IY3HiWY9abGKS9NBmIkYmq3a7rYSq7lrtgEg8MD AadQ== 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=Fy9SqTT3Pn6dnjUOO63fiY72ONZWC5VONbRFMJ3FRcE=; b=IVSTtozXMrUGRZ4MaGPomc6AzVBxOzwjtnf6wMWOQi696UFKPc95vv8kkgDD3sbRr9 eQweumyUdKngdovT8qsQfwglPGDXJr3HJM4HK1qWAXPJfsvlsFPUM6NFl6z+ryKT7mcp xoWjGERrEkrJ5MsmXAV94Zq7ajejHoUHwE/LpOb3NwoOviBSLYW8J4OEw4q1bnWJGAw9 LnuyMfZWEayvJLuJPQz4RbwuDWgdLzjt+ebq8AoqOyehk2Xv3DCsI0e3BNb6VOfP0WsB eXCHqNBHkMLMcax8xkLADigkXeF8RVFSxde0Rjk5hpsRDViiHVQjkR2cvnmDoEsjmWEQ a2mg== X-Gm-Message-State: AOAM532bXxKSqiJ1YTpa7pXLLluG/YG0tVBe5D/ez++tPRu+y1Ys4Nrq ef6VKev1a0J+gwW2J6FqWFk= X-Google-Smtp-Source: ABdhPJwZj7y0U83TUCnOve8zdFimlXLondbECqMCeYkqM71lT/qWRctgHTUjErOMTmvHY3/uDGRFiA== X-Received: by 2002:a17:906:240c:: with SMTP id z12mr10942774eja.314.1613780050256; Fri, 19 Feb 2021 16:14:10 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 11/18] hw/sd: sd: Only SDSC cards support CMD28/29/30 Date: Sat, 20 Feb 2021 01:13:02 +0100 Message-Id: <20210220001309.2225022-12-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng Per the "Physical Layer Specification Version 8.00", table 4-26 (SD mode) and table 7-3 (SPI mode) command descriptions, the following commands: - CMD28 (SET_WRITE_PROT) - CMD29 (CLR_WRITE_PROT) - CMD30 (SEND_WRITE_PROT) are only supported by SDSC cards. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-3-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 7adcb4edfaa..dd1ce0bdae4 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1284,6 +1284,10 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) =20 /* Write protection (Class 6) */ case 28: /* CMD28: SET_WRITE_PROT */ + if (sd->size > SDSC_MAX_CAPACITY) { + return sd_illegal; + } + switch (sd->state) { case sd_transfer_state: if (addr >=3D sd->size) { @@ -1303,6 +1307,10 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) break; =20 case 29: /* CMD29: CLR_WRITE_PROT */ + if (sd->size > SDSC_MAX_CAPACITY) { + return sd_illegal; + } + switch (sd->state) { case sd_transfer_state: if (addr >=3D sd->size) { @@ -1322,6 +1330,10 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) break; =20 case 30: /* CMD30: SEND_WRITE_PROT */ + if (sd->size > SDSC_MAX_CAPACITY) { + return sd_illegal; + } + switch (sd->state) { case sd_transfer_state: sd->state =3D sd_sendingdata_state; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) client-ip=209.85.218.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780057; cv=none; d=zohomail.com; s=zohoarc; b=Mej47NfeFp48TyQ32LpadVOzdfCp5r6E98/CB6Sd9u+xTOVmnTRNHi30vshmMHqp2dtoa85yN8FG6WGCS3MPkXSbhnBJgXhhWeNa5cVIh2ViXMjBZbt4nTjd9Aav7OZ1r7TnIw7gVjtqYKjJXZuJmgscchblXAyHDwEmjifbD9Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780057; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WfAeaZD4Lxq8Mt+nPn3DFWL5VGya9TqmT4FCeMLnel4=; b=Z6bovezAB/DNp69OKVbD9ocJ78z13d7arNr8/HbA5QHDnPugZIwRRwTqGWfgRS66SAMxUC/F+Tl9r6MdTeIHX+7pq2yJ6WIZIAsw+yMwOGsY7lualbdyXXTh1+hRZ8s+puqiMt50fLT5QBHpGHihuuo0IVrcOzmivd7dnZO2bwc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by mx.zohomail.com with SMTPS id 1613780056991150.48212174166463; Fri, 19 Feb 2021 16:14:16 -0800 (PST) Received: by mail-ej1-f54.google.com with SMTP id k13so15044728ejs.10 for ; Fri, 19 Feb 2021 16:14:16 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id bm2sm5377644ejb.87.2021.02.19.16.14.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:14 -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=WfAeaZD4Lxq8Mt+nPn3DFWL5VGya9TqmT4FCeMLnel4=; b=IDcT8I0iJh/mbv5qDAO3Mz4jsG1rn7uJMLtl3YPUcVvKyNyRubNoMCzVLrKOwt9hcl +OcraU3bS3oDTZeUnkRLjHshDvQ0Pa09R2SwtkujTqsxSkA+NsBRHbkBSGanlyLVYbA6 lszzuVpFDjUHmzHDTOe+7x9imO6FUGePqDGznXwvLSOF8t4LQxlgPiMjET/md2ccmvSp v0gv2p7Z4NL2KqnGjdJRzHuL/ErZ4Qo5zB1RZv5ANg4pLe6icAUK7/ZY727IX4Hg7EbI xOcFj457cgv+gpaZ7XGoTSIZHd1xhsANFWEk8vib4OOZsCUyxwRc/9hksS76pHN91KEw X14g== 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=WfAeaZD4Lxq8Mt+nPn3DFWL5VGya9TqmT4FCeMLnel4=; b=pkGNbyZjBOFfYLU+cqmStfc6qnO9+BERo+khq8IOAAhppOBfJPilqBw7pfceB/TSfq uFt1s8fUDavWmzWlgNxmN0TUHQaAAfD4s2+gdhqxgQxaYpbOft6quszDbmajPJmSbNlt AgmjQ+ne07EO8mZueBF89JlyopRJiyz2vmSSsXNyEB3e0eyWoy0GlLwZR5n8valmi1IW 11d0STNPvhi5bbor6AIo6ywQVQxJLyABmW1v62daIyh9YMnzmVU+SfhHN9ld1qUPUzOb KcKor3SSPzSRnGQKLASfo3K9joK1/RtnGOHGGecru3Dnkmc0WH1Hk5N87vBl8thcH94D zqyQ== X-Gm-Message-State: AOAM530BWi+tU7HYsmdJLJb1t9AGN0tv5kxVIX+H0blu8rjAW6Zzn8cj yJn/8nW7nrimmiRDyMRAzA/vBc9vSXY= X-Google-Smtp-Source: ABdhPJx1kQErFR7zoVMKjsSLXbdAEUhFxXcpmrhMjtMuNVgIwkNm5fXiPzoM9lfe0HbnhqOy6vfAhw== X-Received: by 2002:a17:906:a4c:: with SMTP id x12mr10736604ejf.159.1613780055202; Fri, 19 Feb 2021 16:14:15 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 12/18] hw/sd: sd: Fix CMD30 response type Date: Sat, 20 Feb 2021 01:13:03 +0100 Message-Id: <20210220001309.2225022-13-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng Per the "Physical Layer Specification Version 8.00", table 4-26 (SD mode) and table 7-3 (SPI mode) command descriptions, CMD30 response type is R1, not R1b. Fixes: a1bb27b1e98a ("SD card emulation initial implementation") Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-4-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index dd1ce0bdae4..47ac0c51a8e 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1340,7 +1340,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, S= DRequest req) *(uint32_t *) sd->data =3D sd_wpbits(sd, req.arg); sd->data_start =3D addr; sd->data_offset =3D 0; - return sd_r1b; + return sd_r1; =20 default: break; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.45 as permitted sender) client-ip=209.85.218.45; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f45.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780062; cv=none; d=zohomail.com; s=zohoarc; b=Bo1+URJx8Y+FyPesymASWjew96CWO7GsO9fh92MU5DnZnLjTcNMlN9cJGXN7nTDSiX2EFr9Ul8Jsun3SSs9Pvf91IKsDPXG7nbdGsoooY0dYvE+Pakcqu0wW9FqgDltcvH4BEJltDshafgbaNgVch5uglA2dHY6ia/VsYXeGzQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780062; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NJIy2EJfrINu02Sg+2eUk6Okwf2LkLc7DBM1ywf5Bzo=; b=BOBODn30eeMgUcuaF/mUgnEKnXccFczpXzbJYf3ossvlWY79hc0sc7KpcGZgga9zEKKveY82m9WRjNHrMISOEDobDBm9j0oHsiwSYYy0OyraH+Ewm+DkLs1q1FzH23JXmWLt0KzciwXrnG6gWmnsKinpbas7dngW2Wa41n2Z7DI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by mx.zohomail.com with SMTPS id 1613780062191386.61630560837216; Fri, 19 Feb 2021 16:14:22 -0800 (PST) Received: by mail-ej1-f45.google.com with SMTP id lu16so16845815ejb.9 for ; Fri, 19 Feb 2021 16:14:21 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id t13sm3690861edr.17.2021.02.19.16.14.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14: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=NJIy2EJfrINu02Sg+2eUk6Okwf2LkLc7DBM1ywf5Bzo=; b=TVvq9asvbgtAELHTheyMr63pRqdnve88MbaaRJRkQw0ijE1h2mzmgYpFSM4CXm7vKp wDok1vfj0ET9aEO+YATaSSzvA5yhwApMR0+rO1QAWaHKOicNmeYfQtaR4UWKYgvsnv/L i37Iff0MEJUGswTQQgZALhMqjD2WnrstdcJ/Wp3mACRi8XvQraypKsRMw68I04GsdXqS sKeuuxDTsZnjt7IChm3ghT8O8fjhMk+fUL+xIfQleEBKUhSG2Os+Opy7P7l2Tz9ylFPk kQoSyF6wPosPvxw7GXJQALvLcbEVpQ7OWgVcYkg3iwxz3lotT3impAQtES0R9ax/9OgW htVA== 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=NJIy2EJfrINu02Sg+2eUk6Okwf2LkLc7DBM1ywf5Bzo=; b=udTLOBHbV40nGgHz4JEellKfwPz6x8Gah7xjg842eSBQ8lENRE7tX7jIIbEUyCO7WK fyU5dWf2zGrdkIh7xlyezoqaFNi7SQb7TmVP8vgbmFKmqGmsd/Mhf68NdwXgBKnaVMzi yfKQEjbk4u0d8K2pncUfZA/rj0LBIlW71ya+Y1ib7HQ9htnFJGPfgKeZuELGQUGHV9I3 hwxO5jnifG8ozH8ONTqJvLqaY6PZGnFEw1JY1Hsa5wYD3FeqZrR/Lk1ktdahBIIddrDR f5aeHQlLlDM43b7vwURXdd0VXx7AC2lIalb8oDeOT5pUzP5rLU5ZXnR7PK5JafmzGZ2C dDEA== X-Gm-Message-State: AOAM531jTaGsAgLGFHBo4JE8+Y807aorrvqhsBmbWVJd3mhKBzkopMR7 rDyPb8lYgpQ73Q7GxKtaRA5+/IDRIDw= X-Google-Smtp-Source: ABdhPJwKMrlK7iVWHMtIw5QZJN7Nc1a8nJrnRH51nKAPJBT0OoCSS9a9c7IMsnOn2Ma8Bb625enIJg== X-Received: by 2002:a17:907:20a8:: with SMTP id pw8mr11200757ejb.9.1613780060512; Fri, 19 Feb 2021 16:14:20 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 13/18] hw/sd: sd: Move the sd_block_{read, write} and macros ahead Date: Sat, 20 Feb 2021 01:13:04 +0100 Message-Id: <20210220001309.2225022-14-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng These APIs and macros may be referenced by functions that are currently before them. Move them ahead a little bit. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-5-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 47ac0c51a8e..4c6e7c2a33e 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -739,6 +739,27 @@ void sd_set_cb(SDState *sd, qemu_irq readonly, qemu_ir= q insert) qemu_set_irq(insert, sd->blk ? blk_is_inserted(sd->blk) : 0); } =20 +static void sd_blk_read(SDState *sd, uint64_t addr, uint32_t len) +{ + trace_sdcard_read_block(addr, len); + if (!sd->blk || blk_pread(sd->blk, addr, sd->data, len) < 0) { + fprintf(stderr, "sd_blk_read: read error on host side\n"); + } +} + +static void sd_blk_write(SDState *sd, uint64_t addr, uint32_t len) +{ + trace_sdcard_write_block(addr, len); + if (!sd->blk || blk_pwrite(sd->blk, addr, sd->data, len, 0) < 0) { + fprintf(stderr, "sd_blk_write: write error on host side\n"); + } +} + +#define BLK_READ_BLOCK(a, len) sd_blk_read(sd, a, len) +#define BLK_WRITE_BLOCK(a, len) sd_blk_write(sd, a, len) +#define APP_READ_BLOCK(a, len) memset(sd->data, 0xec, len) +#define APP_WRITE_BLOCK(a, len) + static void sd_erase(SDState *sd) { int i; @@ -1754,27 +1775,6 @@ send_response: return rsplen; } =20 -static void sd_blk_read(SDState *sd, uint64_t addr, uint32_t len) -{ - trace_sdcard_read_block(addr, len); - if (!sd->blk || blk_pread(sd->blk, addr, sd->data, len) < 0) { - fprintf(stderr, "sd_blk_read: read error on host side\n"); - } -} - -static void sd_blk_write(SDState *sd, uint64_t addr, uint32_t len) -{ - trace_sdcard_write_block(addr, len); - if (!sd->blk || blk_pwrite(sd->blk, addr, sd->data, len, 0) < 0) { - fprintf(stderr, "sd_blk_write: write error on host side\n"); - } -} - -#define BLK_READ_BLOCK(a, len) sd_blk_read(sd, a, len) -#define BLK_WRITE_BLOCK(a, len) sd_blk_write(sd, a, len) -#define APP_READ_BLOCK(a, len) memset(sd->data, 0xec, len) -#define APP_WRITE_BLOCK(a, len) - void sd_write_byte(SDState *sd, uint8_t value) { int i; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) client-ip=209.85.218.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780068; cv=none; d=zohomail.com; s=zohoarc; b=kW9Pt6o31CtPpxFdmINTSvmtPDCUECOcacipP+FgrbyYKQaxYK5SBYlxbbij+EM8VQGotqOmNIoTyntVPDIDJ6+4pSXnMbv7UbIBr8HcR4/TewK6XFMR7TjTJil4IQZiVE7V3Eq0taBBIfTcLs2UnNmRWAWJqOa0PP5VxTtms3E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780068; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZKECDGuoD/V2A2ROIUImwftJIuRHFRhmDb/rtg2wL20=; b=koAFhMbQgjjHSAQ/3Be/jweVqK6r2NnDwaQJoCatkUwJu+KJwJa7fbHRMFR1k8vJECK5eXXndDfCmIdebZTCyuX9Gq/evjs5xDjuuayXmGz9xEtqsLYl25vz0+2MimLJ3jQx0gOp9E51sseB7+tkT+hoEThmOScvZIzAUFkUF68= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by mx.zohomail.com with SMTPS id 1613780068065944.129993548677; Fri, 19 Feb 2021 16:14:28 -0800 (PST) Received: by mail-ej1-f51.google.com with SMTP id e13so13693720ejl.8 for ; Fri, 19 Feb 2021 16:14:27 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id hd39sm5044795ejc.116.2021.02.19.16.14.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:25 -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=ZKECDGuoD/V2A2ROIUImwftJIuRHFRhmDb/rtg2wL20=; b=jwW3noLDelBIw/fDDFmd2mf0phG00bXjsaks5W+OrEXgaOMMwzB1SIE40FdDR1dhQS Bpeum4ADezWKUeOfcGBxCbM14V8FRuJ2OvgTW5D/aRK8xH9Xswu1pOPvkhF7jXrAxUHD gVDRJaCG2ZDS4v8DyhcVT5ZhEBpgH9hvT8zIXp/bGXANJbIf4t6CpZjcX1Q0mFqFv7SK 8l0m2A6yEeiQ+2WDt13miwjmA/kBQgjAZ1xwkIur7+wvX1D4K9HykTdRJ8Zz1mW71kgO 2ipxNS1K/mF+uwBttIjY9BQEMgRaUedpXuQBV6okOScoLyRcBNYek2v0uo8MX49dia3q JPmw== 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=ZKECDGuoD/V2A2ROIUImwftJIuRHFRhmDb/rtg2wL20=; b=a5Q9q1fmbAYVP/z4cd2WhxEcHlUmQVaCjaYBvSEEqXglmgtL9jBRYs1vbzrqTHHlkP 6zHkn4lI9L3sVNOY8/ep0rJtO/FX6NjV4dpa9gp2+1Vb2OrB5W/cWJJ2VdXEqlAHDkvA ZiGVrUUPNl0b1AaqIskwE6w2dfcDhiIUqY+WzJ5oJAkDNxUUiAQnb9hQEJ9tn5Yf2iRl txKHLQ4QN4w6Z60CwSzW/ISMaaSCoEElYyiJn0gwk5/VI7kFvtTowlxOJXxfw8FBBB1c vqiWs4AgG5i8Rg2T7gTu+Q7X4Te0qSZrCTMOCAG+2SZiQNkb+N3B6rTCsbMqnZ4ys6Ia a3UA== X-Gm-Message-State: AOAM533m30do1dcwzYFXZsrcEC9EYcfq3FA1unreVA0UC+4iGAe0rdTg Qr6eM6vy9NMU6IWCYmBwzxD3AFqBi28= X-Google-Smtp-Source: ABdhPJxtdOH5+1gh/pFBI0OCF1v4k7V2Ngd/24ja72SttqcQxg5nmM3HXxKSbvEt2r02sWbjRDNVjg== X-Received: by 2002:a17:907:3e04:: with SMTP id hp4mr11201787ejc.188.1613780065825; Fri, 19 Feb 2021 16:14:25 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 14/18] hw/sd: sd: Skip write protect groups check in sd_erase() for high capacity cards Date: Sat, 20 Feb 2021 01:13:05 +0100 Message-Id: <20210220001309.2225022-15-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng High capacity cards don't support write protection hence we should not perform the write protect groups check in sd_erase() for them. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-6-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 4c6e7c2a33e..883c04de028 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -765,6 +765,7 @@ static void sd_erase(SDState *sd) int i; uint64_t erase_start =3D sd->erase_start; uint64_t erase_end =3D sd->erase_end; + bool sdsc =3D true; =20 trace_sdcard_erase(sd->erase_start, sd->erase_end); if (sd->erase_start =3D=3D INVALID_ADDRESS @@ -779,6 +780,7 @@ static void sd_erase(SDState *sd) /* High capacity memory card: erase units are 512 byte blocks */ erase_start *=3D 512; erase_end *=3D 512; + sdsc =3D false; } =20 if (erase_start > sd->size || erase_end > sd->size) { @@ -788,16 +790,20 @@ static void sd_erase(SDState *sd) return; } =20 - erase_start =3D sd_addr_to_wpnum(erase_start); - erase_end =3D sd_addr_to_wpnum(erase_end); sd->erase_start =3D INVALID_ADDRESS; sd->erase_end =3D INVALID_ADDRESS; sd->csd[14] |=3D 0x40; =20 - for (i =3D erase_start; i <=3D erase_end; i++) { - assert(i < sd->wpgrps_size); - if (test_bit(i, sd->wp_groups)) { - sd->card_status |=3D WP_ERASE_SKIP; + /* Only SDSC cards support write protect groups */ + if (sdsc) { + erase_start =3D sd_addr_to_wpnum(erase_start); + erase_end =3D sd_addr_to_wpnum(erase_end); + + for (i =3D erase_start; i <=3D erase_end; i++) { + assert(i < sd->wpgrps_size); + if (test_bit(i, sd->wp_groups)) { + sd->card_status |=3D WP_ERASE_SKIP; + } } } } --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.44 as permitted sender) client-ip=209.85.218.44; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f44.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780073; cv=none; d=zohomail.com; s=zohoarc; b=TkcpIMY4djPhIg30GYCbQjC9d/a5KMk2J01QwAhwqk4EZZXFcrWSLkbi7jDK8bfdQa7dzzCQqhncEeUijMm9JKUMYZ4OJc0L5ixMZmZg/nQvC/ZFoFeQMmiUhS57MNao9tSvf8xThfIDTbcXg9DolGk8Qk9ks5fOWqWcIVWzF3c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780073; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eGr5UWWx36FyPb21wHNpZuBCvW0pzWxLYXr/5FODULE=; b=kobBv9+s3hTRvQ4lNPk495CxWeziz77IggsU15568nTGYEd0VCGWRASvXx+1qll+QXelsYrHCo70f414DEvSrTnSXx1/F23S4Sktw9WJbQfvqxRB4Acc8AmiGBOIjLbZAvK3Gwwy6CqvhBYUjKGOx9fS4aNzA4UHMsqYTCYtzX4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by mx.zohomail.com with SMTPS id 1613780072656243.0074670120622; Fri, 19 Feb 2021 16:14:32 -0800 (PST) Received: by mail-ej1-f44.google.com with SMTP id w1so16779104ejf.11 for ; Fri, 19 Feb 2021 16:14:32 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id t23sm5378406ejs.4.2021.02.19.16.14.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:30 -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=eGr5UWWx36FyPb21wHNpZuBCvW0pzWxLYXr/5FODULE=; b=nNBba7oEqfjtEothvithV0gs6KG7Tzi5ru6mEsocc/NCNDURfeTD6zmTrP0Xe9N6QV NUkcyXLOz7r4a/jwZM2Nb4w/swl4SOZDFmmYQw06OSxMAfIJaM0P9umXiqaZQiXosXGS HOWnCzSXmZE7MyerELq+3jMMqlspnKDMay1oWhZoKj8YxcGbIMFV6thO+WKRFIN1NnCK ZQLfLnz3+hy9av2nl9lMk/Wy2Bd0Mt0zzifCBk2+8cBOm6BRmERQivmJdX9EgKkzDlSW 9wvTNpZ2G76PfXcWGGmD4KZAzZ4khe0Pf4Cec6ssvtcnGqKwQMoVTcWsOhBiL7fbha6G dmnw== 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=eGr5UWWx36FyPb21wHNpZuBCvW0pzWxLYXr/5FODULE=; b=KOZnFffVqUxZzETavtA+K2AKqiO3VnUJ///EjNrYIVm3X1BFjfVQcgAkaPq0noiCuO pGyhHf0wTSeJWvQaayrRcAO7rojak6bmmq8paYbraqlpDuHwfBEyog6waNslTWif0o73 nZtZSgO+lOr31zbm2NmHpXQfFIFYzIa9ECNteScX92BcIeh5TdjZ9Kec9oVl48SWV3wU Rth+dEyIPO+Cu68mvgAr/HZjlz0hgXI4Gh2lvf77n0pzMG8r9xcXHWoiNTgTPpyYP9+y 1gwm16cw8RhvNhmp79EZkiJYg6mEdkyBvbCJdClpmoZtzPnoNfboVxpQW0l9jlyWXniG 228Q== X-Gm-Message-State: AOAM532BMwOAPrQg3fL+OOZqi6IE4KZ6nKzyPtFcSH66OAh1xkCDg5zL muJbRh97oDTqivx/wQ8i3JE= X-Google-Smtp-Source: ABdhPJzRyuxF2sHZH33iGG7bJjVLSY3IUmMj354kdj2qJxjik6NgSq18VOFex1PmBr7SFS1WsQsBAQ== X-Received: by 2002:a17:906:4a0a:: with SMTP id w10mr11189069eju.551.1613780070856; Fri, 19 Feb 2021 16:14:30 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 15/18] hw/sd: sd: Skip write protect groups check in CMD24/25 for high capacity cards Date: Sat, 20 Feb 2021 01:13:06 +0100 Message-Id: <20210220001309.2225022-16-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng High capacity cards don't support write protection hence we should not perform the write protect groups check in CMD24/25 for them. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-8-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 883c04de028..3a515a5365f 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1268,8 +1268,10 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) sd->data_offset =3D 0; sd->blk_written =3D 0; =20 - if (sd_wp_addr(sd, sd->data_start)) { - sd->card_status |=3D WP_VIOLATION; + if (sd->size <=3D SDSC_MAX_CAPACITY) { + if (sd_wp_addr(sd, sd->data_start)) { + sd->card_status |=3D WP_VIOLATION; + } } if (sd->csd[14] & 0x30) { sd->card_status |=3D WP_VIOLATION; @@ -1821,9 +1823,11 @@ void sd_write_byte(SDState *sd, uint8_t value) sd->card_status |=3D ADDRESS_ERROR; break; } - if (sd_wp_addr(sd, sd->data_start)) { - sd->card_status |=3D WP_VIOLATION; - break; + if (sd->size <=3D SDSC_MAX_CAPACITY) { + if (sd_wp_addr(sd, sd->data_start)) { + sd->card_status |=3D WP_VIOLATION; + break; + } } } sd->data[sd->data_offset++] =3D value; --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.44 as permitted sender) client-ip=209.85.218.44; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f44.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780078; cv=none; d=zohomail.com; s=zohoarc; b=k5JZAuz9nM7cUV7Rs1DEpr4fmtKMH6C0UjL9wZdWVOu5SEVnRzTTXtPO8vu57fT1ShLyJXASffFnbjS1uIXxpjKhhG0zZjy9GJ8k9G5xLnHCqiyk2ntTL2i6sXbWPpzblUtMhsJwT/zxXNvUlg2mAyQAAE27Ot2rqnJn06zHrLU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780078; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Qh/0Ss/cVm5EwuEbhAfkwZcS/qVzMmiRGBnEd0cOA9M=; b=CrQgGStg6osL1zPJ4oNzKnJpSaQFrxWWOBnQQyHcVW3hTUSsJL4LPYm0H5u48wIvMrO1t9QPlDGh2nYNcyk5gvCoSaRDifWeSQeUZJJxK25eAE66Geh05e5O0YhBCA39mDYzY0cSrXcMqd4ji8g6byf9PfEn+pXuZeCFxS252eg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by mx.zohomail.com with SMTPS id 1613780077724658.682540997569; Fri, 19 Feb 2021 16:14:37 -0800 (PST) Received: by mail-ej1-f44.google.com with SMTP id d8so16919887ejc.4 for ; Fri, 19 Feb 2021 16:14:37 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id i18sm6027138edt.68.2021.02.19.16.14.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:35 -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=Qh/0Ss/cVm5EwuEbhAfkwZcS/qVzMmiRGBnEd0cOA9M=; b=WENlvlvSpzopF/e/Z5IR279XevIjs3VVJKxBNg3wVJDMGxaPT0k7PmtSrAcp1xvF1s TMqF5S2A20nYCEamCPtoJszE3wD35gS5xZUv4fCaPBXiuQMj/x5tvEHXgJpyq+uoH17n 0dxwj2BG3wEEsj62Bds/1yTBB8up+OTnaIzfNLoNyCj8qT4fxX/8O22ISiuxWeOvGB0r WRKvqM+DtUqwMj2Wfo85TM+nYif7erwWB8FYZTtjPFB67ZCxns93FQuqOPcotrsl+r30 N3+KheR38fTY2gMRopMNr0+6vRn3NyFwNljLSPe/SN5Ugu6DWNoJRfvx2D8Plj0mQU9n Y5kQ== 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=Qh/0Ss/cVm5EwuEbhAfkwZcS/qVzMmiRGBnEd0cOA9M=; b=bbWSo8GmcxcQ7MBmKNrjTrutXwMuQ67xOSvB8ZrWMtKbchXOUa2QbbBHtzBnTuWq8i rH+B+5atrxj1eCp3AL2OxUPI70TcHTKAgfB/eTYX/eBV2dTljlKKEd3P1xnmNGCVA51I mpJLkUdVEMBqeQPPE/RdaAnMIibUd8wyr9Jg+pUhDrlXZ+pGVvsiSAVyh8CeetkrvZ3M HmaAn3J7+e/B9gysAw7brj2Ns+X3WOU2d2VgHrWKCBQhszbNFoepklWtqdvPIrZ3CJMS /coHu4lj5lxVTQKc8opFdCN5LWHNWen3WmWEO7+BpRIIA5HlDcBp2yqyqWR0d5MQ6USW 1llQ== X-Gm-Message-State: AOAM531FZ0VFrOm6fQY4bTpn6amOF2LvSi75qM3JyKH0ewX+7V5mnFr0 0ckJObFx85z4FvoQ7u64zvo= X-Google-Smtp-Source: ABdhPJx5jvqNcbIkJDaW5lB7B+zF2YB2Ldcpwkl47brphddQfdnAGaXUZQ2c204H+gZsI2gPS8/oEQ== X-Received: by 2002:a17:906:7d87:: with SMTP id v7mr7564939ejo.214.1613780075971; Fri, 19 Feb 2021 16:14:35 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 16/18] hw/sd: sd: Bypass the RCA check for CMD13 in SPI mode Date: Sat, 20 Feb 2021 01:13:07 +0100 Message-Id: <20210220001309.2225022-17-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng Unlike SD mode, when SD card is working in SPI mode, the argument of CMD13 is stuff bits. Hence we should bypass the RCA check. See "Physical Layer Specification Version 8.00", chapter 7.3.1.3 Detailed Command Description (SPI mode): "The card shall ignore stuff bits and reserved bits in an argument" and Table 7-3 Commands and Arguments (SPI mode): "CMD13 Argument [31:0] stuff bits" Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216150225.27996-9-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 3a515a5365f..8b397effbcc 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1163,8 +1163,9 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, S= DRequest req) case 13: /* CMD13: SEND_STATUS */ switch (sd->mode) { case sd_data_transfer_mode: - if (sd->rca !=3D rca) + if (!sd->spi && sd->rca !=3D rca) { return sd_r0; + } =20 return sd_r1; =20 --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.45 as permitted sender) client-ip=209.85.218.45; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f45.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1613780083; cv=none; d=zohomail.com; s=zohoarc; b=Q3VKqlGgX8F/vLDbiSjGegsrnVc83OG2iilKlv6VJiRBzQZPG16TEEXO9LyydbOcKZ9ZcbooFeuMnbH68qXSXHrLGMAXLgzjdJltFMlq1X88Akw4af2jjSsm0fz8ZoUjGgXrwmTM2wETZJUQHfJnu3GD72Qf8+SJX6g7s3fcOvA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780083; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ogosMx6+XaZEFs6yOws54HQVGtnw3hfkzq/juj/s7jQ=; b=lE5l03/Zs/qSS/NTSr8tgW0f8zm+fsAlBkgtzkh/7W4j9qj67CGmEKy2Yy30aEAWvvSqwFzCYabhrRgFzSbzJHEwwKDRnqN7f+YzW985EtRFgBK7fYaE+s+ci1L5n13YtcUPdhE+RNkwrvP5vddK7+Z6qEPLUjxTCCDvHqZzae8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by mx.zohomail.com with SMTPS id 1613780082975216.32255054987536; Fri, 19 Feb 2021 16:14:42 -0800 (PST) Received: by mail-ej1-f45.google.com with SMTP id n13so16772339ejx.12 for ; Fri, 19 Feb 2021 16:14:42 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id x21sm5326844eje.118.2021.02.19.16.14.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:40 -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=ogosMx6+XaZEFs6yOws54HQVGtnw3hfkzq/juj/s7jQ=; b=gBf3ZzCmTEV0ZFKUllE88OCt0Dd/WsCJ7NKJ1HcNzRlJw36X64z7xMKCm7QA/cp7od svAtTOEpq75lBZ6g6y6EWbOxHPIvun9kFIqEK4Aq1hRrb/bGy+v/Z8YTG4erGK276jXu lMK0xog9GC/6NzgyLtifnW9VjpuXmvVhWtvKTvwWMH/va3Wjho1ChrTqPXDvdMlkA4E2 sR7GhFibCVT+uIqxymdEcS3RhK68H5pZLWXl05YhrgAwMW3fXIjee2eoEhP9vBfOHUGr Yy1zhDM7FvgZ8eIzwEKX3f9wPrU46nfWsX3jw1gN/kZPG7PFXfNZorQQgieTb+aJm7/G 2aHA== 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=ogosMx6+XaZEFs6yOws54HQVGtnw3hfkzq/juj/s7jQ=; b=MaJpUCYR3Kz1C4YQL4CziV8UWSMefeW3925o2f+vStQQEJIMRbvKHgtHGGiIQtymWD klXO7DssSlnpOXQQB+2x+zbtZLvSWMY0/enIAmzwhfZorMIEVJ5cvgCOj3jAnRMIAoXq biaj9r7JPPXaUC9SSCIngM+5xAXsYIKJtQIC9vCGmrS89UXEMPYgmeCZNg4UQIEgJpDY VMgf2eZNqrlk1Ypbq2kn62Bc8gkblGa41n5opaul6Sm32aSlo+3p9m5ZPdtPTDeEJ7UE fLsFbfxrASUVwHDDAD/dEH6fFHoeqibVlRM38FfyJ3mku/abQiTI/MjpGrsevnkwkFHJ oemw== X-Gm-Message-State: AOAM531qjS5Ip4haPP8svxSPEk3ekttn75x9LufNTV8fvZdpIkVnflRO gmf7pcAY8t+NJr+hY+Fw6Zk= X-Google-Smtp-Source: ABdhPJyU3Dt9q1+sEEC2hoQJoYLeWbmwNFtBTNSGfse740BQ4YxaWEJWu+OggTwVSWYGefJQxxO8zA== X-Received: by 2002:a17:906:a0c:: with SMTP id w12mr10867759ejf.211.1613780081250; Fri, 19 Feb 2021 16:14:41 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bin Meng , Alexander Bulekov Subject: [PULL 17/18] hw/sd: sdhci: Simplify updating s->prnsts in sdhci_sdma_transfer_multi_blocks() Date: Sat, 20 Feb 2021 01:13:08 +0100 Message-Id: <20210220001309.2225022-18-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) From: Bin Meng s->prnsts is updated in both branches of the if () else () statement. Move the common bits outside so that it is cleaner. Signed-off-by: Bin Meng Tested-by: Alexander Bulekov Reviewed-by: Alexander Bulekov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <1613447214-81951-5-git-send-email-bmeng.cn@gmail.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 8ffa53999d8..9acf4467a32 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -596,9 +596,9 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) page_aligned =3D true; } =20 + s->prnsts |=3D SDHC_DATA_INHIBIT | SDHC_DAT_LINE_ACTIVE; if (s->trnmod & SDHC_TRNS_READ) { - s->prnsts |=3D SDHC_DOING_READ | SDHC_DATA_INHIBIT | - SDHC_DAT_LINE_ACTIVE; + s->prnsts |=3D SDHC_DOING_READ; while (s->blkcnt) { if (s->data_count =3D=3D 0) { sdbus_read_data(&s->sdbus, s->fifo_buffer, block_size); @@ -625,8 +625,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) } } } else { - s->prnsts |=3D SDHC_DOING_WRITE | SDHC_DATA_INHIBIT | - SDHC_DAT_LINE_ACTIVE; + s->prnsts |=3D SDHC_DOING_WRITE; while (s->blkcnt) { begin =3D s->data_count; if (((boundary_count + begin) < block_size) && page_aligned) { --=20 2.26.2 From nobody Fri May 10 14:17:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.48 as permitted sender) client-ip=209.85.208.48; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f48.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613780088; cv=none; d=zohomail.com; s=zohoarc; b=VLDNgtyNStnsuYBjMrz/5Ag2k2hsdGSizUlY8j/xvhsdbHo/qTwOgdrQpr5EsSyG6/u5wiUHKvDY9eoeZG7+wQQkv4dIUJwNW69wwpOV+fwcwpGjFY38qePHzKEAln5TOB3AIboTQZHaOD4rw5lxOif1RG98AeWXEYlRauKK1C8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613780088; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=afHWT3306/WX6rKfVJ4c+pjfPJhY8s9AlcBO1bosnCI=; b=gb5kwLQAsrQY/wsP7Af4Ip7/ePktmEVfMcjNuV4EgDL0LKqA65wuDjHwrxg+tR4Ji99PtAKbeypzj+cecC2l6jXEQ8/GI/f5BDSBG1Z8VefyYyx/YI44PAlwDy01EWh0WMBM8CK/X7inlVmSm9Oj3I2QY07hUO57+cQAEfTD/U8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by mx.zohomail.com with SMTPS id 1613780088372304.2219315924141; Fri, 19 Feb 2021 16:14:48 -0800 (PST) Received: by mail-ed1-f48.google.com with SMTP id v22so12636406edx.13 for ; Fri, 19 Feb 2021 16:14:47 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id ha21sm5896773ejb.97.2021.02.19.16.14.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 16:14:45 -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=afHWT3306/WX6rKfVJ4c+pjfPJhY8s9AlcBO1bosnCI=; b=t6MfMfZ+/S5BgDGBG6qV/krghURiNqk8layQjWevThH5+I3vYTh/2gEG6aJNnMfVTI bBGNYsrYXPolh73R+4bzIyry/IVH+aWODlwBwArZ06oXhezsi6Qnh52FOP7Gb+8LzK9x sLlPepnYWZaI0iFOd3lGxWsU0nozHiNE4VQ6zhTh2fJ4CeloATFtLx4wWv3xxR2rBe6X LghXVpwJ29aAq8npILFdgzNlDbIU1IRIHn9vYPJFxLz/jCCFxEL/3x7GybACXSDMAang /Rfbs+XbIqx33NranwpDS9gYyRWj0euxqD2uczm+lFz0hb2JaMZOYF6aCtQe231DhFKn 3zwQ== 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=afHWT3306/WX6rKfVJ4c+pjfPJhY8s9AlcBO1bosnCI=; b=FzNwAaMavqTp8Gs/ixHMaShK8EvLtUl/DJFPXAiJNJYpwzhKm99xzyD3U70cTniq+o MI37fdPLSVr/0IQ8ygs5NyGjHESwRcenHH/fTv28hODexb4Q9wKtYeSuWwlUB7oCqV55 B0o/H5hvhxJ6Q5OdtEblui9ENSclok2VvLW52G+YuS3rW0+Bc1vOCy1o442mZ8vEVaKv IMPYAX5aeb1guUGWM2YYygii4M6qfcTF0wQGTV3lEOftrktgDkhAQCKXQuYi0sfBWSdz s4k8/t414lCob+lBYibGmX1kFW49FSjc3Uov3iimi+msh/UdO0Gmw2Emt+Ua1AVBi6/T RdbA== X-Gm-Message-State: AOAM531ZEkTVXxBmclqx2ifQ0jIawSmfyxxhTM5Hu6IA29vuZTBeR2rr MZt4FQQ82exlh9IKbwBkpyM= X-Google-Smtp-Source: ABdhPJz57mUGxD786cm6+4jkQAGOmVo/cV8H2BDN7NXXh7XgcPfl6Xs0X/Yenzr54YsLVkbXtfzkcg== X-Received: by 2002:a05:6402:26c9:: with SMTP id x9mr11764633edd.365.1613780086578; Fri, 19 Feb 2021 16:14:46 -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: Bin Meng , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 18/18] MAINTAINERS: Add Bin Meng as co-maintainer for SD/MMC cards Date: Sat, 20 Feb 2021 01:13:09 +0100 Message-Id: <20210220001309.2225022-19-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210220001309.2225022-1-f4bug@amsat.org> References: <20210220001309.2225022-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) There is new interest in the SD/MMC device emulation, so it would be good to have more than only one maintainer / reviewer for it. Bin Meng proved by his contributions a deep understanding of the SD cards internals, so let's add him to the corresponding section in the MAINTAINERS file. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Bin Meng Message-Id: <20210216132841.1121653-1-f4bug@amsat.org> --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 66354e6e495..5eeba79c5a3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1754,6 +1754,7 @@ F: hw/ssi/xilinx_* =20 SD (Secure Card) M: Philippe Mathieu-Daud=C3=A9 +M: Bin Meng L: qemu-block@nongnu.org S: Odd Fixes F: include/hw/sd/sd* --=20 2.26.2