From nobody Wed May 8 00:02:34 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 1516677824980752.572146604976; Mon, 22 Jan 2018 19:23:44 -0800 (PST) Received: from localhost ([::1]:59017 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpBU-0004gJ-AS for importer@patchew.org; Mon, 22 Jan 2018 22:23:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35394) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9d-0003Op-JS for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9c-0000LO-P6 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:45 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:46490) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9c-0000Kq-KC for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:44 -0500 Received: by mail-qt0-x241.google.com with SMTP id o35so26410030qtj.13 for ; Mon, 22 Jan 2018 19:21:44 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.21.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:21: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=CKNsnSZgZnc4oI+jwgKiD1HK1Cd1VWRKlF7rHcUO5WI=; b=m07wg05jvJ8KG3o34nKPVwNZb7ZRzXji0uGa1M15kWVfI+BeVyGUpYUD4T/uNhLPJ2 98zcKP+ddoGSSMYtIxSRbfYIv0OBTfP8c2A0S3v7SS70N24e5yMnorimH+dBe3NR4k6d gCw1JlmqJ5xkquWcFN1BSzw60VY5dHj7JvEED7t7YY+PDwxqxy54WqGO3cjE+HwGMJjJ nY3fWVjRr9bLqrd2T2Od+A3rQABCvsFDtbJVQkFYnJ00vPKcUMdBdaTi8/Fbv/sFaVFU h/P9Uj95iD9ehIjm1c7hMfo+pN5iMGXU4rsAUfz1duo6DIWuMgBzGl4s0LaGQhr2P1Lv 3ndw== 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=CKNsnSZgZnc4oI+jwgKiD1HK1Cd1VWRKlF7rHcUO5WI=; b=RfOB0S94octuE7u1/7ZJalXNGBGal81OqY0Pl8+K9jbUCuu3tdmgtviZnptu8oC08S /ZebJG7NUG+QeZZDOZFMdxSmEUoqX1FhO0yp28cFIJ9fQwA6Kge5A9usffjNn6vHnVIZ S8HpSJIrYTcMdvWTyI+OVMgyben4TKjIV52VckhIwkhzdKz0DZ7e8hyAgpvyx0RYvrDR S2WAUt2nF9EjEKnzJxOx3uYQ4wnGDf53hexKxhQhnSy+QPhmRwn16oKU0pfvq6FM5VRW JM/m+mWXl1K8gC4mQdvW8XlUHqULr0N99eeKcvmy1T3vB5qPzdPLH7wKxraWxcQ+9o+1 0nmg== X-Gm-Message-State: AKwxyte95PwQPLruL1x3n5FlZFyrjzppdDdmrgIDvE0o1piBJbe76xBf gBgr9zuNr7hpYBNGZINXGhM= X-Google-Smtp-Source: AH8x2244p2ajW3qqop+nUZ7P0/sDkuYCfWf1XgCxgBWToPWeKSzpiIqkMXEonafq9oV/0jJzSaR38Q== X-Received: by 10.200.47.17 with SMTP id j17mr1558339qta.199.1516677704182; Mon, 22 Jan 2018 19:21:44 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:24 -0300 Message-Id: <20180123032135.28863-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v3 01/12] sdcard: reorder SDState struct members X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 place card registers first, this will ease further code movements. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sd.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index ab9be561d2..55d2ba2dd7 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -88,16 +88,21 @@ enum SDCardStates { struct SDState { DeviceState parent_obj; =20 - uint32_t mode; /* current card mode, one of SDCardModes */ - int32_t state; /* current card state, one of SDCardStates */ + /* SD Memory Card Registers */ uint32_t ocr; - QEMUTimer *ocr_power_timer; uint8_t scr[8]; uint8_t cid[16]; uint8_t csd[16]; uint16_t rca; uint32_t card_status; uint8_t sd_status[64]; + + /* Configurable properties */ + BlockBackend *blk; + bool spi; + + uint32_t mode; /* current card mode, one of SDCardModes */ + int32_t state; /* current card state, one of SDCardStates */ uint32_t vhs; bool wp_switch; unsigned long *wp_groups; @@ -110,8 +115,6 @@ struct SDState { uint8_t pwd[16]; uint32_t pwd_len; uint8_t function_group[6]; - - bool spi; uint8_t current_cmd; /* True if we will handle the next command as an ACMD. Note that this = does * *not* track the APP_CMD status bit! @@ -123,8 +126,7 @@ struct SDState { uint8_t data[512]; qemu_irq readonly_cb; qemu_irq inserted_cb; - BlockBackend *blk; - + QEMUTimer *ocr_power_timer; bool enable; uint8_t dat_lines; bool cmd_line; --=20 2.15.1 From nobody Wed May 8 00:02:34 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 1516677831410375.2641197530497; Mon, 22 Jan 2018 19:23:51 -0800 (PST) Received: from localhost ([::1]:59018 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpBe-0004n6-Hc for importer@patchew.org; Mon, 22 Jan 2018 22:23:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35411) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9h-0003R0-OD for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9g-0000Q2-GF for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:49 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:35112) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9g-0000PT-Al for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:48 -0500 Received: by mail-qt0-x243.google.com with SMTP id g14so17245067qti.2 for ; Mon, 22 Jan 2018 19:21:48 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.21.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:21:47 -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=tD7GhYS1sWLlxKudpIsrgAMp8RU0aR/LduWhAQIeT4Q=; b=LnypkBIuBNiXzX0hJh9M+PLLN9e4OjpMuOe06Kyfr1Xzu7P65zj0wPQv2E9Exh85gF NiqZPR1flxSeJQ1kQr5aSfe+RbbjaCd2jZ9iyTkynqkqjG2JbXEP2XdNnXBoJlvxfWXA OxihaOg6BEH9aDTM/suc+uDUg/pOnIBrkclLQLkNahTgGAtWDd0PZ0u7TY7rvSnWdJrF IW+YDf7LYS2cTohenuiuXqRNbXhZbAVhj9BrdnwN3w1qZcZrb96b4ZN8GDxoj0La0V12 D540/7hoEE06Z5PecLMMU2sijVwSin0WlDdFrFn8Fnw9+iZwQ/AY5JsubrB+sjZQkKmQ 1ZaA== 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=tD7GhYS1sWLlxKudpIsrgAMp8RU0aR/LduWhAQIeT4Q=; b=S171y9gMISk1i3TJ/G+7oGZIN2RUbGIxu/ca4zq87wObeR66Ws3HtOimbmKONBhg0+ ugS4iaz/emBzbr1D5sKqxWMemD0dT4BSWQtf5pVF9iNC+SDw8s8J5sMBxxAmgKxEbLi/ c28iJ96upZiXxlD+R/jO6iuOwekcxaPGTAcV7f9/2ntMzGbm9ojZSeDnkcUMPthK3ADR bJBgBYGVZsycJJ5GVXhwqJLZYYDnczLDNmqQIo35uSftFVddkj/bMkCyC8WfLmgMajYV C4gTHhD9jBqkm4e3t3X7GDCsFk0kWY1JCO+NdoXGVs1uqBwLHhG7drBd7uGwprDop4OI MXsg== X-Gm-Message-State: AKwxytcp0NQMTkNkRQkmqkRAjAFEh7It5rVT+FevzcUN7Ggi1rjXOqK4 VewXf52fd54J7AoCRP3VjYU= X-Google-Smtp-Source: AH8x2273wjA6hQymIDqffMVoQppqncjJNyXBmp+ke3FuwWFyXYM/Cpd3E94plPDpflBcPR9Ub6bgiA== X-Received: by 10.237.46.130 with SMTP id k2mr1636569qtd.85.1516677707856; Mon, 22 Jan 2018 19:21:47 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:25 -0300 Message-Id: <20180123032135.28863-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v3 02/12] sdcard: replace DPRINTF() by trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 33 ++++++++++++++++++++++++++------- hw/sd/trace-events | 6 ++++++ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 55d2ba2dd7..f876973a2b 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -40,6 +40,7 @@ #include "qemu/error-report.h" #include "qemu/timer.h" #include "qemu/log.h" +#include "trace.h" =20 //#define DEBUG_SD 1 =20 @@ -132,6 +133,25 @@ struct SDState { bool cmd_line; }; =20 +static const char *sd_state_name(enum SDCardStates state) +{ + static const char *state_name[] =3D { + [sd_idle_state] =3D "idle", + [sd_ready_state] =3D "ready", + [sd_identification_state] =3D "identification", + [sd_standby_state] =3D "standby", + [sd_transfer_state] =3D "transfer", + [sd_sendingdata_state] =3D "sendingdata", + [sd_receivingdata_state] =3D "receivingdata", + [sd_programming_state] =3D "programming", + [sd_disconnect_state] =3D "disconnect", + }; + if (state =3D=3D sd_inactive_state) { + return "inactive"; + } + return state_name[state]; +} + static uint8_t sd_get_dat_lines(SDState *sd) { return sd->enable ? sd->dat_lines : 0; @@ -776,6 +796,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, 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)= ); + /* Not interpreting this as an app command */ sd->card_status &=3D ~APP_CMD; =20 @@ -790,7 +812,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, sd->multi_blk_cnt =3D 0; } =20 - DPRINTF("CMD%d 0x%08x state %d\n", req.cmd, req.arg, sd->state); switch (req.cmd) { /* Basic commands (Class 0 and Class 1) */ case 0: /* CMD0: GO_IDLE_STATE */ @@ -1310,8 +1331,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, return sd_r1; =20 case 56: /* CMD56: GEN_CMD */ - fprintf(stderr, "SD: GEN_CMD 0x%08x\n", req.arg); - switch (sd->state) { case sd_transfer_state: sd->data_offset =3D 0; @@ -1345,7 +1364,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, static sd_rsp_type_t sd_app_command(SDState *sd, SDRequest req) { - DPRINTF("ACMD%d 0x%08x\n", req.cmd, req.arg); + trace_sdcard_app_command(req.cmd, req.arg); sd->card_status |=3D APP_CMD; switch (req.cmd) { case 6: /* ACMD6: SET_BUS_WIDTH */ @@ -1594,7 +1613,7 @@ send_response: DPRINTF("Response:"); for (i =3D 0; i < rsplen; i++) fprintf(stderr, " %02x", response[i]); - fprintf(stderr, " state %d\n", sd->state); + fputc('\n', stderr); } else { DPRINTF("No response %d\n", sd->state); } @@ -1605,8 +1624,7 @@ send_response: =20 static void sd_blk_read(SDState *sd, uint64_t addr, uint32_t len) { - DPRINTF("sd_blk_read: addr =3D 0x%08llx, len =3D %d\n", - (unsigned long long) addr, 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"); } @@ -1614,6 +1632,7 @@ static void sd_blk_read(SDState *sd, uint64_t addr, u= int32_t len) =20 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"); } diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 0f8536db32..75dac5a2cd 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -23,6 +23,12 @@ sdhci_read_dataport(uint16_t data_count) "all %u bytes o= f data have been read fr sdhci_write_dataport(uint16_t data_count) "write buffer filled with %u byt= es of data" 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_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" + # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x = value 0x%08x" milkymist_memcard_memory_write(uint32_t addr, uint32_t value) "addr 0x%08x= value 0x%08x" --=20 2.15.1 From nobody Wed May 8 00:02:34 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 1516677991057657.9815499066253; Mon, 22 Jan 2018 19:26:31 -0800 (PST) Received: from localhost ([::1]:59040 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpEE-00075a-4k for importer@patchew.org; Mon, 22 Jan 2018 22:26:30 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35425) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9m-0003X4-T7 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9j-0000UU-PH for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:54 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:45579) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9j-0000Tc-LR for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:51 -0500 Received: by mail-qt0-x243.google.com with SMTP id x27so26416310qtm.12 for ; Mon, 22 Jan 2018 19:21:51 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.21.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:21:50 -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=oKQiUVFit0rsE020SuCd4GncF/+cY5OdFxF+vT2y+5M=; b=MrfSm5rm25WgVLHvTMHS2a/KkX0j3woNMd5/L0Nre1XCxzAMMIazuYQ/khQmyWoWa6 r+XAU/mGrqZ3qcqIg8333y5uJ7oM6FyLsDjYHDIKbKhRz3qeMObgh/dPKVQVh6LBaU6u 2dmAArf/0sSoiySHGupvymZw3NRkG9mmZoyjEjf5Q4X8zaB+Wpsbz101QmLhwuKJZu30 d1En2jD02lUZ6lkn5rON7P0AyYpZQTXXQp2j9O/vwd3MqnE1wdL5FLZp+l9sr+gX16b0 mX3l/JnCB9CiYQIGSwRhExIYoOArfuHwGfirUiwiwozklqWdGe924uEiTQEwoxEZVe4N 0bbA== 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=oKQiUVFit0rsE020SuCd4GncF/+cY5OdFxF+vT2y+5M=; b=Ywa/UxTaE7E83TcGrSrIufdrdpAXMKNCYwbBPJB+JlrelvE8ICMuvlrC91Rkj7oyqa Y25z6zE95mvuui99lNimjJ3Wit50poGuDtOMH9+agZ025KZTuuD9v22s3WPj9ctdP1fh NZwHlecHZtXplstgojW+XYGMWr8zDf9UykNpfwgonhuVE0jK6N7GaLoMpjIvlkGivafM zfwzj02E4T4hqkdCvSCRfYZvOd7j73rG9TQjyzLzjpqnaXJgZ0c6Qn+sg0bVst6TAiVT uy/fwP4JfhAqvn+igGjTMiIdt9pd4aPK9eDX+yMYObVZx5SpVxx8r3zbV6VKcGQ9ImSP ZLcg== X-Gm-Message-State: AKwxytcOCdd1eX4gfy3S8INYVCwu5V7E+hLGsWOl/gnzoZtBoHaQCsQ/ gwejF+QxlxqUDfV79cJiNRY= X-Google-Smtp-Source: AH8x226Vb00maLFopbFTa9yQycUfWeDONgqyVYvNCDY1xyo+x5Oc3iuMIK0o/2xh1AwDqmF3Kz4Ngg== X-Received: by 10.55.21.2 with SMTP id f2mr1528694qkh.320.1516677711167; Mon, 22 Jan 2018 19:21:51 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:26 -0300 Message-Id: <20180123032135.28863-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v3 03/12] sdcard: add a trace event for command responses X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 26 +++++++++++++++++++++++--- hw/sd/trace-events | 1 + 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index f876973a2b..3590099ce8 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -152,6 +152,26 @@ static const char *sd_state_name(enum SDCardStates sta= te) return state_name[state]; } =20 +static const char *sd_response_name(sd_rsp_type_t rsp) +{ + static const char *response_name[] =3D { + [sd_r0] =3D "RESP#0 (no response)", + [sd_r1] =3D "RESP#1 (normal cmd)", + [sd_r2_i] =3D "RESP#2 (CID reg)", + [sd_r2_s] =3D "RESP#2 (CSD reg)", + [sd_r3] =3D "RESP#3 (OCR reg)", + [sd_r6] =3D "RESP#6 (RCA)", + [sd_r7] =3D "RESP#7 (operating voltage)", + }; + if (rsp =3D=3D sd_illegal) { + return "ILLEGAL RESP"; + } + if (rsp =3D=3D sd_r1b) { + rsp =3D sd_r1; + } + return response_name[rsp]; +} + static uint8_t sd_get_dat_lines(SDState *sd) { return sd->enable ? sd->dat_lines : 0; @@ -1595,10 +1615,12 @@ send_response: =20 case sd_r0: case sd_illegal: - default: rsplen =3D 0; break; + default: + g_assert_not_reached(); } + trace_sdcard_response(sd_response_name(rtype), rsplen); =20 if (rtype !=3D sd_illegal) { /* Clear the "clear on valid command" status bits now we've @@ -1614,8 +1636,6 @@ send_response: for (i =3D 0; i < rsplen; i++) fprintf(stderr, " %02x", response[i]); fputc('\n', stderr); - } else { - DPRINTF("No response %d\n", sd->state); } #endif =20 diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 75dac5a2cd..b2aa19ec0d 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -26,6 +26,7 @@ sdhci_capareg(const char *desc, uint16_t val) "%s: %u" # 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_response(const char *rspdesc, int rsplen) "%s (sz:%d)" 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" =20 --=20 2.15.1 From nobody Wed May 8 00:02:34 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 1516678000368892.8657008574264; Mon, 22 Jan 2018 19:26:40 -0800 (PST) Received: from localhost ([::1]:59042 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpEN-0007EA-Dh for importer@patchew.org; Mon, 22 Jan 2018 22:26:39 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35439) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9n-0003Xh-LX for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9m-0000Z9-NZ for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:55 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:35112) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9m-0000Yg-J7 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:54 -0500 Received: by mail-qt0-x242.google.com with SMTP id g14so17245529qti.2 for ; Mon, 22 Jan 2018 19:21:54 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.21.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:21: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=+QLewxI1OjpXep803B+6eBEUt1EriMfHEa8p5xpjj90=; b=rRWtV4M+rMHU7NJXpsK8IDGrffa4MYs7BZeVfYS8vkoHpimLsJljxF+OhVrwXBxZbt a9ZNUKXim5LCWuIynm0YMe1ozsQZuuBTy5BdsEqDIesu4qXLPX0ex4a/gqVW1A6UJ/VD xfU46ZdRQLOTzk0S/LT8aSS5EANeG8y7JbeV17UsejZ9JY9drQkP/WnDVm5HBs8bBXVD tEsg9zImUzasGOLz0Y/sN9Th+ynEFCD7R4QnqY310EE5QYX+qVqQ2giO1liOuG52pnSD OfmKsfILEnWXEuH1KX073GI7giB1nLv8iBiCScarsdF9dqSABykT50r8Qtfo7fba4FCT Mu3Q== 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=+QLewxI1OjpXep803B+6eBEUt1EriMfHEa8p5xpjj90=; b=YatEvhhqoLGQLLjiF2cQLFuuQRrc7RLRWuTD9yRmO55QikMl8ZPdcap6VFpNvrBj1n eUTdTHGChtdrAOBd9lI7xNgsoTS0Pp5GzlhNz/hs5x5va8Z45ZdpzI9swWA+/uqv4Tq/ 3C10mr0mhpP0+o0MuvUqWoMBQtAfkVHjAH+xVdJMEiqq9stFn8hgMxL9pGdi3fS0kRVV eIqUpvtXYcXOHJAFdWc6eQpC+fsEyzpQB6Td4oczKRUV+W996/FgArqWYual442yGxwD gAV8cIrCTTz7cW/o9bS1gngXLoC5KcwQW/QSgeUNU3rRT6k4qU+Skbf+VLsfKgXeVmF+ RMpg== X-Gm-Message-State: AKwxytfcJAD5NQTMy67CLWuv7y1Z6r4GaRfAoQrBVOSA5yDg8RyRi6B5 4pbDyayvPjNbVwycN9xqXXQ= X-Google-Smtp-Source: AH8x22784hKPufk9Mc/mnnKOdHV41Dz5xqEPxoPHobKbBbbrXtVN/9octl3nym/uyKA8J1SbfBbkAA== X-Received: by 10.55.129.134 with SMTP id c128mr1455277qkd.265.1516677714210; Mon, 22 Jan 2018 19:21:54 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:27 -0300 Message-Id: <20180123032135.28863-5-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v3 04/12] sdcard: replace fprintf() by qemu_hexdump() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 3590099ce8..03263e08ae 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -44,13 +44,6 @@ =20 //#define DEBUG_SD 1 =20 -#ifdef DEBUG_SD -#define DPRINTF(fmt, ...) \ -do { fprintf(stderr, "SD: " fmt , ## __VA_ARGS__); } while (0) -#else -#define DPRINTF(fmt, ...) do {} while(0) -#endif - #define ACMD41_ENQUIRY_MASK 0x00ffffff #define OCR_POWER_UP 0x80000000 #define OCR_POWER_DELAY_NS 500000 /* 0.5ms */ @@ -1630,13 +1623,7 @@ send_response: } =20 #ifdef DEBUG_SD - if (rsplen) { - int i; - DPRINTF("Response:"); - for (i =3D 0; i < rsplen; i++) - fprintf(stderr, " %02x", response[i]); - fputc('\n', stderr); - } + qemu_hexdump((const char *)response, stderr, "Response", rsplen); #endif =20 return rsplen; --=20 2.15.1 From nobody Wed May 8 00:02:34 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 1516678161645288.4089150921841; Mon, 22 Jan 2018 19:29:21 -0800 (PST) Received: from localhost ([::1]:59059 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpGw-0001B4-VX for importer@patchew.org; Mon, 22 Jan 2018 22:29:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35451) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9r-0003ZC-84 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9q-0000cz-1I for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:59 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:45580) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9p-0000cW-Oy for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:21:57 -0500 Received: by mail-qt0-x243.google.com with SMTP id x27so26416744qtm.12 for ; Mon, 22 Jan 2018 19:21:57 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.21.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:21:56 -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=MLWovzlH03VpH/38ApYlKFiczboiPMTXRmJ/wfgjquA=; b=GPINywuT47zYxufV6gy1u6wR2t+MQujzg+M3ryMt1IOtQqyKf4KzAtgYFJ9zMvk6b5 XAQir3qfPeedgnqKVghKHi8ZhfYPxYLf0SewHHQuxE/0a3PSiQ6/mYqnDOJ1cCNwa6PO LmJxLapRL9BJ2/ObSWUsA3ze0FFbK0MoHBT+Hems75zWY7hBaWoIS/YS1+L4DPXH7WYz NtodaE2zpW0A5uOUdCGU1qDlhbwx+J8Cd8FeLMnqi+YMAt7hmKw9CzkhI6kvNhHZugUl tkdXm4JVbMGVJ1clRAWr/tptg0bRW6XEa+w8fYqyWkeWBR6k5qc/wiqg0pSCwy2db4VS kg/Q== 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=MLWovzlH03VpH/38ApYlKFiczboiPMTXRmJ/wfgjquA=; b=KCCSTGEkZQy4aEuEfffLuPxAgQDzCN+N1oDB0y6Kw2WaBQgquuOkoqyCkS7IwMTAbL OXsnHk2pAr7br5dla7jBQjQ2nPgxP9imbB0EGVXfrfxUrhRuMq6vhFu14yhEDG3hFLlC 3DlxKuW5u5CFztszYQ0nUjJIOFYdO/YyVlxJeIIgZEHnaeQ12X829ZNgQN9d8CaU8CFg HR4XFrUIlOfwqtJUGMXNe9v+D80uvsyrjmoIOLlQI69MhBZ1OwHhYNYf549/UNhP7IL9 5bzuearlVk2e1ScOoYOwkMPHClaLSqipcUkQaG6r7pULpLNF/+7Br6uT/4GRed7S0dwF xLcw== X-Gm-Message-State: AKwxyte2932NRcQ+9sGSqmy/v9gsSQUiEbl75rKyEXRi/huqRRYlo5BC QIp7zW71yQOKwunDT36v77s= X-Google-Smtp-Source: AH8x227irx0oc+3K1X3Ab9657/UKFsWVoNvCSaz90KjMWyP6mD8e1MbXArtGV0lYptHvmryp7t5rug== X-Received: by 10.55.24.16 with SMTP id j16mr1585584qkh.298.1516677717300; Mon, 22 Jan 2018 19:21:57 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:28 -0300 Message-Id: <20180123032135.28863-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v3 05/12] sdcard: add more trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 --- hw/sd/sd.c | 32 ++++++++++++++++++++++++++------ hw/sd/trace-events | 13 +++++++++++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 03263e08ae..dc4b2329e4 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -177,6 +177,8 @@ static bool sd_get_cmd_line(SDState *sd) =20 static void sd_set_voltage(SDState *sd, uint16_t millivolts) { + trace_sdcard_set_voltage(millivolts); + switch (millivolts) { case 3001 ... 3600: /* SD_VOLTAGE_3_3V */ case 2001 ... 3000: /* SD_VOLTAGE_3_0V */ @@ -272,6 +274,7 @@ static void sd_ocr_powerup(void *opaque) { SDState *sd =3D opaque; =20 + trace_sdcard_powerup(); /* Set powered up bit in OCR */ assert(!(sd->ocr & OCR_POWER_UP)); sd->ocr |=3D OCR_POWER_UP; @@ -475,6 +478,7 @@ static void sd_reset(DeviceState *dev) uint64_t size; uint64_t sect; =20 + trace_sdcard_reset(); if (sd->blk) { blk_get_geometry(sd->blk, §); } else { @@ -528,7 +532,10 @@ static void sd_cardchange(void *opaque, bool load, Err= or **errp) bool readonly =3D sd_get_readonly(sd); =20 if (inserted) { + trace_sdcard_inserted(readonly); sd_reset(dev); + } else { + trace_sdcard_ejected(); } =20 /* The IRQ notification is for legacy non-QOM SD controller devices; @@ -660,6 +667,7 @@ static void sd_erase(SDState *sd) uint64_t erase_start =3D sd->erase_start; uint64_t erase_end =3D sd->erase_end; =20 + trace_sdcard_erase(); if (!sd->erase_start || !sd->erase_end) { sd->card_status |=3D ERASE_SEQ_ERROR; return; @@ -749,6 +757,11 @@ static void sd_lock_command(SDState *sd) else pwd_len =3D 0; =20 + if (lock) { + trace_sdcard_lock(); + } else { + trace_sdcard_unlock(); + } if (erase) { if (!(sd->card_status & CARD_IS_LOCKED) || sd->blk_len > 1 || set_pwd || clr_pwd || lock || sd->wp_switch || @@ -1075,10 +1088,12 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, case 16: /* CMD16: SET_BLOCKLEN */ switch (sd->state) { case sd_transfer_state: - if (req.arg > (1 << HWBLOCK_SHIFT)) + if (req.arg > (1 << HWBLOCK_SHIFT)) { sd->card_status |=3D BLOCK_LEN_ERROR; - else + } else { + trace_sdcard_set_blocklen(req.arg); sd->blk_len =3D req.arg; + } =20 return sd_r1; =20 @@ -1450,10 +1465,13 @@ static sd_rsp_type_t sd_app_command(SDState *sd, if ((req.arg & ACMD41_ENQUIRY_MASK) !=3D 0) { timer_del(sd->ocr_power_timer); sd_ocr_powerup(sd); - } else if (!timer_pending(sd->ocr_power_timer)) { - timer_mod_ns(sd->ocr_power_timer, - (qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) - + OCR_POWER_DELAY_NS)); + } else { + trace_sdcard_inquiry_cmd41(); + if (!timer_pending(sd->ocr_power_timer)) { + timer_mod_ns(sd->ocr_power_timer, + (qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + + OCR_POWER_DELAY_NS)); + } } } =20 @@ -1666,6 +1684,7 @@ 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); switch (sd->current_cmd) { case 24: /* CMD24: WRITE_SINGLE_BLOCK */ sd->data[sd->data_offset ++] =3D value; @@ -1803,6 +1822,7 @@ 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); switch (sd->current_cmd) { case 6: /* CMD6: SWITCH_FUNCTION */ ret =3D sd->data[sd->data_offset ++]; diff --git a/hw/sd/trace-events b/hw/sd/trace-events index b2aa19ec0d..3040d32560 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -27,8 +27,21 @@ sdhci_capareg(const char *desc, uint16_t val) "%s: %u" 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_response(const char *rspdesc, int rsplen) "%s (sz:%d)" +sdcard_powerup(void) "" +sdcard_inquiry_cmd41(void) "" +sdcard_set_enable(bool current_state, bool new_state) "%u -> %u" +sdcard_reset(void) "" +sdcard_set_blocklen(uint16_t length) "0x%04x" +sdcard_inserted(bool readonly) "read_only: %u" +sdcard_ejected(void) "" +sdcard_erase(void) "" +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_set_voltage(uint16_t millivolts) "%u mV" =20 # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x = value 0x%08x" --=20 2.15.1 From nobody Wed May 8 00:02:34 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 1516677845135831.9475482830495; Mon, 22 Jan 2018 19:24:05 -0800 (PST) Received: from localhost ([::1]:59019 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpBs-0004ya-A0 for importer@patchew.org; Mon, 22 Jan 2018 22:24:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35468) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9w-0003dp-1c for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9s-0000gh-TK for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:04 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:44332) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9s-0000g4-OO for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:00 -0500 Received: by mail-qt0-x243.google.com with SMTP id l20so25095922qtj.11 for ; Mon, 22 Jan 2018 19:22:00 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.21.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:21: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=q6soJbQ2lirwS32h14Bli6LmGIRmPUD75nWtA4J1mhM=; b=NJBO1zNKL4IIUWGvShkTp3rsiePyh9xNomElcQqwkJ6fIZd+xdGkBddzdEwgB9WYtO V03oHoKHKeqnSFcN2nmE5NdIGm4FNTdssQ7xgGxO38PfiPztEkaiEVZRkyuOlmayTHsx //ORP3Te0Tt0Yozgb7IEoafiK4AVCk0nymJg44iuMnF7sLEayr04ZG18Pq4nuXi5JYuE XKzuJNo0myrcDG/RNfd5RIczOt16vcpgBSu86G64JnJV0NpOcj1MrHASvYeCYekFySFJ H/mo/+/L4kWCP5OjLlxx92/hRv6K7Fbq0a5yIpCuvKmyszMCv+hNvWJ++q/q6biscc9d El7Q== 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=q6soJbQ2lirwS32h14Bli6LmGIRmPUD75nWtA4J1mhM=; b=tYdFRhXbupWqTCG9zllOA1AoEwprE9RuBAjynXG+is28WhwuNa29A4E4xhnNejAi+b CXtKQR6esbdaGlos8ba5YmWfSdyw9g9B6LHock0SZs2zgwG1nVHWiBq4f9JEihKWOH3v 2MhjkozPNLPBw50zhC4ITdcOYnRb8I+ebsTgPlcwX3dyTgJrUEm0u+wBqcmYdA/8RqA7 9aGNtPCu6/OuST5lAVHltQEWCaspFSqY0Qf2bRT2faf6SAl8PlWnO5pRi3EddrwGMlws qup9yPRuq3Ap9Nth1Se/IpZzAgf3T5f765UAzuIRBXRQzgs3YQW8kSMyfFAB6K7fz1OO 6idA== X-Gm-Message-State: AKwxytdzY8YWv0eW0rkSuSRaS6BYkCUAPpnUGxf7YP0WUE+VUdjzEsvZ bpOSNSr5I6Rrm/Gjq35SElnW4/VV X-Google-Smtp-Source: AH8x225Y++jLfZMZfkOgo+jkDkumAfqw84jo8HpMBuBgvjz/7RDt3Vm6nV6zq83sJZ9Q71MJ1RWxkQ== X-Received: by 10.55.163.65 with SMTP id m62mr1623212qke.82.1516677720342; Mon, 22 Jan 2018 19:22:00 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:29 -0300 Message-Id: <20180123032135.28863-7-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v3 06/12] sdcard: do not trace CMD55 when expecting 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: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?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 --- hw/sd/sd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index dc4b2329e4..27c08aa894 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -816,13 +816,15 @@ 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)= ); + 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.15.1 From nobody Wed May 8 00:02:34 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 1516677996698662.5286983770504; Mon, 22 Jan 2018 19:26:36 -0800 (PST) Received: from localhost ([::1]:59041 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpEH-00078z-37 for importer@patchew.org; Mon, 22 Jan 2018 22:26:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35478) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edp9w-0003eX-VJ for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9v-0000kZ-VP for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:04 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:38049) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9v-0000kC-QV for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:03 -0500 Received: by mail-qt0-x241.google.com with SMTP id z10so26434053qti.5 for ; Mon, 22 Jan 2018 19:22:03 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.22.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:22:02 -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=MbqfjqxK3drjK/Ic04s78QrnYiKM+r10WgvDgy6+92k=; b=EHcNHnmDWktFFUbLTNcVpypRWq+2Xu1JqVh7iMYtPP9wHrAJADiDDjycGj5Xlr0KDh i2AzumvoSdh1+4WOJcQ0ZOLrxUR7fTwpNh1voq/GobQ+376ddaE/Dzy1CKebcZttZYFp 5mIpiktpJW+1VHdY2+hN8FvB55zGkIP051njqaDkwft3+jw/kmF1r+dms1m6iFQhgvOT rCCghy82Xz2wnyC0E7ch8bHsUPXCYkfd64m0EroUwr6asCWlT0yz23ANmEyI4QnUWuV8 Nbca8FlrldqeRjRi7fRcsE9F7ieDmMuAQJy+7Ef0IaUEXQo56kqCTW5DTDSO5zpzeMgr 6IyA== 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=MbqfjqxK3drjK/Ic04s78QrnYiKM+r10WgvDgy6+92k=; b=iGzKsuXg515DIqzMmUWlqiN6vIgQVp/asI+Ds3E11cTRfqBBaeY+fSWEIcn1Zf7r5a V19aqUiwaKsn79cVb04DP9cxtc6J7KV/A8XzujQJcWutRd274kzdZx9r3prJ5vsj6F9U a1COS2ctxvA3S1IyfZJoc+exy07D8W+2PD/fsFBZzfKSeTMobmFtDXEvyPhZDrk+PkGv kziqM4THaJ9s4r8jflNKYLwmt8ZgZCEV4x21s2pPaY8YDUMzq8qBONw7qHEXpDr7FwUw 04In0HwwCvwrjgNIwo9bxk6lnxyQmh9A8ZSPw/bumJKOScLHukTjst0rvfNV7kOX8MO0 DCHw== X-Gm-Message-State: AKwxytf4et7vxy2jTPG8uDFOWVBGhjZf2Rb4YiU0dAfryT2SyJ264mFz h6adrwC/MYAZITZWMYgssU4= X-Google-Smtp-Source: AH8x227i3TaO6ZtqQhF8Ud2SkQiP3afH7yAEFIkDW3Vl/xVRRDSDIzazVfBWevO7+Mztt4/DFazJaQ== X-Received: by 10.55.25.37 with SMTP id k37mr1451720qkh.221.1516677723392; Mon, 22 Jan 2018 19:22:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:30 -0300 Message-Id: <20180123032135.28863-8-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v3 07/12] sdcard: define SDMMC_CMD_MAX instead of using the magic '64' X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 27c08aa894..7b1cbc0a2e 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -126,6 +126,8 @@ struct SDState { bool cmd_line; }; =20 +#define SDMMC_CMD_MAX 64 + static const char *sd_state_name(enum SDCardStates state) { static const char *state_name[] =3D { @@ -213,18 +215,21 @@ static void sd_set_mode(SDState *sd) } } =20 -static const sd_cmd_type_t sd_cmd_type[64] =3D { +static const sd_cmd_type_t sd_cmd_type[SDMMC_CMD_MAX] =3D { sd_bc, sd_none, sd_bcr, sd_bcr, sd_none, sd_none, sd_none, sd_ac, sd_bcr, sd_ac, sd_ac, sd_adtc, sd_ac, sd_ac, sd_none, sd_ac, + /* 16 */ sd_ac, sd_adtc, sd_adtc, sd_none, sd_none, sd_none, sd_none, sd_none, sd_adtc, sd_adtc, sd_adtc, sd_adtc, sd_ac, sd_ac, sd_adtc, sd_none, + /* 32 */ sd_ac, sd_ac, sd_none, sd_none, sd_none, sd_none, sd_ac, sd_none, sd_none, sd_none, sd_bc, sd_none, sd_none, sd_none, sd_none, sd_none, + /* 48 */ sd_none, sd_none, sd_none, sd_none, sd_none, sd_none, sd_none, sd_ac, sd_adtc, sd_none, sd_none, sd_none, sd_none, sd_none, sd_none, sd_none, }; =20 -static const int sd_cmd_class[64] =3D { +static const int sd_cmd_class[SDMMC_CMD_MAX] =3D { 0, 0, 0, 0, 0, 9, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 6, 6, 6, 6, 5, 5, 10, 10, 10, 10, 5, 9, 9, 9, 7, 7, 7, 7, 7, 7, @@ -829,8 +834,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDR= equest req) /* Not interpreting this as an app command */ sd->card_status &=3D ~APP_CMD; =20 - if (sd_cmd_type[req.cmd & 0x3F] =3D=3D sd_ac - || sd_cmd_type[req.cmd & 0x3F] =3D=3D sd_adtc) { + if (sd_cmd_type[req.cmd] =3D=3D sd_ac + || sd_cmd_type[req.cmd] =3D=3D sd_adtc) { rca =3D req.arg >> 16; } =20 @@ -1542,8 +1547,8 @@ static int cmd_valid_while_locked(SDState *sd, SDRequ= est *req) if (req->cmd =3D=3D 16 || req->cmd =3D=3D 55) { return 1; } - return sd_cmd_class[req->cmd & 0x3F] =3D=3D 0 - || sd_cmd_class[req->cmd & 0x3F] =3D=3D 7; + return sd_cmd_class[req->cmd] =3D=3D 0 + || sd_cmd_class[req->cmd] =3D=3D 7; } =20 int sd_do_command(SDState *sd, SDRequest *req, @@ -1562,6 +1567,12 @@ int sd_do_command(SDState *sd, SDRequest *req, goto send_response; } =20 + if (req->cmd >=3D SDMMC_CMD_MAX) { + qemu_log_mask(LOG_GUEST_ERROR, "SD: incorrect command 0x%02x\n", + req->cmd); + req->cmd &=3D 0x3f; + } + if (sd->card_status & CARD_IS_LOCKED) { if (!cmd_valid_while_locked(sd, req)) { sd->card_status |=3D ILLEGAL_COMMAND; --=20 2.15.1 From nobody Wed May 8 00:02:34 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 151667834060277.3803570586033; Mon, 22 Jan 2018 19:32:20 -0800 (PST) Received: from localhost ([::1]:59386 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpJl-0003or-Fh for importer@patchew.org; Mon, 22 Jan 2018 22:32:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35491) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpA1-0003gz-6J for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edp9z-0000p8-JY for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:09 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:38050) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edp9z-0000oc-Dd for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:07 -0500 Received: by mail-qt0-x242.google.com with SMTP id z10so26434278qti.5 for ; Mon, 22 Jan 2018 19:22:07 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.22.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:22:06 -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=33/SGB/sGET+5fzkPi1yZ29Y9OOGP0qW2FFzM5KOYps=; b=h/nrSEoC/BDElg6usvyYK+k2dAy5COzG7Q0oGpP9xsfB6G8qyn/Dap9vCJ3kQidLH+ p1fDrzgzyad0ee6NKtEb5wH6v9CTslP3BqCCDVPJqkMwNSrnnkmCtIWh2VMTdAnqFVsv BnCGXc6Bq1LFRrDUJEvpgPx6z1SkjIx3Y09voWmEIvdhK19ILCnlbODxCwLbikkIl1o4 ts9T87X+sZl6WVniQok7YSkPU1WaOY6Fzo6R20DpR0dhpm7E4nbi73vwXa9yxDoco0O9 I/fA/TwlXboY4wYJzCWPepP50+YOAyTyallQBvCxApReYHYxXuF12ydiPzAnIdzMLxQr /umA== 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=33/SGB/sGET+5fzkPi1yZ29Y9OOGP0qW2FFzM5KOYps=; b=ZIGHBH3GiONzYAak5dgMOk1Ol95HxY8mMb2bZ4ehJC+oMqgAMitxC60LRJdInAAjsL p8Bi27rz5MvffQHIZK1yWYb8uebBC7ZRh/009b9HdBgx0TI1FKa0dQc4Y+nmeXY8H6CE eu1s09v+RZO48uaj2o18/PoGa1mwuOGkABO82BMfkNEFgoLj9Z+FjUtv2V2cmLFFvUxh V4npmYdaLhATGIPz3vL0OThVUrK75xgi53sNVRZjdnlzXWccAIcNotzf7/8nkCkfWgqs 8La4oy6HDb2gI8CYJ/21i3FOrlgEZgXpGaa63taEDKHDDvriCoOaanWglJeJC7C1zlHN 9QwA== X-Gm-Message-State: AKwxytfB1p5vF22B7UhvYqt7+jv2lrJfbLgua9OrIWccb1lrJsiPT+L/ 7ZC+RsZDJygdKCkh+eHSjNZfvas3 X-Google-Smtp-Source: AH8x227Z6sAQSVZZaEnh7dTH4GZYX+L8MWZEX81YlcwgPB2Lfm7Ars7lZc2P81CU3vqnV4rUYtWllw== X-Received: by 10.55.198.14 with SMTP id b14mr1596628qkj.144.1516677726898; Mon, 22 Jan 2018 19:22:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:31 -0300 Message-Id: <20180123032135.28863-9-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v3 08/12] 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: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?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 --- hw/sd/sdmmc-internal.h | 20 ++++++++++++++ hw/sd/sd.c | 16 ++++++----- hw/sd/sdmmc-common.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ hw/sd/Makefile.objs | 2 +- hw/sd/trace-events | 8 +++--- 5 files changed, 106 insertions(+), 12 deletions(-) create mode 100644 hw/sd/sdmmc-internal.h create mode 100644 hw/sd/sdmmc-common.c diff --git a/hw/sd/sdmmc-internal.h b/hw/sd/sdmmc-internal.h new file mode 100644 index 0000000000..7db6c63ee7 --- /dev/null +++ b/hw/sd/sdmmc-internal.h @@ -0,0 +1,20 @@ +/* + * SD/MMC cards common + * + * 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 + */ +#ifndef SD_INTERNAL_H +#define SD_INTERNAL_H + +#include "hw/sd/sd.h" + +#define SDMMC_CMD_MAX 64 + +const char *sd_cmd_name(uint8_t cmd); +const char *sd_acmd_name(uint8_t cmd); + +#endif diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 7b1cbc0a2e..e2c4d96d76 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -40,6 +40,7 @@ #include "qemu/error-report.h" #include "qemu/timer.h" #include "qemu/log.h" +#include "sdmmc-internal.h" #include "trace.h" =20 //#define DEBUG_SD 1 @@ -126,8 +127,6 @@ struct SDState { bool cmd_line; }; =20 -#define SDMMC_CMD_MAX 64 - static const char *sd_state_name(enum SDCardStates state) { static const char *state_name[] =3D { @@ -827,8 +826,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDR= equest req) uint64_t addr =3D (sd->ocr & (1 << 30)) ? (uint64_t) req.arg << 9 : re= q.arg; =20 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 */ @@ -1399,7 +1398,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 */ @@ -1697,7 +1697,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; @@ -1835,7 +1836,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-common.c b/hw/sd/sdmmc-common.c new file mode 100644 index 0000000000..1d0198b1ad --- /dev/null +++ b/hw/sd/sdmmc-common.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", /* FIXME */ + [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..af4a248728 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-common.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.15.1 From nobody Wed May 8 00:02:34 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 1516678157885521.1680353677173; Mon, 22 Jan 2018 19:29:17 -0800 (PST) Received: from localhost ([::1]:59058 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpGu-00017M-QS for importer@patchew.org; Mon, 22 Jan 2018 22:29:16 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpA4-0003k4-EP for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpA2-0000s9-Po for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:12 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:38051) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpA2-0000rr-Ld for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:10 -0500 Received: by mail-qt0-x243.google.com with SMTP id z10so26434476qti.5 for ; Mon, 22 Jan 2018 19:22:10 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.22.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:22: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=FNQfGSn88PoDxo99aesvqFTJFyl9Z9HvkNfqwl8cfxA=; b=dRanKXVZ1dJqa57IlU4llbOcq4nQIG85hB0hMbKTRCx+vEgtpvl2yHiYdf+GpsNfL/ EDbzmZ5MD/rVJHkoNsSbBWPdnV5VBusz3zA8+hbjREVk/3d7WhOArT3YvJv3dLaaYNzx hJQhE5Qb2dtBCpUBF7OnePSJONkr5fKwdaNUWOXxTowCLK7nqU9aJI3su350FRaOBCwJ u38W3yzrIyjDVeZWsRf7tYCIx6K8yBuJGj2YxDR0ddSkCxg5cfLz5T51dw0Rm0LqUzya A4eYjrxHM3WrJ5Xp59iUe/oFTQ8MviLMmx4Snt5j/7InrkJIi18sxtPPqM/0WdSR+5kf NOjQ== 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=FNQfGSn88PoDxo99aesvqFTJFyl9Z9HvkNfqwl8cfxA=; b=cy7FU4spmsnmErLfEDFBXCORzSDIEsKDgw0/G/kh0VzEv0roZoFQLDJ1+m+WJioqu5 CjVG+uSIZxVBV5e9kq2fg2jyO5lEY+g5AelwogCR6OO9TyIXmgYzEND7wRYRGB5MHrR3 2sLaDse+uf0euZIxFJBjwdbH6Un0XMZljyr+O0KTfreo93qCReaKpF/EBEXWzBr1uFDA 9uWLBF9IxdDmsM6ZcuV+X20CMKwN/2ZpPrBVrZaRssAVrQL5omRTX1hGdCA/Y7pwJWIs uuedFEt3eoRiPaTxFPIRWdrY1e7gSmip+sNuTSJn4MWMa8Ao5J22lcHZEdBoncxyCtcW rvtg== X-Gm-Message-State: AKwxytf7rUwm95c2SOyRfqBcNkf15Kt72xRkZBiHB1zyES1DNSiQVH7g kJvmcdetGwGMUJ6prLZsN5A= X-Google-Smtp-Source: AH8x225hBb4rP+0KuWsXuuVVEelV/diKpUd7ExECTJ1sgedfgT8GuJlA53tGmZIleFpgUJgpoG5bPQ== X-Received: by 10.200.32.146 with SMTP id 18mr1597794qtd.339.1516677730218; Mon, 22 Jan 2018 19:22:10 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:32 -0300 Message-Id: <20180123032135.28863-10-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v3 09/12] sdcard: display protocol used when tracing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 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 e2c4d96d76..c46e9c2818 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -122,6 +122,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; @@ -826,7 +827,8 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDR= equest req) uint64_t addr =3D (sd->ocr & (1 << 30)) ? (uint64_t) req.arg << 9 : re= q.arg; =20 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 @@ -1398,7 +1400,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) { @@ -1697,7 +1699,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 */ @@ -1836,7 +1839,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 */ @@ -1978,6 +1982,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.15.1 From nobody Wed May 8 00:02:34 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 1516678012311462.99014887172075; Mon, 22 Jan 2018 19:26:52 -0800 (PST) Received: from localhost ([::1]:59043 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpEZ-0007Os-JA for importer@patchew.org; Mon, 22 Jan 2018 22:26:51 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpA6-0003mW-Tf for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpA5-0000ux-T9 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:14 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:44335) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpA5-0000ud-OL for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:13 -0500 Received: by mail-qt0-x244.google.com with SMTP id l20so25096815qtj.11 for ; Mon, 22 Jan 2018 19:22:13 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.22.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:22:12 -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=G0eFTsvM9lxSoJbtRrSh4698rVd0GevgUGXvA3jGdgc=; b=CraaM4TUEL5Azq1x7lXTcJXgjjcPPZ4lRHjD8bdTUgawDClcvTTX3+mPQxn1oLINl2 b1oO7Cl81Bw42+3uUNOvdMElqsqiidg3tu0LPn9586c61eIme6n86txnOyymeEbth+6I ePYyevzQZGz3iW4/SrJINQu0OWI3bG58shVOJIuNOT0j4vsBJjdIrT1BusdhxDF3Eaw6 YZFKwmTcgva/7I6gUCxMdeT9j+kUVioozANSgTOD8gki6LAg5RHpjyPPOCiZIXxOPuFo GrMFnw+nR2IgXQsxZOIiP5atX9lA1UWSDQD1PpWzmvn+OMCJbdIWNAT2Paq6qaULEiWA /mTA== 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=G0eFTsvM9lxSoJbtRrSh4698rVd0GevgUGXvA3jGdgc=; b=Asi2NJfP74YcL4VQCL+tjYyw4CgdBq6uMLKEWYUN3XyRLwQkUgmQQa0GIPojOQdq/U IHgcFqfQJtc7MLlLhXQw3oa3q4r3uezdK430QeaKJRFuP9H8FOnAl7H2Q81ObkMEfFX1 ZEGqUxHIRapJ5MWWWJmS9XD7VfViyQPVKiFytu9luS55VK6HIkXxLNnW71y8UUZFVNsW VAuJIfc0CD6AgoPjAbffnhB/qdFbHZgrXM57JjkIL5aoNtietwPzepdIrUVNdyIf5p+i CXkx0bJEOn7aoPb0hBwmgJovFCDUdL+q3w+pTy6mCHJglIFzRlom1mSxXxLiEx6W/0uY 6MdQ== X-Gm-Message-State: AKwxytdXgbURhtWmwh0rWXzNQ92RsR5seF1Au6HQIJNmheCVOnbZYVVI 1rDOSB8Kg6YQ97oL9XM1oDA= X-Google-Smtp-Source: AH8x226+u9d9FQBzOh8g+k3t/OqbdgQ3upcghCb/q6p13urIQLxIrGs7oBftxMl3jtvcPzUOcRUcaQ== X-Received: by 10.55.54.210 with SMTP id d201mr1560754qka.213.1516677733297; Mon, 22 Jan 2018 19:22:13 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:33 -0300 Message-Id: <20180123032135.28863-11-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v3 10/12] sdcard: rename sd_set_$REG() functions called once as sd_reset_$REG() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 All are only called once at reset. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index c46e9c2818..8b5022a7db 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -269,7 +269,7 @@ static uint16_t sd_crc16(void *message, size_t width) return shift_reg; } =20 -static void sd_set_ocr(SDState *sd) +static void sd_reset_ocr(SDState *sd) { /* All voltages OK, Standard Capacity SD Memory Card, not yet powered = up */ sd->ocr =3D 0x00ffff00; @@ -285,7 +285,7 @@ static void sd_ocr_powerup(void *opaque) sd->ocr |=3D OCR_POWER_UP; } =20 -static void sd_set_scr(SDState *sd) +static void sd_reset_scr(SDState *sd) { sd->scr[0] =3D 0x00; /* SCR Structure */ sd->scr[1] =3D 0x2f; /* SD Security Support */ @@ -304,7 +304,7 @@ static void sd_set_scr(SDState *sd) #define MDT_YR 2006 #define MDT_MON 2 =20 -static void sd_set_cid(SDState *sd) +static void sd_reset_cid(SDState *sd) { sd->cid[0] =3D MID; /* Fake card manufacturer ID (MID) */ sd->cid[1] =3D OID[0]; /* OEM/Application ID (OID) */ @@ -336,7 +336,7 @@ static const uint8_t sd_csd_rw_mask[16] =3D { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, }; =20 -static void sd_set_csd(SDState *sd, uint64_t size) +static void sd_reset_csd(SDState *sd, uint64_t size) { uint32_t csize =3D (size >> (CMULT_SHIFT + HWBLOCK_SHIFT)) - 1; uint32_t sectsize =3D (1 << (SECTOR_SHIFT + 1)) - 1; @@ -391,6 +391,11 @@ static void sd_set_csd(SDState *sd, uint64_t size) } } =20 +static void sd_reset_rca(SDState *sd) +{ + sd->rca =3D 0; +} + static void sd_set_rca(SDState *sd) { sd->rca +=3D 0x4567; @@ -405,12 +410,12 @@ static void sd_set_rca(SDState *sd) #define CARD_STATUS_B 0x00c01e00 #define CARD_STATUS_C 0xfd39a028 =20 -static void sd_set_cardstatus(SDState *sd) +static void sd_reset_cardstatus(SDState *sd) { sd->card_status =3D 0x00000100; } =20 -static void sd_set_sdstatus(SDState *sd) +static void sd_reset_sdstatus(SDState *sd) { memset(sd->sd_status, 0, 64); } @@ -494,13 +499,13 @@ static void sd_reset(DeviceState *dev) sect =3D sd_addr_to_wpnum(size) + 1; =20 sd->state =3D sd_idle_state; - sd->rca =3D 0x0000; - sd_set_ocr(sd); - sd_set_scr(sd); - sd_set_cid(sd); - sd_set_csd(sd, size); - sd_set_cardstatus(sd); - sd_set_sdstatus(sd); + sd_reset_rca(sd); + sd_reset_ocr(sd); + sd_reset_scr(sd); + sd_reset_cid(sd); + sd_reset_csd(sd, size); + sd_reset_cardstatus(sd); + sd_reset_sdstatus(sd); =20 g_free(sd->wp_groups); sd->wp_switch =3D sd->blk ? blk_is_read_only(sd->blk) : false; --=20 2.15.1 From nobody Wed May 8 00:02:34 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 15166782112521022.3523271072435; Mon, 22 Jan 2018 19:30:11 -0800 (PST) Received: from localhost ([::1]:59062 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpHm-0001yk-Gi for importer@patchew.org; Mon, 22 Jan 2018 22:30:10 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpA9-0003pA-Oi for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpA8-0000zh-Rq for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:17 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:44002) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpA8-0000zK-NS for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:16 -0500 Received: by mail-qt0-x241.google.com with SMTP id s3so26431097qtb.10 for ; Mon, 22 Jan 2018 19:22:16 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.22.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:22:15 -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=sWX5tsJlJ9VR6KdVxL7IgptpwvyWK7sc7+9P3Ko30mg=; b=Jais3yMP4gcfh99QF849ykr5VPV7z/Xc8cCqmybSjaKpEV/ZNibcbcWGdl+RGnMXPH I/iFyqa8aoRNrYGaZTb7DFV523Vt/W5DHtph4de2/CP1DzfByyN5JBPZwJCFiTFST/yX Deow1BTX+s2FTYg4cyHKb+5NkMaSp4764bFYTOZJ4ch27E9rl498f94kX+HROkMjPREN uOdRzm1jH873oge4GOsw9Mhld6HX5kwRqrxN2R+qu098JmSJf5el0Y1hflhcdaZq59ut lLh9QIsG3BfXHZ6nX+uuG7VQCE0Y8ky2xJPGtdzsKWM+AnT95DcV39yBvJaosr08ZYy7 bEUg== 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=sWX5tsJlJ9VR6KdVxL7IgptpwvyWK7sc7+9P3Ko30mg=; b=BMQsEFkRiPQfWwS24LXFPoa/HiCiXYKCABJUmV8mVhkV7TYstZ6RtXO9FDEZx2ApHB eRxcgHHmKtRLvZF5WUSY/Iv6OqYXC9/7X8IDktkhgMvJSj4cyGbGsX39nkvisRd77bBt 3SNywDK/ostVmBE9i8Hpg3391TrmAssPKQttnVmErNExWrDH7XrQiXP+j3oHde8ZASY6 0OkJVcSITb5/crxjI9u5KYcKBhJ/C/DP4En2cFtAmxnwTlEYLNKG+jcL21qDIBVfb1Dn Fvxfc87FKeUfwcjbm1GFRMGejPldo5TWI0gTYR1VqRJM+W+LTwrK4r/MYg0NiqmJhAnU 3huQ== X-Gm-Message-State: AKwxytefd05zmmkw8bJemtq/qUzitfWLcnMJLx15kxEKSRwrowooYoiA HfDoPNkrjOb09ur6qNPPioE= X-Google-Smtp-Source: AH8x225eQBZQUhoEiC+iVyelwI9ntoW9yz5efXfSyg26lZWWR989WtEeEAyHWTuYUoVTtZDgIMJfGQ== X-Received: by 10.55.215.139 with SMTP id t11mr1468404qkt.355.1516677736312; Mon, 22 Jan 2018 19:22:16 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:34 -0300 Message-Id: <20180123032135.28863-12-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v3 11/12] sdcard: use G_BYTE from cutils X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 code is now easier to read. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- 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 8b5022a7db..f87e543f8f 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -36,6 +36,7 @@ #include "hw/sd/sd.h" #include "qapi/error.h" #include "qemu/bitmap.h" +#include "qemu/cutils.h" #include "hw/qdev-properties.h" #include "qemu/error-report.h" #include "qemu/timer.h" @@ -342,7 +343,7 @@ static void sd_reset_csd(SDState *sd, uint64_t size) uint32_t sectsize =3D (1 << (SECTOR_SHIFT + 1)) - 1; uint32_t wpsize =3D (1 << (WPGROUP_SHIFT + 1)) - 1; =20 - if (size <=3D 0x40000000) { /* Standard Capacity SD */ + if (size <=3D 1 * G_BYTE) { /* Standard Capacity SD */ sd->csd[0] =3D 0x00; /* CSD structure */ sd->csd[1] =3D 0x26; /* Data read access-time-1 */ sd->csd[2] =3D 0x00; /* Data read access-time-2 */ --=20 2.15.1 From nobody Wed May 8 00:02:34 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 151667817463641.84080305153236; Mon, 22 Jan 2018 19:29:34 -0800 (PST) Received: from localhost ([::1]:59060 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpHB-0001Q7-Qv for importer@patchew.org; Mon, 22 Jan 2018 22:29:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35559) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpAF-0003u7-BY for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpAC-00014z-5x for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:23 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:33454) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpAC-00014E-0m for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:22:20 -0500 Received: by mail-qt0-x243.google.com with SMTP id d8so17830108qtm.0 for ; Mon, 22 Jan 2018 19:22:19 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id x207sm5545567qka.91.2018.01.22.19.22.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:22:18 -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=VovFNSJ4fSrtjAl2tUtOv8IbRQA3j5SZVp5+SwufQkU=; b=mi4H+hx2iMv3h3edrGaOOQW3jQv1BDugbGPJ/EQb/5YvlVzkmJd7eACwDcQf7cAylr IEuJ4lb9S+GoottDbuW76O+LIABDZhmbgOJIIZKJWxxBjWKAk4XLc2BiQlTsCMi7YT2N grbbqpTRWWPJ/ZTkNj/j1LsdyxXyXG8+AbJJazl0OImF/DRuUabi1OiALhZxDtAuBjVe cLyhC3tmXXAxkbnWAXjP8eo3pFRVTXJgZSbD+Cyrt5vLLD2c+I+fvXRYNLpUd4GpBepU rnA7nSHRYhavyvy9LZ9DhL3B9MLS3/jmZ/npq/0NDdDstV1viMnapKmL+TChX6M5WwLT crdA== 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=VovFNSJ4fSrtjAl2tUtOv8IbRQA3j5SZVp5+SwufQkU=; b=I3wPdiOjwe5gLcnZmfdIGtTtC6clG/wqAqyxbMNikTLcbcnQU+DfH0cBN1hwHyGX3w uHJHKZPtgU4dhf6pTa9tq/biYhNALF2QSSZ3Q0QB5OlvW2/4UtQVdpAcdBF3BqYDasyT /tlrWBbW7tM4GsGU7OhmoquMDO9FcUj5F6w1doxk7S7LJSM3etfPU++HBJgVdOrsXaME Q9I2me9jACtzJmpD6bNmMjO7g9pHq4urxuxhyftxlHsnxS9E7uAIo5wDoRJ1LPXSZjTb xdIyTU5/acL2UiHuL44UMQy3bNLn/6EZ+gXQX3ST0X2p8935u4Gqb3CCHmOIiq5FrWRD EAaQ== X-Gm-Message-State: AKwxytekLuKFjvJCnFW7IoR/D5GCj9IG3wwF5rKS0Df4B0vSbXc1i6jU Ld/migKqiHtOjeyEM3tXYkU= X-Google-Smtp-Source: AH8x226d4ahDVyPO38OBisBb+7uQg5xSH0mzZnPTendKs9YDXObSOjPtN7i9RnKgEVAoJS1igUHMVw== X-Received: by 10.55.21.2 with SMTP id f2mr1529996qkh.320.1516677739577; Mon, 22 Jan 2018 19:22:19 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Igor Mitsyanko Date: Tue, 23 Jan 2018 00:21:35 -0300 Message-Id: <20180123032135.28863-13-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123032135.28863-1-f4bug@amsat.org> References: <20180123032135.28863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v3 12/12] sdcard: use the registerfields API to access the OCR register X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , Peter Crosthwaite , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org 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 --- include/hw/sd/sd.h | 1 - hw/sd/sd.c | 21 +++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index bf1eb0713c..9bdb3c9285 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -53,7 +53,6 @@ #define READY_FOR_DATA (1 << 8) #define APP_CMD (1 << 5) #define AKE_SEQ_ERROR (1 << 3) -#define OCR_CCS_BITN 30 =20 typedef enum { SD_VOLTAGE_0_4V =3D 400, /* currently not supported */ diff --git a/hw/sd/sd.c b/hw/sd/sd.c index f87e543f8f..437ce25f79 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -32,6 +32,7 @@ #include "qemu/osdep.h" #include "hw/qdev.h" #include "hw/hw.h" +#include "hw/registerfields.h" #include "sysemu/block-backend.h" #include "hw/sd/sd.h" #include "qapi/error.h" @@ -47,8 +48,6 @@ //#define DEBUG_SD 1 =20 #define ACMD41_ENQUIRY_MASK 0x00ffffff -#define OCR_POWER_UP 0x80000000 -#define OCR_POWER_DELAY_NS 500000 /* 0.5ms */ =20 typedef enum { sd_r0 =3D 0, /* no response */ @@ -270,6 +269,11 @@ static uint16_t sd_crc16(void *message, size_t width) return shift_reg; } =20 +#define OCR_POWER_DELAY_NS 500000 /* 0.5ms */ + +FIELD(OCR, CARD_CAPACITY, 30, 1) /* 0:SDSC, 1:SDHC/SDXC */ +FIELD(OCR, CARD_POWER_UP, 31, 1) + static void sd_reset_ocr(SDState *sd) { /* All voltages OK, Standard Capacity SD Memory Card, not yet powered = up */ @@ -281,9 +285,10 @@ static void sd_ocr_powerup(void *opaque) SDState *sd =3D opaque; =20 trace_sdcard_powerup(); - /* Set powered up bit in OCR */ - assert(!(sd->ocr & OCR_POWER_UP)); - sd->ocr |=3D OCR_POWER_UP; + assert(!FIELD_EX32(sd->ocr, OCR, CARD_POWER_UP)); + + /* card power-up OK */ + sd->ocr =3D FIELD_DP32(sd->ocr, OCR, CARD_POWER_UP, 1); } =20 static void sd_reset_scr(SDState *sd) @@ -574,7 +579,7 @@ static bool sd_ocr_vmstate_needed(void *opaque) SDState *sd =3D opaque; =20 /* Include the OCR state (and timer) if it is not yet powered up */ - return !(sd->ocr & OCR_POWER_UP); + return !FIELD_EX32(sd->ocr, OCR, CARD_POWER_UP); } =20 static const VMStateDescription sd_ocr_vmstate =3D { @@ -684,7 +689,7 @@ static void sd_erase(SDState *sd) return; } =20 - if (extract32(sd->ocr, OCR_CCS_BITN, 1)) { + if (FIELD_EX32(sd->ocr, OCR, CARD_CAPACITY)) { /* High capacity memory card: erase units are 512 byte blocks */ erase_start *=3D 512; erase_end *=3D 512; @@ -1476,7 +1481,7 @@ static sd_rsp_type_t sd_app_command(SDState *sd, * UEFI, which sends an initial enquiry ACMD41, but * assumes that the card is in ready state as soon as it * sees the power up bit set. */ - if (!(sd->ocr & OCR_POWER_UP)) { + if (!FIELD_EX32(sd->ocr, OCR, CARD_POWER_UP)) { if ((req.arg & ACMD41_ENQUIRY_MASK) !=3D 0) { timer_del(sd->ocr_power_timer); sd_ocr_powerup(sd); --=20 2.15.1