From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610039048337.18699327271383; Fri, 9 Mar 2018 07:40:39 -0800 (PST) Received: from localhost ([::1]:46025 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK8I-0000bR-E1 for importer@patchew.org; Fri, 09 Mar 2018 10:40:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK4s-0006Jv-Va for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4r-0008BT-29 for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:02 -0500 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:32840) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4q-0008Az-N7 for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:00 -0500 Received: by mail-wm0-x241.google.com with SMTP id s206so3968075wme.0 for ; Fri, 09 Mar 2018 07:37:00 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.36.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:36: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=nhrZTibFV1HAW43jOOeBY1azsR9k1jXCwqjY/Rw7MVI=; b=PVRL1kWHhytHErDX2QjLmM0Dr7IyMOEsdN2wJKKf45LAJ1IiaQ/fVLWxG5fJiDFkWG j1/5FIKlpfXBQGgtA9ENFZ6N00RYwJiu/is4tN1DJdEHGOHW9qL1Vj8fLqaEs9/6A4XM RWhL8DPVzXtSaT28o2QBVpA283Mp6aL7eYqcuj0YCtmbFPDlljvnzhtzdur/Kc1GC88J lRyvXJky7zsrgPLnqdH9w7utBz0CmiRCc9Dv+10T+kWdrxyb+IFitBbH/72Jf8lzPbb6 dWe6U5ZYDsBDQpyCSSrXRMsUxSKWZPnRJWl5sjeatB7xCVaW3HIsd9V7T0zaVGYNZIOi DaMQ== 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=nhrZTibFV1HAW43jOOeBY1azsR9k1jXCwqjY/Rw7MVI=; b=gM98wkN9CsNgCirGM+KFPQBoT9d0Pp8zK1sv2D1RS2/mIvlvkHHBR/QLvuiDU+xbrk cNAy+Cs4TFbZ8ke9vpjuRs7UIs1eL3yaGwkZRvBw/h+0kMCayotGYzBx5y9ensqvyR9M QVjNO2kyVo1oHhG0BObNMoyNOn0imefnVaEXjDTwHYlBP3NyQINxPWxD39xx+TuRRvZe IfTxHVT7uXVVp5v4daNCRpDcB5MdzQU3dc00bSiOniWmHgQJZgWZxsvGCOihpc0fKTRC 443NmrMpd3KEZxplsRUtHa9am8aaL+tTBsd0rPHW9LgaHxX/AUh7tjcy0NJPzSRh+adv IxQQ== X-Gm-Message-State: AElRT7EAvK6IhzPP7TtIl7JtPveHjC8KviRTI8dF0bYpAHlINJPIfqHr bXAo44pyNmXhaiw3GQOBmYM3M38x X-Google-Smtp-Source: AG47ELtGAomQhcxNhzqh3NXTMcWtL9gJTcX+k7zSzUaSc8aAGn/KhxFx79s1P2Vf30tbwcHaTWgnTA== X-Received: by 10.28.192.24 with SMTP id q24mr2393017wmf.91.1520609819589; Fri, 09 Mar 2018 07:36:59 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:47 +0100 Message-Id: <20180309153654.13518-2-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PATCH 1/8] sdcard: Do not trace CMD55, except when we already expect an ACMD X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis Reviewed-by: Peter Maydell --- hw/sd/sd.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 933890e86f..4a9520e38e 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -866,13 +866,18 @@ static void sd_lock_command(SDState *sd) sd->card_status &=3D ~CARD_IS_LOCKED; } =20 -static sd_rsp_type_t sd_normal_command(SDState *sd, - SDRequest req) +static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) { uint32_t rca =3D 0x0000; uint64_t addr =3D (sd->ocr & (1 << 30)) ? (uint64_t) req.arg << 9 : re= q.arg; =20 - trace_sdcard_normal_command(req.cmd, req.arg, sd_state_name(sd->state)= ); + /* CMD55 precedes an ACMD, so we are not interested in tracing it. + * However there is no ACMD55, so we want to trace this particular cas= e. + */ + if (req.cmd !=3D 55 || sd->expecting_acmd) { + trace_sdcard_normal_command(req.cmd, req.arg, + sd_state_name(sd->state)); + } =20 /* Not interpreting this as an app command */ sd->card_status &=3D ~APP_CMD; --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610096636836.15243898685; Fri, 9 Mar 2018 07:41:36 -0800 (PST) Received: from localhost ([::1]:46033 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK9H-0001bV-LH for importer@patchew.org; Fri, 09 Mar 2018 10:41:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK4u-0006LJ-Hd for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4t-0008CH-1R for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:04 -0500 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:35803) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4s-0008Br-ND for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:02 -0500 Received: by mail-wm0-x242.google.com with SMTP id x7so4647838wmc.0 for ; Fri, 09 Mar 2018 07:37:02 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.36.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37:00 -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=mlGaT1fxhCWUQGJig4RbT+XlIn3SYMvPH5yWWk8hTqk=; b=kMQZRMDnmJ3L/NiIiVoGoNAIloXli+67NUPpYBSz+se6Jru8wGc4rM3lBN6nUVGiOH weY59xWkcbgqgCZ14OUrP+mMiebOcQ3hxCsnPtD467GHA61oFeS7deYeoAac8ISGih+C zKSNjohvm/x4++B03x7t42lyyB6x6w9r453F1N7s00aOWGVW3f9dbROClBhDzgZGWMff fQ9Mvkdawp1FREs9SYxKRf/jGOAbHbfMo8kpb5uw9BXGcl3G/TKUxGblVQMrj+Hdipm6 8z8d+DAABrb62c5sJcnkk6Tk3CgC+xED2LNxfxEp5sG+49UFK/6iqxQ1SSCLt4LPsmXi QgyA== 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=mlGaT1fxhCWUQGJig4RbT+XlIn3SYMvPH5yWWk8hTqk=; b=kC3SesWUmKGGIUyn13CMwB2HnPwQkWONu6X5d2WzDDwnjQuXfXVqM50Q67GiFbe8sX Q3Ei3v9ubATuSGjk4zJHlaxt5reErifuaDgYoJmtpbt61uAoCzOC8yy80JMgttP5YL2T Dh8VkNCsWiBXM/X1qKy9qpSgxORwFq4lE79XK+8iplEJ5ddHEMiayNhDA3k78UwuOmxZ JYYUSRE5aPUJFUWpHdx6WzomIGOU3kLUWK+yLUlgD8rouqFvnO2DkXNggfFSNvDQVBGy 7En/QAbi3iYyQ5m2kPy1+XU7o8HbxULcwq+NSpZRylo8AWWOd92acqJGi3XBYwYVFWF0 Jrzw== X-Gm-Message-State: AElRT7ENdJjfFAIxBdXntE2Ob/uBcHIVItD04oBColZrRS5XTPyxtlds AsyVrUx8u9NglCjKsKQr4dI= X-Google-Smtp-Source: AG47ELutiIi4++6js249iAGp5YlQreFpAScpU6PW5KJ2/wksC5HpwT3yudvPUUdcoqrm58bdbAmBjQ== X-Received: by 10.28.94.75 with SMTP id s72mr2567951wmb.126.1520609821280; Fri, 09 Mar 2018 07:37:01 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:48 +0100 Message-Id: <20180309153654.13518-3-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PATCH 2/8] sdcard: Display command name when tracing CMD/ACMD X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 The SDBus will reuse these functions, so we put them in a new source file. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell --- hw/sd/sdmmc-internal.h | 20 ++++++++++++++ hw/sd/sd.c | 13 +++++---- hw/sd/sdmmc-internal.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ hw/sd/Makefile.objs | 2 +- hw/sd/trace-events | 8 +++--- 5 files changed, 105 insertions(+), 10 deletions(-) create mode 100644 hw/sd/sdmmc-internal.c diff --git a/hw/sd/sdmmc-internal.h b/hw/sd/sdmmc-internal.h index 0e96cb0081..bf6fb06128 100644 --- a/hw/sd/sdmmc-internal.h +++ b/hw/sd/sdmmc-internal.h @@ -12,4 +12,24 @@ =20 #define SDMMC_CMD_MAX 64 =20 +/** + * sd_cmd_name: + * @cmd: A SD "normal" command, upto SDMMC_CMD_MAX. + * + * Returns an human useful name describing the command. + * + * Returns: The command name of @cmd or "UNKNOWN_CMD". + */ +const char *sd_cmd_name(uint8_t cmd); + +/** + * sd_acmd_name: + * @cmd: A SD "Application-Specific" command, upto SDMMC_CMD_MAX. + * + * Returns an human useful name describing the application command. + * + * Returns: The application command name of @cmd or "UNKNOWN_ACMD". + */ +const char *sd_acmd_name(uint8_t cmd); + #endif diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 4a9520e38e..bb149aa644 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -875,8 +875,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDR= equest req) * However there is no ACMD55, so we want to trace this particular cas= e. */ if (req.cmd !=3D 55 || sd->expecting_acmd) { - trace_sdcard_normal_command(req.cmd, req.arg, - sd_state_name(sd->state)); + trace_sdcard_normal_command(sd_cmd_name(req.cmd), req.cmd, + req.arg, sd_state_name(sd->state)); } =20 /* Not interpreting this as an app command */ @@ -1455,7 +1455,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, S= DRequest req) static sd_rsp_type_t sd_app_command(SDState *sd, SDRequest req) { - trace_sdcard_app_command(req.cmd, req.arg); + trace_sdcard_app_command(sd_acmd_name(req.cmd), + req.cmd, req.arg, sd_state_name(sd->state)); sd->card_status |=3D APP_CMD; switch (req.cmd) { case 6: /* ACMD6: SET_BUS_WIDTH */ @@ -1770,7 +1771,8 @@ void sd_write_data(SDState *sd, uint8_t value) if (sd->card_status & (ADDRESS_ERROR | WP_VIOLATION)) return; =20 - trace_sdcard_write_data(sd->current_cmd, value); + trace_sdcard_write_data(sd_acmd_name(sd->current_cmd), + sd->current_cmd, value); switch (sd->current_cmd) { case 24: /* CMD24: WRITE_SINGLE_BLOCK */ sd->data[sd->data_offset ++] =3D value; @@ -1908,7 +1910,8 @@ uint8_t sd_read_data(SDState *sd) =20 io_len =3D (sd->ocr & (1 << 30)) ? 512 : sd->blk_len; =20 - trace_sdcard_read_data(sd->current_cmd, io_len); + trace_sdcard_read_data(sd_acmd_name(sd->current_cmd), + sd->current_cmd, io_len); switch (sd->current_cmd) { case 6: /* CMD6: SWITCH_FUNCTION */ ret =3D sd->data[sd->data_offset ++]; diff --git a/hw/sd/sdmmc-internal.c b/hw/sd/sdmmc-internal.c new file mode 100644 index 0000000000..2053def3f1 --- /dev/null +++ b/hw/sd/sdmmc-internal.c @@ -0,0 +1,72 @@ +/* + * SD/MMC cards common helpers + * + * Copyright (c) 2018 Philippe Mathieu-Daud=C3=A9 + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "sdmmc-internal.h" + +const char *sd_cmd_name(uint8_t cmd) +{ + static const char *cmd_abbrev[SDMMC_CMD_MAX] =3D { + [0] =3D "GO_IDLE_STATE", + [2] =3D "ALL_SEND_CID", [3] =3D "SEND_RELATIVE_A= DDR", + [4] =3D "SET_DSR", [5] =3D "IO_SEND_OP_COND= ", + [6] =3D "SWITCH_FUNC", [7] =3D "SELECT/DESELECT= _CARD", + [8] =3D "SEND_IF_COND", [9] =3D "SEND_CSD", + [10] =3D "SEND_CID", [11] =3D "VOLTAGE_SWITCH", + [12] =3D "STOP_TRANSMISSION", [13] =3D "SEND_STATUS", + [15] =3D "GO_INACTIVE_STATE= ", + [16] =3D "SET_BLOCKLEN", [17] =3D "READ_SINGLE_BLO= CK", + [18] =3D "READ_MULTIPLE_BLOCK", [19] =3D "SEND_TUNING_BLO= CK", + [20] =3D "SPEED_CLASS_CONTROL", [21] =3D "DPS_spec", + [23] =3D "SET_BLOCK_COUNT", + [24] =3D "WRITE_BLOCK", [25] =3D "WRITE_MULTIPLE_= BLOCK", + [26] =3D "MANUF_RSVD", [27] =3D "PROGRAM_CSD", + [28] =3D "SET_WRITE_PROT", [29] =3D "CLR_WRITE_PROT", + [30] =3D "SEND_WRITE_PROT", + [32] =3D "ERASE_WR_BLK_START", [33] =3D "ERASE_WR_BLK_EN= D", + [34] =3D "SW_FUNC_RSVD", [35] =3D "SW_FUNC_RSVD", + [36] =3D "SW_FUNC_RSVD", [37] =3D "SW_FUNC_RSVD", + [38] =3D "ERASE", + [40] =3D "DPS_spec", + [42] =3D "LOCK_UNLOCK", [43] =3D "Q_MANAGEMENT", + [44] =3D "Q_TASK_INFO_A", [45] =3D "Q_TASK_INFO_B", + [46] =3D "Q_RD_TASK", [47] =3D "Q_WR_TASK", + [48] =3D "READ_EXTR_SINGLE", [49] =3D "WRITE_EXTR_SING= LE", + [50] =3D "SW_FUNC_RSVD", + [52] =3D "IO_RW_DIRECT", [53] =3D "IO_RW_EXTENDED", + [54] =3D "SDIO_RSVD", [55] =3D "APP_CMD", + [56] =3D "GEN_CMD", [57] =3D "SW_FUNC_RSVD", + [58] =3D "READ_EXTR_MULTI", [59] =3D "WRITE_EXTR_MULT= I", + [60] =3D "MANUF_RSVD", [61] =3D "MANUF_RSVD", + [62] =3D "MANUF_RSVD", [63] =3D "MANUF_RSVD", + }; + return cmd_abbrev[cmd] ? cmd_abbrev[cmd] : "UNKNOWN_CMD"; +} + +const char *sd_acmd_name(uint8_t cmd) +{ + static const char *acmd_abbrev[SDMMC_CMD_MAX] =3D { + [6] =3D "SET_BUS_WIDTH", + [13] =3D "SD_STATUS", + [14] =3D "DPS_spec", [15] =3D "DPS_spec", + [16] =3D "DPS_spec", + [18] =3D "SECU_spec", + [22] =3D "SEND_NUM_WR_BLOCKS", [23] =3D "SET_WR_BLK_ERASE_C= OUNT", + [41] =3D "SD_SEND_OP_COND", + [42] =3D "SET_CLR_CARD_DETECT", + [51] =3D "SEND_SCR", + [52] =3D "SECU_spec", [53] =3D "SECU_spec", + [54] =3D "SECU_spec", + [56] =3D "SECU_spec", [57] =3D "SECU_spec", + [58] =3D "SECU_spec", [59] =3D "SECU_spec", + }; + + return acmd_abbrev[cmd] ? acmd_abbrev[cmd] : "UNKNOWN_ACMD"; +} diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs index c2b7664264..a99d9fbb04 100644 --- a/hw/sd/Makefile.objs +++ b/hw/sd/Makefile.objs @@ -1,6 +1,6 @@ common-obj-$(CONFIG_PL181) +=3D pl181.o common-obj-$(CONFIG_SSI_SD) +=3D ssi-sd.o -common-obj-$(CONFIG_SD) +=3D sd.o core.o +common-obj-$(CONFIG_SD) +=3D sd.o core.o sdmmc-internal.o common-obj-$(CONFIG_SDHCI) +=3D sdhci.o =20 obj-$(CONFIG_MILKYMIST) +=3D milkymist-memcard.o diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 3040d32560..cdddca3dbf 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -24,8 +24,8 @@ sdhci_write_dataport(uint16_t data_count) "write buffer f= illed with %u bytes of sdhci_capareg(const char *desc, uint16_t val) "%s: %u" =20 # hw/sd/sd.c -sdcard_normal_command(uint8_t cmd, uint32_t arg, const char *state) "CMD%d= arg 0x%08x (state %s)" -sdcard_app_command(uint8_t acmd, uint32_t arg) "ACMD%d arg 0x%08x" +sdcard_normal_command(const char *cmd_desc, uint8_t cmd, uint32_t arg, con= st char *state) "%20s/ CMD%02d arg 0x%08x (state %s)" +sdcard_app_command(const char *acmd_desc, uint8_t acmd, uint32_t arg, cons= t char *state) "%23s/ACMD%02d arg 0x%08x (state %s)" sdcard_response(const char *rspdesc, int rsplen) "%s (sz:%d)" sdcard_powerup(void) "" sdcard_inquiry_cmd41(void) "" @@ -39,8 +39,8 @@ sdcard_lock(void) "" sdcard_unlock(void) "" sdcard_read_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0x= %x" sdcard_write_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0= x%x" -sdcard_write_data(uint8_t cmd, uint8_t value) "CMD%02d value 0x%02x" -sdcard_read_data(uint8_t cmd, int length) "CMD%02d len %d" +sdcard_write_data(const char *cmd_desc, uint8_t cmd, uint8_t value) "%20s/= CMD%02d value 0x%02x" +sdcard_read_data(const char *cmd_desc, uint8_t cmd, int length) "%20s/ CMD= %02d len %d" sdcard_set_voltage(uint16_t millivolts) "%u mV" =20 # hw/sd/milkymist-memcard.c --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610198842819.4043208302736; Fri, 9 Mar 2018 07:43:18 -0800 (PST) Received: from localhost ([::1]:46047 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euKAu-00038J-2k for importer@patchew.org; Fri, 09 Mar 2018 10:43:16 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50347) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK4v-0006Ly-BJ for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4u-0008Co-2Y for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:05 -0500 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:50580) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4t-0008CW-Ok for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:04 -0500 Received: by mail-wm0-x242.google.com with SMTP id w128so4708492wmw.0 for ; Fri, 09 Mar 2018 07:37:03 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.37.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37:01 -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=pTryUmqf7oXhx3ZYI6ydYUYsrPS+M8+E7U2BZnQi14I=; b=mAYNb3bgSZbx9E9fH0ddo3k7BM3LrsHFFJxgixJYN3Vk/yChVqUKAba/ZBKVgaZB+f LS0BVKIoZFGcB9U4iebo+RkrSaGelozWMl0JtZd2CcClzxEBXX95x2x/IwP9yn1Ar9fQ nwnxspwc+5oGyQQxMoP1nVonLTkxpjaQDUiNQTykChL/kX4ZTRKQ0bel2sp8FcBqoL6M Sv9uH+i7efPeLC8US6xLzf0uZhK3WR/23YyAooA20dlLljyWnXOcXEsqRxIMUmmoi+6m HkFwkcakbiSjoH8rz9qzmJNRh7N8r1UPM5jvwaHz5QOryInLvG0rKizbnCf3KhWhBzEy xjZQ== 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=pTryUmqf7oXhx3ZYI6ydYUYsrPS+M8+E7U2BZnQi14I=; b=WbC0BcHXpo+3FVv58OCMbQnj7xk7va9nNWhrr4x4Vs7I3LNObeOa1yyuSoCECVxC6l rSWagACQwQzkqM6zSb5SQWF3LrRmPo3wGTk5JDaHVoTWptqyLttTGo+qFdsz7wO0eOJh 9UZmnwYGYlBKhNy2+MCT2NOtqZNuMsqO4s7kQa/1KAPX1crmUJLpt8OkTHbNBouctYo2 b8AbQ+gOhrSuxPIIzhC2DnE9R0dZUSASseQxaCtxqaYFLf7hxOwYhfBu+YzBAyc21Xcx PNMbkCf/WRk22u8e5/rnXGFAApNrg8rA+l1891nip/5heNte3m9CwILHbWYHdhS+lhQ9 /SHg== X-Gm-Message-State: AElRT7Gv8sRFMWIt/uBV+UTnzpnO0r/A2WRFlizfFaU7NMdSultQBRYq RCsBwhm2S2nUGnnPxCfwkDXAgwHi X-Google-Smtp-Source: AG47ELuQsW1bVUKYMkLLh0cwZOqIx0qced3UD92gvu7L4mlLNHUq3dpRwE6tVUFM2YVQn8+hAE/khQ== X-Received: by 10.28.146.19 with SMTP id u19mr2335990wmd.67.1520609822542; Fri, 09 Mar 2018 07:37:02 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:49 +0100 Message-Id: <20180309153654.13518-4-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PATCH 3/8] sdcard: Display which protocol is used when tracing (SD or SPI) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell --- hw/sd/sd.c | 14 ++++++++++---- hw/sd/trace-events | 8 ++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index bb149aa644..dc50d6bbf7 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -120,6 +120,7 @@ struct SDState { qemu_irq readonly_cb; qemu_irq inserted_cb; QEMUTimer *ocr_power_timer; + const char *proto_name; bool enable; uint8_t dat_lines; bool cmd_line; @@ -875,7 +876,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDR= equest req) * However there is no ACMD55, so we want to trace this particular cas= e. */ if (req.cmd !=3D 55 || sd->expecting_acmd) { - trace_sdcard_normal_command(sd_cmd_name(req.cmd), req.cmd, + trace_sdcard_normal_command(sd->proto_name, + sd_cmd_name(req.cmd), req.cmd, req.arg, sd_state_name(sd->state)); } =20 @@ -1455,7 +1457,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, S= DRequest req) static sd_rsp_type_t sd_app_command(SDState *sd, SDRequest req) { - trace_sdcard_app_command(sd_acmd_name(req.cmd), + trace_sdcard_app_command(sd->proto_name, sd_acmd_name(req.cmd), req.cmd, req.arg, sd_state_name(sd->state)); sd->card_status |=3D APP_CMD; switch (req.cmd) { @@ -1771,7 +1773,8 @@ void sd_write_data(SDState *sd, uint8_t value) if (sd->card_status & (ADDRESS_ERROR | WP_VIOLATION)) return; =20 - trace_sdcard_write_data(sd_acmd_name(sd->current_cmd), + trace_sdcard_write_data(sd->proto_name, + sd_acmd_name(sd->current_cmd), sd->current_cmd, value); switch (sd->current_cmd) { case 24: /* CMD24: WRITE_SINGLE_BLOCK */ @@ -1910,7 +1913,8 @@ uint8_t sd_read_data(SDState *sd) =20 io_len =3D (sd->ocr & (1 << 30)) ? 512 : sd->blk_len; =20 - trace_sdcard_read_data(sd_acmd_name(sd->current_cmd), + trace_sdcard_read_data(sd->proto_name, + sd_acmd_name(sd->current_cmd), sd->current_cmd, io_len); switch (sd->current_cmd) { case 6: /* CMD6: SWITCH_FUNCTION */ @@ -2037,6 +2041,8 @@ static void sd_realize(DeviceState *dev, Error **errp) SDState *sd =3D SD_CARD(dev); int ret; =20 + sd->proto_name =3D sd->spi ? "SPI" : "SD"; + if (sd->blk && blk_is_read_only(sd->blk)) { error_setg(errp, "Cannot use read-only drive as SD card"); return; diff --git a/hw/sd/trace-events b/hw/sd/trace-events index cdddca3dbf..2059ace61f 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -24,8 +24,8 @@ sdhci_write_dataport(uint16_t data_count) "write buffer f= illed with %u bytes of sdhci_capareg(const char *desc, uint16_t val) "%s: %u" =20 # hw/sd/sd.c -sdcard_normal_command(const char *cmd_desc, uint8_t cmd, uint32_t arg, con= st char *state) "%20s/ CMD%02d arg 0x%08x (state %s)" -sdcard_app_command(const char *acmd_desc, uint8_t acmd, uint32_t arg, cons= t char *state) "%23s/ACMD%02d arg 0x%08x (state %s)" +sdcard_normal_command(const char *proto, const char *cmd_desc, uint8_t cmd= , uint32_t arg, const char *state) "%s %20s/ CMD%02d arg 0x%08x (state %s)" +sdcard_app_command(const char *proto, const char *acmd_desc, uint8_t acmd,= uint32_t arg, const char *state) "%s %23s/ACMD%02d arg 0x%08x (state %s)" sdcard_response(const char *rspdesc, int rsplen) "%s (sz:%d)" sdcard_powerup(void) "" sdcard_inquiry_cmd41(void) "" @@ -39,8 +39,8 @@ sdcard_lock(void) "" sdcard_unlock(void) "" sdcard_read_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0x= %x" sdcard_write_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0= x%x" -sdcard_write_data(const char *cmd_desc, uint8_t cmd, uint8_t value) "%20s/= CMD%02d value 0x%02x" -sdcard_read_data(const char *cmd_desc, uint8_t cmd, int length) "%20s/ CMD= %02d len %d" +sdcard_write_data(const char *proto, const char *cmd_desc, uint8_t cmd, ui= nt8_t value) "%s %20s/ CMD%02d value 0x%02x" +sdcard_read_data(const char *proto, const char *cmd_desc, uint8_t cmd, int= length) "%s %20s/ CMD%02d len %d" sdcard_set_voltage(uint16_t millivolts) "%u mV" =20 # hw/sd/milkymist-memcard.c --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610256833446.07860238192177; Fri, 9 Mar 2018 07:44:16 -0800 (PST) Received: from localhost ([::1]:46050 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euKBo-00040t-IT for importer@patchew.org; Fri, 09 Mar 2018 10:44:12 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50360) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK4w-0006Mn-6I for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4v-0008DU-4p for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:06 -0500 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:35280) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4u-0008Cw-V3 for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:05 -0500 Received: by mail-wr0-x243.google.com with SMTP id a27so1744311wra.2 for ; Fri, 09 Mar 2018 07:37:04 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.37.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37:03 -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=kB1OTCp2TdH2yW1HFVLZIOG5JBOFO8vZgh7VKcZkq98=; b=R0Bd2d1gHre2KKH2gmT9UAdxldP10hlWx42lmTttmdM0Pr/pwDKg6VbbP+ndMgNDDe 8qXwI/uN9ZLPaRlFPqI/49vEPFxLs/Sw7cVhCRCws8QbecMbzaMdZ50DUC2QomDE2FLS xyoQpEXg6rkz1Gf2dyKBdRyexTDbpPUw4M342EIh2OA5GpnVdQa+OV8dxAM/Fu2DR5hM C3VUURLobb50HYXKzokGIt+JqdCM0WYgBgs4yJZP0rHTU/nB/qWI4g0G7M97ByHIgqdr HHbKK6OGHNe8VRDr6lz8MTePYW6HZYTSapAud52EwdOY8LIKseOXF5qwGSxuaQ/320Ko D4kg== 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=kB1OTCp2TdH2yW1HFVLZIOG5JBOFO8vZgh7VKcZkq98=; b=mfbVJ/rMk6O5WEiTXXNpy5nblB5K4EVoYPkzqhmagYrNoJs3AvTjsxuCir1SU4Szpv nBg29+Hwd89EjCm/P11Crw8EGCxEWrdQ4st0dRSJVvFK0EhPOQK5rifSzA8GJ4fFbOPp BSMMVCKGNJ/zbg4E2S4XaxCTyOLI7j6ti8eCMbsBSRGWbckEymwFcRMIJmuGyCfqJtGS WXswvPyYsLJ9PR/AOPsYZb9vIoep8meC8ygH3GXgj+m+R1ANh6Wv6sDKfeVCHIQasdRR E5LJ4yomNIOW6FLHwvwgNgfdBPmFwY+fmIVvHW5CgXoK2GfCEx1pHkh0zKNga516Cydd Moew== X-Gm-Message-State: AElRT7FJ/fyDeOl8Pnt0UzyASIMLDgRoTb6ZIAdstJ5PvovKnjVodHIz dSOkNjJeqm44usyi8tp8kemAvvWV X-Google-Smtp-Source: AG47ELskaD5eZgN8fafdqa5xkQUOAExS9aLkcsqgMAPKFnQa8Zl4aR4LQSpcV6e1v8K+doDPHDlWCQ== X-Received: by 10.223.184.253 with SMTP id c58mr929526wrg.190.1520609823732; Fri, 09 Mar 2018 07:37:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:50 +0100 Message-Id: <20180309153654.13518-5-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH 4/8] sdcard: Add the Tuning Command (CMD19) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From the "Physical Layer Simplified Specification Version 3.01": A known data block ("Tuning block") can be used to tune sampling point for tuning required hosts. [...] This procedure gives the system optimal timing for each specific host and card combination and compensates for static delays in the timing budget including process, voltage and different PCB loads and skews. [...] Data block, carried by DAT[3:0], contains a pattern for tuning sampling position to receive data on the CMD and DAT[3:0] line. [based on a patch from Alistair Francis from qemu/xilinx tag xilinx-v2015.2] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sd.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index dc50d6bbf7..235e0518d6 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1169,6 +1169,14 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, = SDRequest req) } break; =20 + case 19: /* CMD19: SEND_TUNING_BLOCK (SD) */ + if (sd->state =3D=3D sd_transfer_state) { + sd->state =3D sd_sendingdata_state; + sd->data_offset =3D 0; + return sd_r1; + } + break; + case 23: /* CMD23: SET_BLOCK_COUNT */ switch (sd->state) { case sd_transfer_state: @@ -1893,6 +1901,20 @@ void sd_write_data(SDState *sd, uint8_t value) } } =20 +#define SD_TUNING_BLOCK_SIZE 64 + +static const uint8_t sd_tuning_block_pattern[SD_TUNING_BLOCK_SIZE] =3D { + /* See: Physical Layer Simplified Specification Version 3.01, Table 4-= 2 */ + 0xff, 0x0f, 0xff, 0x00, 0x0f, 0xfc, 0xc3, 0xcc, + 0xc3, 0x3c, 0xcc, 0xff, 0xfe, 0xff, 0xfe, 0xef, + 0xff, 0xdf, 0xff, 0xdd, 0xff, 0xfb, 0xff, 0xfb, + 0xbf, 0xff, 0x7f, 0xff, 0x77, 0xf7, 0xbd, 0xef, + 0xff, 0xf0, 0xff, 0xf0, 0x0f, 0xfc, 0xcc, 0x3c, + 0xcc, 0x33, 0xcc, 0xcf, 0xff, 0xef, 0xff, 0xee, + 0xff, 0xfd, 0xff, 0xfd, 0xdf, 0xff, 0xbf, 0xff, + 0xbb, 0xff, 0xf7, 0xff, 0xf7, 0x7f, 0x7b, 0xde, +}; + uint8_t sd_read_data(SDState *sd) { /* TODO: Append CRCs */ @@ -1972,6 +1994,13 @@ uint8_t sd_read_data(SDState *sd) } break; =20 + case 19: /* CMD19: SEND_TUNING_BLOCK (SD) */ + if (sd->data_offset >=3D SD_TUNING_BLOCK_SIZE - 1) { + sd->state =3D sd_transfer_state; + } + ret =3D sd_tuning_block_pattern[sd->data_offset++]; + break; + case 22: /* ACMD22: SEND_NUM_WR_BLOCKS */ ret =3D sd->data[sd->data_offset ++]; =20 --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520609949818433.34579217485907; Fri, 9 Mar 2018 07:39:09 -0800 (PST) Received: from localhost ([::1]:46016 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK6u-0007gN-W4 for importer@patchew.org; Fri, 09 Mar 2018 10:39:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK4y-0006Ox-4c for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4w-0008ES-SD for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:08 -0500 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:45824) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4w-0008Dv-IS for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:06 -0500 Received: by mail-wr0-x242.google.com with SMTP id h2so2129334wre.12 for ; Fri, 09 Mar 2018 07:37:06 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.37.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37: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=iyD+wImSrkOjxKVzq/FzC08WwIXANIQ9P3YkNYYStd8=; b=SBu2T5XfTVPWcPmif9OCY8Xz9wewFwI93XA1HVLuNARqHmyrlEbN42zaIzTTSzBPof VjHyZNFjqKa+dXpzK/XfBS6mLRABdQoXdZ8JG23V3JwAx4KwJTOaV39Su+FUhO3yLfE+ A8JlGF1edMyjsogvgHCpILgKudilS++TUC/Dtg3sk3rSsNIQdufkP9XrTUfFSV/Tcw6b HpPzNFE9k/1s+Y67SBEuhILiarIGiTWy47EmUj0k8+VJkjzVEjOKVrt2aDAFQF+/McCK bO6fB6Er/OzgWjhL0u/W4DA93tIVlNtxvsiESiVzGro7o/eHxlsjUjCqgBEKdpF/z0DT hCUw== 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=iyD+wImSrkOjxKVzq/FzC08WwIXANIQ9P3YkNYYStd8=; b=dVrbbBDXEZwo10ZEEl4bWyMEpXyVPkpY8lSRjep/OZ3TqWm6o6MxxNwaWZR6AzhZxr 2MIeRiLWpUAKJBoFi/nY2/Caq/0U/S/fR/7SrLBpGQ8SE9ILJJhtnedPLl2zxKe71NWX /yfod/PNn66HEpJfwHp5c6Z0s6U8R9iwzWq+YKuWGcLxhgX9yigRmEpUcCkhCACIlAG5 JhRcf4L28jyuZnO16HMl/kyxDEUn1drKhGY1TKVvN7MN34Ep+qPJDKiH3nmR5568SN30 en8e0t77uIrsuDXx1M6KaTWevvjGc6GiGfypqM+JnlqiNKGGKmLKwOUWeJRZhBxo1YLh 0vWA== X-Gm-Message-State: APf1xPCn+DJHDsJZm3XIDjlweKx5DG6oO+9k1jsEBv5htWUst3Yyi1nc U9JdMw1tSWxaMdmkWJ44iiY= X-Google-Smtp-Source: AG47ELvhkrn+swamjxLlqTxKvT/JDDcU0hk8pqr/n4XuZlZNnm4CDkKKokzDOWAgOWVlQJx7FI1F6Q== X-Received: by 10.223.200.2 with SMTP id d2mr25648801wrh.81.1520609825315; Fri, 09 Mar 2018 07:37:05 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:51 +0100 Message-Id: <20180309153654.13518-6-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [PATCH 5/8] sdcard: Implement the UHS-I SWITCH_FUNCTION entries (Spec v3) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 [based on a patch from Alistair Francis from qemu/xilinx tag xilinx-v2015.2] Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 148 +++++++++++++++++++++++++++++++++++++++++++++----= ---- hw/sd/trace-events | 1 + 2 files changed, 127 insertions(+), 22 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 235e0518d6..b907d62aef 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -124,6 +124,7 @@ struct SDState { bool enable; uint8_t dat_lines; bool cmd_line; + bool uhs_enabled; }; =20 static const char *sd_state_name(enum SDCardStates state) @@ -563,6 +564,7 @@ static void sd_reset(DeviceState *dev) sd->expecting_acmd =3D false; sd->dat_lines =3D 0xf; sd->cmd_line =3D true; + sd->uhs_enabled =3D false; sd->multi_blk_cnt =3D 0; } =20 @@ -761,30 +763,132 @@ static uint32_t sd_wpbits(SDState *sd, uint64_t addr) return ret; } =20 +/* Function Group */ +enum { + SD_FG_MIN =3D 1, + SD_FG_ACCESS_MODE =3D 1, + SD_FG_COMMAND_SYSTEM =3D 2, + SD_FG_DRIVER_STRENGTH =3D 3, + SD_FG_CURRENT_LIMIT =3D 4, + SD_FG_RSVD_5 =3D 5, + SD_FG_RSVD_6 =3D 6, + SD_FG_COUNT +}; + +/* Function name */ +#define SD_FN_COUNT 16 + +static const char *sd_fn_grp_name[SD_FG_COUNT] =3D { + [SD_FG_ACCESS_MODE] =3D "ACCESS_MODE", + [SD_FG_COMMAND_SYSTEM] =3D "COMMAND_SYSTEM", + [SD_FG_DRIVER_STRENGTH] =3D "DRIVER_STRENGTH", + [SD_FG_CURRENT_LIMIT] =3D "CURRENT_LIMIT", + [SD_FG_RSVD_5] =3D "RSVD5", + [SD_FG_RSVD_6] =3D "RSVD6", +}; + +typedef struct sd_fn_support { + const char *name; + bool uhs_only; + bool unimp; +} sd_fn_support; + +static const sd_fn_support *sd_fn_support_defs[SD_FG_COUNT] =3D { + [SD_FG_ACCESS_MODE] =3D (sd_fn_support [SD_FN_COUNT]) { + [0] =3D { .name =3D "default/SDR12" }, + [1] =3D { .name =3D "high-speed/SDR25" }, + [2] =3D { .name =3D "SDR50", .uhs_only =3D true }, + [3] =3D { .name =3D "SDR104", .uhs_only =3D true }, + [4] =3D { .name =3D "DDR50", .uhs_only =3D true }, + }, + [SD_FG_COMMAND_SYSTEM] =3D (sd_fn_support [SD_FN_COUNT]) { + [0] =3D { .name =3D "default" }, + [1] =3D { .name =3D "For eC" }, + [3] =3D { .name =3D "OTP", .unimp =3D true }, + [4] =3D { .name =3D "ASSD", .unimp =3D true }, + }, + [SD_FG_DRIVER_STRENGTH] =3D (sd_fn_support [SD_FN_COUNT]) { + [0] =3D { .name =3D "default/Type B" }, + [1] =3D { .name =3D "Type A", .uhs_only =3D true }, + [2] =3D { .name =3D "Type C", .uhs_only =3D true }, + [3] =3D { .name =3D "Type D", .uhs_only =3D true }, + }, + [SD_FG_CURRENT_LIMIT] =3D (sd_fn_support [SD_FN_COUNT]) { + [0] =3D { .name =3D "default/200mA" }, + [1] =3D { .name =3D "400mA", .uhs_only =3D true }, + [2] =3D { .name =3D "600mA", .uhs_only =3D true }, + [3] =3D { .name =3D "800mA", .uhs_only =3D true }, + }, + [SD_FG_RSVD_5] =3D (sd_fn_support [SD_FN_COUNT]) { + [0] =3D { .name =3D "default" }, + }, + [SD_FG_RSVD_6] =3D (sd_fn_support [SD_FN_COUNT]) { + [0] =3D { .name =3D "default" }, + }, +}; + +#define SD_FN_NO_INFLUENCE (1 << 15) + static void sd_function_switch(SDState *sd, uint32_t arg) { - int i, mode, new_func; - mode =3D !!(arg & 0x80000000); - - sd->data[0] =3D 0x00; /* Maximum current consumption */ - sd->data[1] =3D 0x01; - sd->data[2] =3D 0x80; /* Supported group 6 functions */ - sd->data[3] =3D 0x01; - sd->data[4] =3D 0x80; /* Supported group 5 functions */ - sd->data[5] =3D 0x01; - sd->data[6] =3D 0x80; /* Supported group 4 functions */ - sd->data[7] =3D 0x01; - sd->data[8] =3D 0x80; /* Supported group 3 functions */ - sd->data[9] =3D 0x01; - sd->data[10] =3D 0x80; /* Supported group 2 functions */ - sd->data[11] =3D 0x43; - sd->data[12] =3D 0x80; /* Supported group 1 functions */ - sd->data[13] =3D 0x03; - for (i =3D 0; i < 6; i ++) { - new_func =3D (arg >> (i * 4)) & 0x0f; - if (mode && new_func !=3D 0x0f) - sd->function_group[i] =3D new_func; - sd->data[14 + (i >> 1)] =3D new_func << ((i * 4) & 4); + int fn_grp, new_func, i; + uint8_t *data_p; + bool mode =3D extract32(arg, 31, 1); /* 0: check only, 1: do switch */ + + stw_be_p(sd->data + 0, 0x0001); /* Maximum current consumption */ + + data_p =3D &sd->data[2]; + for (fn_grp =3D SD_FG_COUNT - 1; fn_grp >=3D SD_FG_MIN; fn_grp--) { + uint16_t supported_fns =3D SD_FN_NO_INFLUENCE; + for (i =3D 0; i < SD_FN_COUNT; ++i) { + const sd_fn_support *def =3D &sd_fn_support_defs[fn_grp][i]; + + if (def->name && !def->unimp && + !(def->uhs_only && !sd->uhs_enabled)) { + supported_fns |=3D 1 << i; + } + } + stw_be_p(data_p, supported_fns); + data_p +=3D 2; + } + + assert(data_p =3D=3D &sd->data[14]); + for (fn_grp =3D SD_FG_COUNT - 1; fn_grp >=3D SD_FG_MIN; fn_grp--) { + new_func =3D (arg >> ((fn_grp - 1) * 4)) & 0x0f; + if (new_func =3D=3D 0xf) { + new_func =3D sd->function_group[fn_grp - 1]; + } else { + const sd_fn_support *def =3D &sd_fn_support_defs[fn_grp][new_f= unc]; + if (mode) { + if (!def->name) { + qemu_log_mask(LOG_GUEST_ERROR, + "Function %d not a valid for " + "function group %d\n", + new_func, fn_grp); + new_func =3D 0xf; + } else if (def->unimp) { + qemu_log_mask(LOG_UNIMP, + "Function %s (fn grp %d) not implemented= \n", + def->name, fn_grp); + new_func =3D 0xf; + } else if (def->uhs_only && !sd->uhs_enabled) { + qemu_log_mask(LOG_GUEST_ERROR, + "Function %s (fn grp %d) only " + "valid in UHS mode\n", + def->name, fn_grp); + new_func =3D 0xf; + } else { + sd->function_group[fn_grp - 1] =3D new_func; + } + } + trace_sdcard_function_select(def->name, sd_fn_grp_name[fn_grp], + mode); + } + if (!(fn_grp & 0x1)) { /* evens go in high nibble */ + *data_p =3D new_func << 4; + } else { /* odds go in low nibble */ + *(data_p++) |=3D new_func; + } } memset(&sd->data[17], 0, 47); stw_be_p(sd->data + 65, sd_crc16(sd->data, 64)); diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 2059ace61f..c106541a47 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -42,6 +42,7 @@ sdcard_write_block(uint64_t addr, uint32_t len) "addr 0x%= " PRIx64 " size 0x%x" sdcard_write_data(const char *proto, const char *cmd_desc, uint8_t cmd, ui= nt8_t value) "%s %20s/ CMD%02d value 0x%02x" sdcard_read_data(const char *proto, const char *cmd_desc, uint8_t cmd, int= length) "%s %20s/ CMD%02d len %d" sdcard_set_voltage(uint16_t millivolts) "%u mV" +sdcard_function_select(const char *fn_name, const char *grp_name, bool do_= switch) "Function %s (group: %s, sw: %u)" =20 # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x = value 0x%08x" --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610124777597.4190438397475; Fri, 9 Mar 2018 07:42:04 -0800 (PST) Received: from localhost ([::1]:46038 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK9j-00022S-OR for importer@patchew.org; Fri, 09 Mar 2018 10:42:03 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK4y-0006PC-E1 for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4x-0008Eu-OJ for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:08 -0500 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:34351) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4x-0008EZ-I0 for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:07 -0500 Received: by mail-wm0-x241.google.com with SMTP id a20so3955770wmd.1 for ; Fri, 09 Mar 2018 07:37:07 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.37.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37:05 -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=8VyWMF/WYHUY8Kbo2EPnma3lq0jO62Bw4K7/gEYXgPw=; b=vGeUmpIqGKXxsjfL0jKtPs/rjYer3KPaiiNwfjGB9syAKCCidDdiT0jW7JCwvtfIJv NOqMB59F/YsLTeSXw83KWeSoZh5Xh3dayN/y5CmNz/w8GV4IG4V7Lz9LXWfpLxpYCkMq JEA1XE69OeQIwhh+QRrxPS+DziF7GIxnDOMeSLKuoQzPyaaP+pZWSpXqCgiiMM/dZ7vi NKbYmmwdUitUFeOXr/UKuFVJH/prkj7XQCVdN2TEJCjgGg3diAX0JXwH84fiAS1QOY+E pzCzeRI32FXRzgiAW95nGCYTw4u23b3iyeB+P8LiC9USN6dsTsXE7WBFaZH3NtizaiF2 8SOw== 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=8VyWMF/WYHUY8Kbo2EPnma3lq0jO62Bw4K7/gEYXgPw=; b=g+czwBVdAPx2fmO1FrRA6Aw1NMLgX3yp7ADiFO3PUSmjan61uif1E3HRByMeQMIgS5 IAlHx7doeYfu5utPhyUrgRwmh31qPxVaS0ADaZKJEhyngeqawGrkDrkTBnD3qSDrxaUA D9tNFoBOw3kTqgwT8CEzKaOV9lTzpVW0r3oPbmj/x86MlQ/yWMkoPVqCGx4NnDpfQXUf Vh+R+po0RTrgUb9GS6r3mfUKTmV88RlwwFXCLGaWymY1fohENL34sll3Y6xH5Rf2WG0f p0tMxGDOS4qP9xKLjfO5oOnHfQ52ZlRvgeXTttRO41TXt7a+DB74gqD3yoj9gPlapNxd oHhg== X-Gm-Message-State: AElRT7GBK9s6HWzO2YLuPc4u9IGtLNmYgZ3bfnbTBdKsFquA8GA6lrsi qLq+uVdMZMhFROHUO9P61zE= X-Google-Smtp-Source: AG47ELt6HHLTujPxz3dUKNMk99SN/Tpw059E3IrZ/uMGlyWl650IAYh9jTUBIU4EzcP9TZgc+gzcnQ== X-Received: by 10.28.147.12 with SMTP id v12mr2373867wmd.139.1520609826510; Fri, 09 Mar 2018 07:37:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:52 +0100 Message-Id: <20180309153654.13518-7-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PATCH 6/8] sdcard: Add a 'uhs' property, update the OCR register ACCEPT_SWITCH_1V8 bit X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index b907d62aef..611094447c 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -93,6 +93,7 @@ struct SDState { /* Configurable properties */ BlockBackend *blk; bool spi; + uint8_t uhs_mode; =20 uint32_t mode; /* current card mode, one of SDCardModes */ int32_t state; /* current card state, one of SDCardStates */ @@ -292,6 +293,9 @@ static void sd_set_ocr(SDState *sd) { /* All voltages OK */ sd->ocr =3D R_OCR_VDD_VOLTAGE_WIN_HI_MASK; + + sd->ocr =3D FIELD_DP32(sd->ocr, OCR, ACCEPT_SWITCH_1V8, + sd->uhs_mode !=3D UHS_NOT_SUPPORTED); } =20 static void sd_ocr_powerup(void *opaque) @@ -2198,6 +2202,7 @@ static Property sd_properties[] =3D { * board to ensure that ssi transfers only occur when the chip select * is asserted. */ DEFINE_PROP_BOOL("spi", SDState, spi, false), + DEFINE_PROP_UINT8("uhs", SDState, uhs_mode, UHS_NOT_SUPPORTED), DEFINE_PROP_END_OF_LIST() }; =20 --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610277177369.8164022203887; Fri, 9 Mar 2018 07:44:37 -0800 (PST) Received: from localhost ([::1]:46056 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euKCC-0004S9-DE for importer@patchew.org; Fri, 09 Mar 2018 10:44:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50410) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK51-0006Rx-FJ for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK4y-0008Fl-T6 for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:11 -0500 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:33106) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4y-0008FD-MK for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:08 -0500 Received: by mail-wr0-x243.google.com with SMTP id v18so9417401wrv.0 for ; Fri, 09 Mar 2018 07:37:08 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.37.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37:07 -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=1V4MBhC7M27ezCtU/kyRHtUZHRYzx4bP8pFKF6MDsaA=; b=euXRTAytlLFsmOmPxPQXt65BE6iYubXxyOGFH5mcveIRilwDUD2PUjqhw3LQA3cIbB oiBK/w+aAOqd5liMdCDU3NgS+URL/roFAHmEqPJbXB1pes0prSxXMNjKBVs56CYy3QZH D1ubA1WuXUCz9sl+hg+4icHFf4HFvXLYr7PgQiZsMrQzsgozqcT9dqPix368N4WblIz3 kD0nGpmt4ejWVxZb+6u532RcPibp3KAB4JaGaiov5Mj85Nq1tnDXkdrhlSSD5AkvDtOy 4gXFmTJU0uTaT1GE0p9awCPybmn3RccoY+JmZ7VUY+qR4tlq48JitxrhdvIPeQZUmG3B TInA== 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=1V4MBhC7M27ezCtU/kyRHtUZHRYzx4bP8pFKF6MDsaA=; b=ASwU2YBqkDAuTkHFoaE15gSD6U+dU1E5FEO9bqFbmKe8ifm0/5D7jvcJ6gwyDk1Ubi lkljR7FYTtnpx5jjhpa8v7rKpASC1Yea33zzIw89DSTdIBQW1qBd42qgnAYpfIwVJeNw EiUJFWNoCykS4FWPgGottBlH+gYTWK9sdtHP2HF7rZD9/leXYcXJ85Om8R9iqD6cbfAS rcDGKmCfwuaPFc0pegtOGjOxt9dY51MxxHJfAb1YYr4iZn4lj8gIyeROgVTUTuJT620L lTFIQUVRjrBetmlnA3Sddu/kJPaC5RUlGK9vB6/idr2BgsXinFFPeHhTSUdKoFOeDgoY QCEA== X-Gm-Message-State: APf1xPCPO+D6N1phunU+cIfnFeBNhSWpyuEiYItUiycKW78qPDA/0fp0 lYaKWrCCfUxzaElN5jIC+DA= X-Google-Smtp-Source: AG47ELshQlHR7A3fF2SnXDLHmfrZ+XI0kdvyEuwSF2dUmLsQH1SrzgwBBDh0JXRY5aEOy9CsmUz2nw== X-Received: by 10.223.146.133 with SMTP id 5mr27326289wrn.109.1520609827644; Fri, 09 Mar 2018 07:37:07 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:53 +0100 Message-Id: <20180309153654.13518-8-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH 7/8] sdhci: Fix a typo in comment X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell --- hw/sd/sdhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 97b4a473c8..1b828b104d 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -433,13 +433,13 @@ static void sdhci_read_block_from_card(SDHCIState *s) for (index =3D 0; index < blk_size; index++) { data =3D sdbus_read_data(&s->sdbus); if (!FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { - /* Device is not in tunning */ + /* Device is not in tuning */ s->fifo_buffer[index] =3D data; } } =20 if (FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { - /* Device is in tunning */ + /* Device is in tuning */ s->hostctl2 &=3D ~R_SDHC_HOSTCTL2_EXECUTE_TUNING_MASK; s->hostctl2 |=3D R_SDHC_HOSTCTL2_SAMPLING_CLKSEL_MASK; s->prnsts &=3D ~(SDHC_DAT_LINE_ACTIVE | SDHC_DOING_READ | --=20 2.16.2 From nobody Thu May 2 15:53:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520610106329610.5782483724444; Fri, 9 Mar 2018 07:41:46 -0800 (PST) Received: from localhost ([::1]:46034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK9R-0001la-Hr for importer@patchew.org; Fri, 09 Mar 2018 10:41:45 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50409) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euK51-0006Rw-Ep for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euK50-0008GU-2I for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:11 -0500 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:35281) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euK4z-0008Fv-Sh for qemu-devel@nongnu.org; Fri, 09 Mar 2018 10:37:10 -0500 Received: by mail-wr0-x244.google.com with SMTP id a27so1744586wra.2 for ; Fri, 09 Mar 2018 07:37:09 -0800 (PST) Received: from x1.local (ABayonne-654-1-76-150.w86-222.abo.wanadoo.fr. [86.222.219.150]) by smtp.gmail.com with ESMTPSA id m191sm1584175wma.21.2018.03.09.07.37.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 07:37:08 -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=RUXGa4a8A4Qfe7BJFNNWOGjp+t5dY4rPfeYtCHNHA24=; b=PfxkNOAwZ1Ro9DRO6cCHmx/+MsR8VQ4e3aE9s/1YbiK2wJsYqoKhNOAb/xgT8f5t9u v5neBOAt9PLwTI/UKFZEuKIxn4F9uVxSC0XGs7UiUeAl60Eb7VyBLmzrSdRSU1AHSv4M trEUaPsELHtSuWLY/bkdS0WwrrvQWmYn54GlLARAs1B3xqAR9mJbfdBCsyQ+tf29BwLH MdiamjKAv1Ck8KPTH7FkJLBEoZ3HMKvuezM5Y3TauS/kdSXDeqGgaX0OYS65bAtCM4fs JYnSWC0kELZOn2Dlt3Uwb1Tj4VB9xguuEK1LkQs9mkUoqO1q3Zm8EeaViP0IUJaF7aq6 kTMA== 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=RUXGa4a8A4Qfe7BJFNNWOGjp+t5dY4rPfeYtCHNHA24=; b=uVNcOeu7mn7EXBIMknGZ0nzphboRFhmilPBiwTsmy0rQ0crE19A2RU6msYajMru8cu 6E2boCJ9kiH23AfK0exu69to8Mgizdmr/IBikbXyIse0KLBZdBSog87e3iewiiBHayCu Y4Ypx9Ar+vqMgCz4/Yv86TmvqkYzvREALqMoT8FhPpvZU0alRlN8DdXtpBI+ieWOk+Oj eD8jSImd8vckW1rU+m0BddbjwzIGy0UfVv3EGxGqWonLLUbFBb4di6IJ3nshT7CLIVFa tB12j58slEZYu5UJM637o6oAlgoO9mZ5sE5LFEioVgfgU5Bttu+/Hq7MUqytTpSNs3/O P8yA== X-Gm-Message-State: AElRT7FUez2R681fXMkwFT/yrkCEQbFtHpFa+m8tStV9xyJXR3L09i+Q eH//obutpSP3nakSbIi395s= X-Google-Smtp-Source: AG47ELvoU/s5PJiFDrOUOc5ao4wayVWpXtRsbMCRSS2bPxApsPskqYI1nPbauqMOWIcbBpghG78Ycw== X-Received: by 10.223.142.21 with SMTP id n21mr2091633wrb.85.1520609828756; Fri, 09 Mar 2018 07:37:08 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , "Edgar E . Iglesias" Date: Fri, 9 Mar 2018 16:36:54 +0100 Message-Id: <20180309153654.13518-9-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180309153654.13518-1-f4bug@amsat.org> References: <20180309153654.13518-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PATCH 8/8] MAINTAINERS: Add entries for SD (SDHCI, SDBus, SDCard) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 After spending months studying all the different SD Specifications from the SD Association, voluntarily add myself as maintainer for the SD code. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell --- MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index b7c4130388..0446724642 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1089,6 +1089,14 @@ M: Peter Crosthwaite S: Maintained F: hw/ssi/xilinx_* =20 +SD (Secure Card) +M: Philippe Mathieu-Daud=C3=A9 +S: Odd Fixes +F: include/hw/sd/sd* +F: hw/sd/core.c +F: hw/sd/sd* +F: tests/sd* + USB M: Gerd Hoffmann S: Maintained --=20 2.16.2