From patchwork Thu Feb 22 15:22:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 129273 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp724576lja; Thu, 22 Feb 2018 07:36:33 -0800 (PST) X-Google-Smtp-Source: AH8x226m2/uyANjRmfbec/uIZrirvL3RyvUN2yGxywXpL4+0vnEBYau2fTEjqu8O6KEzZGDAYgcq X-Received: by 10.129.61.11 with SMTP id k11mr5115167ywa.386.1519313793800; Thu, 22 Feb 2018 07:36:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519313793; cv=none; d=google.com; s=arc-20160816; b=TPQxCpKkQLtu84BLt6jElsd/o+SyOsVVOkmbfTbjlPhwTD/2yozxOjII4mbetO6xgh tgLdC1qpzN6K/hUc1zsTOfg6JMY53ex2bY4BQInCJZSnNq/t8K8N7dHFkpPaI4+JeXbb kasL6RxEhtUx8Ad3G8Y9BEwhxIkTKn1oenI3gqrN2++pKOvhedoj2vhyUcMyTML991kW 7Seddu/JTau+1bqzS16qlbBnZzIkM3u/7NlY+PNuQJZIZfJZMZQZZiJYt+flJK+TrpDV /6IhwCqn98hgqrcbSUUDGJawThaoD4WlU3Xtst1RIioLYqvVQN3aPFNB177oQhWSVoKa KH7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:arc-authentication-results; bh=u5CB6W0CD5gEAPQCFtIyrCF45IfODktaPrHsJcsqU0M=; b=re93U45bxukkSbqUZpfUMEMPSNJBpP5ci0iev2mGRJ89zrSBwssY8GELFkv6E8L6jK 2TPdtRL5axZ9avIArq4kNd3zMohboyMtXkmVOUJH8sqJ0TxJ4lmxttR4Q3cgJhAO4QxL 4smL6SNmoIGxw7IBRQSewlYoqxzrGR2OCYCUkjTBgTYKqKSlzHmuwUlSLzW9cWv6G/Jr 14ujwC0SQJ/WmvRi8YBcN6K7KLJqLw9TeE04wr6W7X9nIYyE12/Qg6h88NnKswMyAEjl ABhVVADbkTTxXU0RCJmMvuAczHJDKS9qc7LC7L/3HVsZDf1q4Yk6dXyMgv/y+VnOji0m ZXRA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id i6-v6si47982ybh.730.2018.02.22.07.36.33 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 22 Feb 2018 07:36:33 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:39034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eosvA-0006t0-Vs for patch@linaro.org; Thu, 22 Feb 2018 10:36:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38556) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eosil-0004ze-P6 for qemu-devel@nongnu.org; Thu, 22 Feb 2018 10:23:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eosik-0001pp-7Z for qemu-devel@nongnu.org; Thu, 22 Feb 2018 10:23:43 -0500 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:46612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eosij-0001na-W5 for qemu-devel@nongnu.org; Thu, 22 Feb 2018 10:23:42 -0500 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1eosii-00025x-Sa for qemu-devel@nongnu.org; Thu, 22 Feb 2018 15:23:40 +0000 From: Peter Maydell To: qemu-devel@nongnu.org Date: Thu, 22 Feb 2018 15:22:59 +0000 Message-Id: <20180222152307.7499-25-peter.maydell@linaro.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180222152307.7499-1-peter.maydell@linaro.org> References: <20180222152307.7499-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PULL 24/32] sdcard: use the registerfields API for the CARD_STATUS register masks 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Signed-off-by: Philippe Mathieu-Daudé Acked-by: Alistair Francis Message-id: 20180215221325.7611-9-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/sd/sd.c | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) -- 2.16.1 diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 5044a306e4..cc5caaf4f0 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -419,14 +419,56 @@ static void sd_set_rca(SDState *sd) sd->rca += 0x4567; } +FIELD(CSR, AKE_SEQ_ERROR, 3, 1) +FIELD(CSR, APP_CMD, 5, 1) +FIELD(CSR, FX_EVENT, 6, 1) +FIELD(CSR, READY_FOR_DATA, 8, 1) +FIELD(CSR, CURRENT_STATE, 9, 4) +FIELD(CSR, ERASE_RESET, 13, 1) +FIELD(CSR, CARD_ECC_DISABLED, 14, 1) +FIELD(CSR, WP_ERASE_SKIP, 15, 1) +FIELD(CSR, CSD_OVERWRITE, 16, 1) +FIELD(CSR, DEFERRED_RESPONSE, 17, 1) +FIELD(CSR, ERROR, 19, 1) +FIELD(CSR, CC_ERROR, 20, 1) +FIELD(CSR, CARD_ECC_FAILED, 21, 1) +FIELD(CSR, ILLEGAL_COMMAND, 22, 1) +FIELD(CSR, COM_CRC_ERROR, 23, 1) +FIELD(CSR, LOCK_UNLOCK_FAILED, 24, 1) +FIELD(CSR, CARD_IS_LOCKED, 25, 1) +FIELD(CSR, WP_VIOLATION, 26, 1) +FIELD(CSR, ERASE_PARAM, 27, 1) +FIELD(CSR, ERASE_SEQ_ERROR, 28, 1) +FIELD(CSR, BLOCK_LEN_ERROR, 29, 1) +FIELD(CSR, ADDRESS_ERROR, 30, 1) +FIELD(CSR, OUT_OF_RANGE, 31, 1) + /* Card status bits, split by clear condition: * A : According to the card current state * B : Always related to the previous command * C : Cleared by read */ -#define CARD_STATUS_A 0x02004100 -#define CARD_STATUS_B 0x00c01e00 -#define CARD_STATUS_C 0xfd39a028 +#define CARD_STATUS_A (R_CSR_READY_FOR_DATA_MASK \ + | R_CSR_CARD_ECC_DISABLED_MASK \ + | R_CSR_CARD_IS_LOCKED_MASK) +#define CARD_STATUS_B (R_CSR_CURRENT_STATE_MASK \ + | R_CSR_ILLEGAL_COMMAND_MASK \ + | R_CSR_COM_CRC_ERROR_MASK) +#define CARD_STATUS_C (R_CSR_AKE_SEQ_ERROR_MASK \ + | R_CSR_APP_CMD_MASK \ + | R_CSR_ERASE_RESET_MASK \ + | R_CSR_WP_ERASE_SKIP_MASK \ + | R_CSR_CSD_OVERWRITE_MASK \ + | R_CSR_ERROR_MASK \ + | R_CSR_CC_ERROR_MASK \ + | R_CSR_CARD_ECC_FAILED_MASK \ + | R_CSR_LOCK_UNLOCK_FAILED_MASK \ + | R_CSR_WP_VIOLATION_MASK \ + | R_CSR_ERASE_PARAM_MASK \ + | R_CSR_ERASE_SEQ_ERROR_MASK \ + | R_CSR_BLOCK_LEN_ERROR_MASK \ + | R_CSR_ADDRESS_ERROR_MASK \ + | R_CSR_OUT_OF_RANGE_MASK) static void sd_set_cardstatus(SDState *sd) {