From patchwork Wed Jan 3 18:33:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855145 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="LhOYyuS6"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBflT6yVTz9s7c for ; Thu, 4 Jan 2018 05:36:21 +1100 (AEDT) Received: from localhost ([::1]:60764 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWntj-0003rk-Ud for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:36:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33626) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnrz-0002ua-H3 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnrx-0007BT-WD for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:31 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:47072) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnrx-0007BJ-RC for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:29 -0500 Received: by mail-qt0-x242.google.com with SMTP id r39so3191060qtr.13 for ; Wed, 03 Jan 2018 10:34:29 -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=Fm39Pzrn8Q7zQaadWX3MLf+gFiUKzxWZxuHQpGq3oQk=; b=LhOYyuS6a7ao9bfg7kb0LCZrl6RwXu/5m17YJWYWZC0h7Sflgx7qtbFKuSi8bpyPgn u48K23R/hKf5PYKnjyeSGJGO98aHvqjuFfLToKTA/jNTg8Fj0h/yfX/1CVO3ngXVn/Rk xHoXRk7UnEps0js2jwHK7G37S0rhFJ1hG+nCVud3WFVZygWrAsrHBj5PYepyWTQGF8V1 VZlcdSXv6hAPfRegoy/gPMO3QGFGnkpEH3bq8YtoSxnkbHcnKNSZYIQtIWeDUql9LU/U 8dnEXK/T/qeRwYE0RMddmrLFw8/Xj6/PKEFtskubw7Zoo0DYMPQsnZV7sDiHv9a928RH yEHQ== 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=Fm39Pzrn8Q7zQaadWX3MLf+gFiUKzxWZxuHQpGq3oQk=; b=Oa7WFnw6HIIs5fx+GRWgMFzMGhPdk0keTk/4/5Be0E3AhzXAGXCo4f2DWBiVe/SEuk pjfcbmYagLWLVzWyEXaoIghG75JIE/VE1V7r4mHYKnN2oHdWfZvfjgyDUBgODLZmtRln xtTkJjlC5jXmUMKrC6uQGYdxJ02tBkVrq1B1v/KJyrEXymBbDwda2uOyIS73kHQzxr4o 89O13r3+8zN636rbooQo2Pa2GCxO3zLAP2bP7IJIYvYm6RKB85akHDFNnRM3/7xq2nQl +P8cINehaPDlNOmycfah2EEm3R5oPbfr4ZG0r255iy81v8K5oLO70Ywr9bthcKFQcprN 0Bcw== X-Gm-Message-State: AKGB3mJWaPZIOwsqpxDT+fX1B6aLJB7NGhhKvUUDjzCedFCGzT4iPK1n wFCETrw/mapyqFlEEKvdd5c= X-Google-Smtp-Source: ACJfBoslmZy4LdzZdgRhByorPvtUbHE1xYt/X2UVR0PfcRCP5IrsMFskvI/MnAjr+CXsGToJGLLIhQ== X-Received: by 10.200.36.9 with SMTP id c9mr3206720qtc.182.1515004469373; Wed, 03 Jan 2018 10:34:29 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:28 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:33:54 -0300 Message-Id: <20180103183418.23730-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 01/25] sdhci: add a spec_version property 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" default to Spec v2.00 Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci-internal.h | 4 ++-- include/hw/sd/sdhci.h | 3 +++ hw/sd/sdhci.c | 19 +++++++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index b7475a1b7b..cf4a055159 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -212,9 +212,9 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); /* Slot interrupt status */ #define SDHC_SLOT_INT_STATUS 0xFC -/* HWInit Host Controller Version Register 0x0401 */ +/* HWInit Host Controller Version Register */ #define SDHC_HCVER 0xFE -#define SD_HOST_SPECv2_VERS 0x2401 +#define SDHC_HCVER_VENDOR 0x24 #define SDHC_REGISTERS_MAP_SIZE 0x100 #define SDHC_INSERTION_DELAY (NANOSECONDS_PER_SECOND) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 2aea20f1d8..ddd5040410 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -91,6 +91,8 @@ typedef struct SDHCIState { uint64_t capareg; /* Capabilities Register */ /* 0x48 */ uint64_t maxcurr; /* Maximum Current Capabilities Register */ + /* 0xfe */ + uint16_t version; /* Host Controller Version Register */ uint8_t *fifo_buffer; /* SD host i/o FIFO buffer */ uint32_t buf_maxsz; @@ -99,6 +101,7 @@ typedef struct SDHCIState { bool pending_insert_state; /* Configurable properties */ bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ + uint8_t spec_version; } SDHCIState; #define TYPE_PCI_SDHCI "sdhci-pci" diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b080950f80..ae8ddf4e3b 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -169,7 +169,8 @@ static void sdhci_reset(SDHCIState *s) timer_del(s->insert_timer); timer_del(s->transfer_timer); - /* Set all registers to 0. Capabilities registers are not cleared + + /* Set all registers to 0. Capabilities/Version registers are not cleared * and assumed to always preserve their value, given to them during * initialization */ memset(&s->sdmasysad, 0, (uintptr_t)&s->capareg - (uintptr_t)&s->sdmasysad); @@ -923,7 +924,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset, unsigned size) ret = (uint32_t)(s->admasysaddr >> 32); break; case SDHC_SLOT_INT_STATUS: - ret = (SD_HOST_SPECv2_VERS << 16) | sdhci_slotint(s); + ret = (s->version << 16) | sdhci_slotint(s); break; default: qemu_log_mask(LOG_UNIMP, "SDHC rd_%ub @0x%02" HWADDR_PRIx " " @@ -1178,6 +1179,15 @@ static inline unsigned int sdhci_get_fifolen(SDHCIState *s) } } +static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) +{ + if (s->spec_version < 1) { + error_setg(errp, "spec version invalid"); + return; + } + s->version = (SDHC_HCVER_VENDOR << 8) | (s->spec_version - 1); +} + static void sdhci_initfn(SDHCIState *s) { qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), @@ -1190,6 +1200,10 @@ static void sdhci_initfn(SDHCIState *s) static void sdhci_common_realize(SDHCIState *s, Error **errp) { + sdhci_init_readonly_registers(s, errp); + if (errp && *errp) { + return; + } s->buf_maxsz = sdhci_get_fifolen(s); s->fifo_buffer = g_malloc0(s->buf_maxsz); @@ -1290,6 +1304,7 @@ const VMStateDescription sdhci_vmstate = { /* Capabilities registers provide information on supported features of this * specific host controller implementation */ static Property sdhci_properties[] = { + DEFINE_PROP_UINT8("sd-spec-version", SDHCIState, spec_version, 1), DEFINE_PROP_UINT64("capareg", SDHCIState, capareg, SDHC_CAPAB_REG_DEFAULT), DEFINE_PROP_UINT64("maxcurr", SDHCIState, maxcurr, 0), From patchwork Wed Jan 3 18:33:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855151 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="EQWqd/Nh"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfpc6dN0z9s7c for ; Thu, 4 Jan 2018 05:39:04 +1100 (AEDT) Received: from localhost ([::1]:60789 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnwN-0006NQ-0d for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:39:03 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33649) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWns2-0002ws-7P for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWns0-0007DG-Rf for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:34 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:34919) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWns0-0007D0-Lx for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:32 -0500 Received: by mail-qt0-x241.google.com with SMTP id u10so3235534qtg.2 for ; Wed, 03 Jan 2018 10:34:32 -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=5Frtse9vg8bswS5OuoKTX+4VsFqr1/QekEObzWVQlKQ=; b=EQWqd/NhUjV2+DjyoqKbZZa3sMoP7yOTJ6GhqHgjxox96yXi4+f3z+NOeKFXPE3mCg 1naPZj/uYL4vRUUu4rh8oWeq1rPGxbsMANcZeJg7nMK/CO+Z0TnOEovXRQzMbegcT1dk wcddll0DVh4e/9T1wRFHhh/AjJezqZXQqGakWCc6F60p9Es3YvCZUk13V99cLvjd5k3D WjTwyKUvd92sUK/0BTLB6RhPtEmapbuXWX9J3OutU8j6UhdYiMJKO3dPpA1agkugnsef 7/Ksqj43KQhLmRZUXWAc1QJd9Hjq2bS3wzWdehk3l/YjGsEO/06R6uumSZpHU09cqW/x BGuA== 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=5Frtse9vg8bswS5OuoKTX+4VsFqr1/QekEObzWVQlKQ=; b=RV94uVLEnN0/nrTcIfO5c0lGngunWhsiaYBKJJ+7840w4aZbVp0lAfTc0jc2hiXwkR ulK5Xbtuk1xadV7URwfngvPz+4jIqEWtQluRUa5O2MvgIN2d8sBeOulz/0AeOk7nKEn7 36aJCX047olynhAdDXK+uqRkUJGEglyK6dSzHtcXl2dZMMK9tICWcEn3oPiQ00wM5Onv 2fxtmsnj8Ie6aH36/uSC3scR8Q/09ZLsM2hKPaF20ze39+zYA7HR4KQpt4Fzxm9bkl12 b5fz/AkEeSYPaEfvT+pXHJ6KPRgstB205XP+S5RaRaS60iPuExktkK/SnIgOBYRkXlpa uMzQ== X-Gm-Message-State: AKGB3mJwcK8XU9c6Vh6jutzFzxWK9RtNmJ62hI1Ifg3KQGdtt3T7vkuH LJz5PhOcLruv1uadzatc1IW7j2pU X-Google-Smtp-Source: ACJfBoucv/Tb5uKJPTHlQkDjwn50/pxhuVahOjdntaAYh+72zXgiv6jr8xY6GpFv9xQTAxbSmjFsng== X-Received: by 10.237.59.22 with SMTP id p22mr2925969qte.34.1515004472044; Wed, 03 Jan 2018 10:34:32 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:31 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:33:55 -0300 Message-Id: <20180103183418.23730-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 02/25] sdhci: add basic Spec v1 capabilities 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci-internal.h | 22 ++++++++++++++++++- include/hw/sd/sdhci.h | 6 ++++++ hw/sd/sdhci.c | 58 ++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 69 insertions(+), 17 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index cf4a055159..6944fcaf00 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -86,6 +86,9 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); /* R/W Host control Register 0x0 */ #define SDHC_HOSTCTL 0x28 +FIELD(SDHC_HOSTCTL, LED_CTRL, 0, 1); +FIELD(SDHC_HOSTCTL, DATATRANSFERWIDTH, 1, 1); /* SD mode only */ +FIELD(SDHC_HOSTCTL, HIGH_SPEED, 2, 1); #define SDHC_CTRL_DMA_CHECK_MASK 0x18 #define SDHC_CTRL_SDMA 0x00 #define SDHC_CTRL_ADMA1_32 0x08 @@ -96,6 +99,7 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); /* R/W Power Control Register 0x0 */ #define SDHC_PWRCON 0x29 #define SDHC_POWER_ON (1 << 0) +FIELD(SDHC_PWRCON, BUS_VOLTAGE, 1, 3); /* R/W Block Gap Control Register 0x0 */ #define SDHC_BLKGAP 0x2A @@ -118,6 +122,7 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); /* R/W Timeout Control Register 0x0 */ #define SDHC_TIMEOUTCON 0x2E +FIELD(SDHC_TIMEOUTCON, COUNTER, 0, 4); /* R/W Software Reset Register 0x0 */ #define SDHC_SWRST 0x2F @@ -174,17 +179,32 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); /* ROC Auto CMD12 error status register 0x0 */ #define SDHC_ACMD12ERRSTS 0x3C +FIELD(SDHC_ACMD12ERRSTS, TIMEOUT_ERR, 1, 1); +FIELD(SDHC_ACMD12ERRSTS, CRC_ERR, 2, 1); +FIELD(SDHC_ACMD12ERRSTS, INDEX_ERR, 4, 1); /* HWInit Capabilities Register 0x05E80080 */ #define SDHC_CAPAB 0x40 -#define SDHC_CAN_DO_DMA 0x00400000 #define SDHC_CAN_DO_ADMA2 0x00080000 #define SDHC_CAN_DO_ADMA1 0x00100000 #define SDHC_64_BIT_BUS_SUPPORT (1 << 28) #define SDHC_CAPAB_BLOCKSIZE(x) (((x) >> 16) & 0x3) +FIELD(SDHC_CAPAB, TOCLKFREQ, 0, 6); +FIELD(SDHC_CAPAB, TOUNIT, 7, 1); +FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); +FIELD(SDHC_CAPAB, MAXBLOCKLENGTH, 16, 2); +FIELD(SDHC_CAPAB, HIGHSPEED, 21, 1); +FIELD(SDHC_CAPAB, SDMA, 22, 1); +FIELD(SDHC_CAPAB, SUSPRESUME, 23, 1); +FIELD(SDHC_CAPAB, V33, 24, 1); +FIELD(SDHC_CAPAB, V30, 25, 1); +FIELD(SDHC_CAPAB, V18, 26, 1); /* HWInit Maximum Current Capabilities Register 0x0 */ #define SDHC_MAXCURR 0x48 +FIELD(SDHC_MAXCURR, V33_VDD1, 0, 8); +FIELD(SDHC_MAXCURR, V30_VDD1, 8, 8); +FIELD(SDHC_MAXCURR, V18_VDD1, 16, 8); /* W Force Event Auto CMD12 Error Interrupt Register 0x0000 */ #define SDHC_FEAER 0x50 diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index ddd5040410..266030dc8d 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -102,6 +102,12 @@ typedef struct SDHCIState { /* Configurable properties */ bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ uint8_t spec_version; + struct { + bool suspend; + bool high_speed; + bool sdma; + bool v33, v30, v18; + } cap; } SDHCIState; #define TYPE_PCI_SDHCI "sdhci-pci" diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index ae8ddf4e3b..5e08949b37 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -44,12 +44,6 @@ * 0 - not supported, 1 - supported, other - prohibited. */ #define SDHC_CAPAB_64BITBUS 0ul /* 64-bit System Bus Support */ -#define SDHC_CAPAB_18V 1ul /* Voltage support 1.8v */ -#define SDHC_CAPAB_30V 0ul /* Voltage support 3.0v */ -#define SDHC_CAPAB_33V 1ul /* Voltage support 3.3v */ -#define SDHC_CAPAB_SUSPRESUME 0ul /* Suspend/resume support */ -#define SDHC_CAPAB_SDMA 1ul /* SDMA support */ -#define SDHC_CAPAB_HIGHSPEED 1ul /* High speed support */ #define SDHC_CAPAB_ADMA1 1ul /* ADMA1 support */ #define SDHC_CAPAB_ADMA2 1ul /* ADMA2 support */ /* Maximum host controller R/W buffers size @@ -63,9 +57,7 @@ #define SDHC_CAPAB_TOCLKFREQ 52ul /* Now check all parameters and calculate CAPABILITIES REGISTER value */ -#if SDHC_CAPAB_64BITBUS > 1 || SDHC_CAPAB_18V > 1 || SDHC_CAPAB_30V > 1 || \ - SDHC_CAPAB_33V > 1 || SDHC_CAPAB_SUSPRESUME > 1 || SDHC_CAPAB_SDMA > 1 || \ - SDHC_CAPAB_HIGHSPEED > 1 || SDHC_CAPAB_ADMA2 > 1 || SDHC_CAPAB_ADMA1 > 1 ||\ +#if SDHC_CAPAB_64BITBUS > 1 || SDHC_CAPAB_ADMA2 > 1 || SDHC_CAPAB_ADMA1 > 1 || \ SDHC_CAPAB_TOUNIT > 1 #error Capabilities features can have value 0 or 1 only! #endif @@ -90,16 +82,33 @@ #endif #define SDHC_CAPAB_REG_DEFAULT \ - ((SDHC_CAPAB_64BITBUS << 28) | (SDHC_CAPAB_18V << 26) | \ - (SDHC_CAPAB_30V << 25) | (SDHC_CAPAB_33V << 24) | \ - (SDHC_CAPAB_SUSPRESUME << 23) | (SDHC_CAPAB_SDMA << 22) | \ - (SDHC_CAPAB_HIGHSPEED << 21) | (SDHC_CAPAB_ADMA1 << 20) | \ + ((SDHC_CAPAB_64BITBUS << 28) | (SDHC_CAPAB_ADMA1 << 20) | \ (SDHC_CAPAB_ADMA2 << 19) | (MAX_BLOCK_LENGTH << 16) | \ (SDHC_CAPAB_BASECLKFREQ << 8) | (SDHC_CAPAB_TOUNIT << 7) | \ (SDHC_CAPAB_TOCLKFREQ)) #define MASKED_WRITE(reg, mask, val) (reg = (reg & (mask)) | (val)) +static void sdhci_init_capareg(SDHCIState *s, Error **errp) +{ + uint64_t capareg = 0; + + switch (s->spec_version) { + case 1: + capareg = FIELD_DP64(capareg, SDHC_CAPAB, HIGHSPEED, s->cap.high_speed); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, SDMA, s->cap.sdma); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, SUSPRESUME, s->cap.suspend); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, V33, s->cap.v33); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, V30, s->cap.v30); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, V18, s->cap.v18); + break; + + default: + error_setg(errp, "Unsupported spec version: %u", s->spec_version); + } + s->capareg = capareg; +} + static uint8_t sdhci_slotint(SDHCIState *s) { return (s->norintsts & s->norintsigen) || (s->errintsts & s->errintsigen) || @@ -1032,7 +1041,7 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) case SDHC_TRNMOD: /* DMA can be enabled only if it is supported as indicated by * capabilities register */ - if (!(s->capareg & SDHC_CAN_DO_DMA)) { + if (!(s->capareg & R_SDHC_CAPAB_SDMA_MASK)) { value &= ~SDHC_TRNS_DMA; } MASKED_WRITE(s->trnmod, mask, value & SDHC_TRNMOD_MASK); @@ -1186,6 +1195,10 @@ static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) return; } s->version = (SDHC_HCVER_VENDOR << 8) | (s->spec_version - 1); + + if (s->capareg == UINT64_MAX) { + sdhci_init_capareg(s, errp); + } } static void sdhci_initfn(SDHCIState *s) @@ -1305,8 +1318,21 @@ const VMStateDescription sdhci_vmstate = { * specific host controller implementation */ static Property sdhci_properties[] = { DEFINE_PROP_UINT8("sd-spec-version", SDHCIState, spec_version, 1), - DEFINE_PROP_UINT64("capareg", SDHCIState, capareg, - SDHC_CAPAB_REG_DEFAULT), + + /* DMA */ + DEFINE_PROP_BOOL("sdma", SDHCIState, cap.sdma, true), + /* Suspend/resume support */ + DEFINE_PROP_BOOL("suspend", SDHCIState, cap.suspend, false), + /* High speed support */ + DEFINE_PROP_BOOL("high-speed", SDHCIState, cap.high_speed, true), + /* Voltage support 3.3/3.0/1.8V */ + DEFINE_PROP_BOOL("3v3", SDHCIState, cap.v33, true), + DEFINE_PROP_BOOL("3v0", SDHCIState, cap.v30, false), + DEFINE_PROP_BOOL("1v8", SDHCIState, cap.v18, false), + + /* capareg: deprecated */ + DEFINE_PROP_UINT64("capareg", SDHCIState, capareg, UINT64_MAX), + DEFINE_PROP_UINT64("maxcurr", SDHCIState, maxcurr, 0), DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_quirk, false), From patchwork Wed Jan 3 18:33:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855144 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="cO2MmR1r"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfkW2Mfhz9s7n for ; Thu, 4 Jan 2018 05:35:31 +1100 (AEDT) Received: from localhost ([::1]:60747 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsv-00030I-BT for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:35:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWns4-0002yT-E9 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWns3-0007Em-97 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:36 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:42053) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWns3-0007Ea-4E for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:35 -0500 Received: by mail-qt0-x244.google.com with SMTP id g9so3204695qth.9 for ; Wed, 03 Jan 2018 10:34:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0hT1BEnL8XLCi3SW6ogkQf+66lGx1S8jKzbkRrs+MNE=; b=cO2MmR1r2KLHlOcANHYGIXLqZWZFacnSmzN6THZrN0mc0PZUyNgxz9coWWEDrC0yq8 V4XOLmYpqyTLJKBndvddmSy+Xkf+DqXFeMgEXx2DSCd5efYIwl52bnsHuMzdo2RoD1pX kr3kJDT7CNH3orJqWjTaZdV7wT6vhp+qFnb+WguKDWCBz323Q482eqsxPdRjkYn/C153 jC9rbb24kF0NIDC99rHKnqKidnmm9wbDn4JsxYlZ8mVIlpfASIuapPqikYZqGkypU32F IfPZUZGzY+as4b9R1epBJTJSqbNqFWv9r2S7c3wJz03jTpoAr0ulmzi6dcEuUqGjWA3E s59Q== 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=0hT1BEnL8XLCi3SW6ogkQf+66lGx1S8jKzbkRrs+MNE=; b=rNgLbpveudEG0WAkj8yxIvL9tL1GY8dgc+MLlUyvRE4MT1FU9qFhbS9wLvOupaAZYt 3SomCrdP3UAEuQ1+LBAqXJIgXANf6FUQwAknR0m8thgw8J6Y5OWR/UUGChyFIaIaRE6v gd2LniqVqgaBJpoBsNEDgVZzMMRHvvNla3TinNsSJx/A8dsPVRlcKcbDAlzCYPRItutw Xm06kxjS9Fknu+D6tI2QPEryvxb3wI4WxexcT6xooyU+3DuBHrHrs0AmQd20CFwcp64u FoV5GmFHoHSmwGjz24YI7jfwtXnctUoUz7GvLHlB00CviRuGR9OHhXA0Q35MrSo+/pXF lMCg== X-Gm-Message-State: AKGB3mKdPyjblMRGvb+kdN41Ralo5DXLxWZJ4L69Ji56GhOCiTs3y2Rb 34tERI/h+6EfqIKEUweY8cU= X-Google-Smtp-Source: ACJfBouiTi0RAT7yiba2zctIOyBRUT/Ns9RX0MDiqNDn3JtgLoIUZ6sLrFZXAjQ4fJDoWYFoHxZ8DA== X-Received: by 10.200.4.7 with SMTP id v7mr2986025qtg.129.1515004474603; Wed, 03 Jan 2018 10:34:34 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:34 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:33:56 -0300 Message-Id: <20180103183418.23730-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 03/25] sdhci: add max-block-length capability (Spec v1) 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci-internal.h | 1 - include/hw/sd/sdhci.h | 1 + hw/sd/sdhci.c | 38 +++++++++++++------------------------- 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 6944fcaf00..0561e6eaf7 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -188,7 +188,6 @@ FIELD(SDHC_ACMD12ERRSTS, INDEX_ERR, 4, 1); #define SDHC_CAN_DO_ADMA2 0x00080000 #define SDHC_CAN_DO_ADMA1 0x00100000 #define SDHC_64_BIT_BUS_SUPPORT (1 << 28) -#define SDHC_CAPAB_BLOCKSIZE(x) (((x) >> 16) & 0x3) FIELD(SDHC_CAPAB, TOCLKFREQ, 0, 6); FIELD(SDHC_CAPAB, TOUNIT, 7, 1); FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 266030dc8d..2703da1d5a 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -103,6 +103,7 @@ typedef struct SDHCIState { bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ uint8_t spec_version; struct { + uint16_t max_blk_len; bool suspend; bool high_speed; bool sdma; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 5e08949b37..e192f1e653 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -46,9 +46,6 @@ #define SDHC_CAPAB_64BITBUS 0ul /* 64-bit System Bus Support */ #define SDHC_CAPAB_ADMA1 1ul /* ADMA1 support */ #define SDHC_CAPAB_ADMA2 1ul /* ADMA2 support */ -/* Maximum host controller R/W buffers size - * Possible values: 512, 1024, 2048 bytes */ -#define SDHC_CAPAB_MAXBLOCKLENGTH 512ul /* Maximum clock frequency for SDclock in MHz * value in range 10-63 MHz, 0 - not defined */ #define SDHC_CAPAB_BASECLKFREQ 52ul @@ -62,16 +59,6 @@ #error Capabilities features can have value 0 or 1 only! #endif -#if SDHC_CAPAB_MAXBLOCKLENGTH == 512 -#define MAX_BLOCK_LENGTH 0ul -#elif SDHC_CAPAB_MAXBLOCKLENGTH == 1024 -#define MAX_BLOCK_LENGTH 1ul -#elif SDHC_CAPAB_MAXBLOCKLENGTH == 2048 -#define MAX_BLOCK_LENGTH 2ul -#else -#error Max host controller block size can have value 512, 1024 or 2048 only! -#endif - #if (SDHC_CAPAB_BASECLKFREQ > 0 && SDHC_CAPAB_BASECLKFREQ < 10) || \ SDHC_CAPAB_BASECLKFREQ > 63 #error SDclock frequency can have value in range 0, 10-63 only! @@ -83,7 +70,7 @@ #define SDHC_CAPAB_REG_DEFAULT \ ((SDHC_CAPAB_64BITBUS << 28) | (SDHC_CAPAB_ADMA1 << 20) | \ - (SDHC_CAPAB_ADMA2 << 19) | (MAX_BLOCK_LENGTH << 16) | \ + (SDHC_CAPAB_ADMA2 << 19) | \ (SDHC_CAPAB_BASECLKFREQ << 8) | (SDHC_CAPAB_TOUNIT << 7) | \ (SDHC_CAPAB_TOCLKFREQ)) @@ -92,9 +79,17 @@ static void sdhci_init_capareg(SDHCIState *s, Error **errp) { uint64_t capareg = 0; + uint32_t val; switch (s->spec_version) { case 1: + val = ctz32(s->cap.max_blk_len >> 9); + if (val >= 0b11) { + error_setg(errp, "block size can be 512, 1024 or 2048 only"); + return; + } + capareg = FIELD_DP64(capareg, SDHC_CAPAB, MAXBLOCKLENGTH, val); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, HIGHSPEED, s->cap.high_speed); capareg = FIELD_DP64(capareg, SDHC_CAPAB, SDMA, s->cap.sdma); capareg = FIELD_DP64(capareg, SDHC_CAPAB, SUSPRESUME, s->cap.suspend); @@ -1175,17 +1170,7 @@ static const MemoryRegionOps sdhci_mmio_ops = { static inline unsigned int sdhci_get_fifolen(SDHCIState *s) { - switch (SDHC_CAPAB_BLOCKSIZE(s->capareg)) { - case 0: - return 512; - case 1: - return 1024; - case 2: - return 2048; - default: - hw_error("SDHC: unsupported value for maximum block size\n"); - return 0; - } + return 1 << (9 + FIELD_EX32(s->capareg, SDHC_CAPAB, MAXBLOCKLENGTH)); } static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) @@ -1319,6 +1304,9 @@ const VMStateDescription sdhci_vmstate = { static Property sdhci_properties[] = { DEFINE_PROP_UINT8("sd-spec-version", SDHCIState, spec_version, 1), + /* Maximum host controller R/W buffers size + * Possible values: 512, 1024, 2048 bytes */ + DEFINE_PROP_UINT16("max-block-length", SDHCIState, cap.max_blk_len, 512), /* DMA */ DEFINE_PROP_BOOL("sdma", SDHCIState, cap.sdma, true), /* Suspend/resume support */ From patchwork Wed Jan 3 18:33:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855172 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Lziv/cGe"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfsp2jm3z9s7c for ; Thu, 4 Jan 2018 05:41:50 +1100 (AEDT) Received: from localhost ([::1]:60811 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnz2-0000kr-Ay for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:41:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33737) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsA-00031d-Gc for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWns9-0007IF-3S for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:42 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:41604) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWns8-0007Hi-UW for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:41 -0500 Received: by mail-qk0-x242.google.com with SMTP id a8so2659948qkb.8 for ; Wed, 03 Jan 2018 10:34:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=K1s+W9NLczL8UgbQySfOuKpTKIJE8ko12RTqzHoQdtw=; b=Lziv/cGeBR10XVWz2AHpDPanw+45dBXpGW7Uh5tCLODv4oPbZBhgpw4b3h+CH+Cw+j 2Efag2nHeyduUV+dNtzAeyQYSskvK9P3F3HUgyS1P5kAEFRRxDTqVHK6FcYJhUdk/2p9 AztCcObXLl9b1RrMjggfu0EsKawmhxJDQWjBnb5DxSnz2TMoV5VF7GR30i04P39QgdOn A/ciACCtfr7ojP/PDuqmQkuAm4ERHR9MXFogapCsL6wzpVFcF5Yxzt5bv5PBXgAt9vjy txJH/XJ4MZQpjjMz1VJnsHlKKAgFhScwS5bi6SLeTR+DCpIkzI+9T8TbJ7Z30eSngwCH 4c+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=K1s+W9NLczL8UgbQySfOuKpTKIJE8ko12RTqzHoQdtw=; b=nqkU9FYL4MyiLJRsTCmmEPtZx1UkYSHga2644LEz17JvQ4sGcL8RODLxz2yT3+pFz5 UmZHZwE7ZnDJdF6/2Hg9ZSiWJM10k7kRDu7yQT3eCKeL+du7s6Ro6OYQb/MCR/F9K9+R eJ2E6Iy+m1oLYzVpeBDldiVTjSHB4JX6gUsTEhD0maCfsRYuazLS00vE1A7qbdw+Ieqv fQh55xq1YSMeTg4J9/xqmCvBL/lMay2gtdFs9wnWkGysKkgML0wFe4gAQMU4U68VbgMb /mzdPRildW8yA7VmBmwpVKeUSX8WK0RWmzAJinVhH+MaMk76w0nNFdBj8+Ib8mCfdQ7v G7ow== X-Gm-Message-State: AKGB3mKlkC726DiSSIPZdIIjU5NRwI1jVLttVQEy2ZLxEwXKdNIJw7O9 EYJhiO7BYQPtNOUYJmxivTw= X-Google-Smtp-Source: ACJfBovz8pr8rEf1RUhyMeo+0yqC+I6XmuXIbXP+iGjjz3Ic1dBy6xhYTXiSeaokbOS0pdpAvNfqBA== X-Received: by 10.55.77.144 with SMTP id a138mr2998005qkb.244.1515004480346; Wed, 03 Jan 2018 10:34:40 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:39 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , =?utf-8?q?Gr=C3=A9gory_Estrade?= Date: Wed, 3 Jan 2018 15:33:58 -0300 Message-Id: <20180103183418.23730-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 05/25] sdhci: add DMA and 64-bit capabilities (Spec v2) 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci-internal.h | 14 +++++++------- include/hw/sd/sdhci.h | 4 ++++ hw/sd/sdhci.c | 40 ++++++++++++++++++---------------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 0561e6eaf7..affbe4015c 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -89,12 +89,12 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); FIELD(SDHC_HOSTCTL, LED_CTRL, 0, 1); FIELD(SDHC_HOSTCTL, DATATRANSFERWIDTH, 1, 1); /* SD mode only */ FIELD(SDHC_HOSTCTL, HIGH_SPEED, 2, 1); -#define SDHC_CTRL_DMA_CHECK_MASK 0x18 +FIELD(SDHC_HOSTCTL, DMA, 3, 2); #define SDHC_CTRL_SDMA 0x00 -#define SDHC_CTRL_ADMA1_32 0x08 +#define SDHC_CTRL_ADMA1_32 0x08 /* NOT ALLOWED since v2 */ #define SDHC_CTRL_ADMA2_32 0x10 -#define SDHC_CTRL_ADMA2_64 0x18 -#define SDHC_DMA_TYPE(x) ((x) & SDHC_CTRL_DMA_CHECK_MASK) +#define SDHC_CTRL_ADMA2_64 0x18 /* only v1 & v2 (v3 optional) */ +#define SDHC_DMA_TYPE(x) ((x) & R_SDHC_HOSTCTL_DMA_MASK) /* R/W Power Control Register 0x0 */ #define SDHC_PWRCON 0x29 @@ -185,19 +185,19 @@ FIELD(SDHC_ACMD12ERRSTS, INDEX_ERR, 4, 1); /* HWInit Capabilities Register 0x05E80080 */ #define SDHC_CAPAB 0x40 -#define SDHC_CAN_DO_ADMA2 0x00080000 -#define SDHC_CAN_DO_ADMA1 0x00100000 -#define SDHC_64_BIT_BUS_SUPPORT (1 << 28) FIELD(SDHC_CAPAB, TOCLKFREQ, 0, 6); FIELD(SDHC_CAPAB, TOUNIT, 7, 1); FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); FIELD(SDHC_CAPAB, MAXBLOCKLENGTH, 16, 2); +FIELD(SDHC_CAPAB, ADMA2, 19, 1); /* since v2 */ +FIELD(SDHC_CAPAB, ADMA1, 20, 1); /* v1 only? */ FIELD(SDHC_CAPAB, HIGHSPEED, 21, 1); FIELD(SDHC_CAPAB, SDMA, 22, 1); FIELD(SDHC_CAPAB, SUSPRESUME, 23, 1); FIELD(SDHC_CAPAB, V33, 24, 1); FIELD(SDHC_CAPAB, V30, 25, 1); FIELD(SDHC_CAPAB, V18, 26, 1); +FIELD(SDHC_CAPAB, BUS64BIT, 28, 1); /* since v2 */ /* HWInit Maximum Current Capabilities Register 0x0 */ #define SDHC_MAXCURR 0x48 diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index c1602becd2..4a9c3e9175 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -103,6 +103,7 @@ typedef struct SDHCIState { bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ uint8_t spec_version; struct { + /* v1 */ uint8_t timeout_clk_freq, base_clk_freq_mhz; bool timeout_clk_in_mhz; uint16_t max_blk_len; @@ -110,6 +111,9 @@ typedef struct SDHCIState { bool high_speed; bool sdma; bool v33, v30, v18; + /* v2 */ + bool adma1, adma2; + bool bus64; } cap; } SDHCIState; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 737d6c09a2..f8423f969e 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -38,24 +38,6 @@ #define TYPE_SDHCI_BUS "sdhci-bus" #define SDHCI_BUS(obj) OBJECT_CHECK(SDBus, (obj), TYPE_SDHCI_BUS) -/* Default SD/MMC host controller features information, which will be - * presented in CAPABILITIES register of generic SD host controller at reset. - * If not stated otherwise: - * 0 - not supported, 1 - supported, other - prohibited. - */ -#define SDHC_CAPAB_64BITBUS 0ul /* 64-bit System Bus Support */ -#define SDHC_CAPAB_ADMA1 1ul /* ADMA1 support */ -#define SDHC_CAPAB_ADMA2 1ul /* ADMA2 support */ - -/* Now check all parameters and calculate CAPABILITIES REGISTER value */ -#if SDHC_CAPAB_64BITBUS > 1 || SDHC_CAPAB_ADMA2 > 1 || SDHC_CAPAB_ADMA1 > 1 -#error Capabilities features can have value 0 or 1 only! -#endif - -#define SDHC_CAPAB_REG_DEFAULT \ - ((SDHC_CAPAB_64BITBUS << 28) | (SDHC_CAPAB_ADMA1 << 20) | \ - (SDHC_CAPAB_ADMA2 << 19)) - #define MASKED_WRITE(reg, mask, val) (reg = (reg & (mask)) | (val)) static void sdhci_check_capab_freq_range(SDHCIState *s, const char *desc, @@ -71,12 +53,22 @@ static void sdhci_check_capab_freq_range(SDHCIState *s, const char *desc, } } +/* Default SD/MMC host controller features information, which will be + * presented in CAPABILITIES register of generic SD host controller at reset. */ static void sdhci_init_capareg(SDHCIState *s, Error **errp) { uint64_t capareg = 0; uint32_t val; switch (s->spec_version) { + /* fallback */ + case 2: + capareg = FIELD_DP64(capareg, SDHC_CAPAB, ADMA1, s->cap.adma1); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, ADMA2, s->cap.adma2); + /* 64-bit System Bus Support */ + capareg = FIELD_DP64(capareg, SDHC_CAPAB, BUS64BIT, s->cap.bus64); + + /* fallback */ case 1: sdhci_check_capab_freq_range(s, "Timeout", s->cap.timeout_clk_freq, errp); @@ -794,7 +786,7 @@ static void sdhci_data_transfer(void *opaque) break; case SDHC_CTRL_ADMA1_32: - if (!(s->capareg & SDHC_CAN_DO_ADMA1)) { + if (!(s->capareg & R_SDHC_CAPAB_ADMA1_MASK)) { trace_sdhci_error("ADMA1 not supported"); break; } @@ -802,7 +794,7 @@ static void sdhci_data_transfer(void *opaque) sdhci_do_adma(s); break; case SDHC_CTRL_ADMA2_32: - if (!(s->capareg & SDHC_CAN_DO_ADMA2)) { + if (!(s->capareg & R_SDHC_CAPAB_ADMA2_MASK)) { trace_sdhci_error("ADMA2 not supported"); break; } @@ -810,8 +802,8 @@ static void sdhci_data_transfer(void *opaque) sdhci_do_adma(s); break; case SDHC_CTRL_ADMA2_64: - if (!(s->capareg & SDHC_CAN_DO_ADMA2) || - !(s->capareg & SDHC_64_BIT_BUS_SUPPORT)) { + if (!(s->capareg & R_SDHC_CAPAB_ADMA2_MASK) || + !(s->capareg & R_SDHC_CAPAB_BUS64BIT_MASK)) { trace_sdhci_error("64 bit ADMA not supported"); break; } @@ -1321,6 +1313,8 @@ static Property sdhci_properties[] = { DEFINE_PROP_UINT16("max-block-length", SDHCIState, cap.max_blk_len, 512), /* DMA */ DEFINE_PROP_BOOL("sdma", SDHCIState, cap.sdma, true), + DEFINE_PROP_BOOL("adma1", SDHCIState, cap.adma1, false), + DEFINE_PROP_BOOL("adma2", SDHCIState, cap.adma2, true), /* Suspend/resume support */ DEFINE_PROP_BOOL("suspend", SDHCIState, cap.suspend, false), /* High speed support */ @@ -1330,6 +1324,8 @@ static Property sdhci_properties[] = { DEFINE_PROP_BOOL("3v0", SDHCIState, cap.v30, false), DEFINE_PROP_BOOL("1v8", SDHCIState, cap.v18, false), + DEFINE_PROP_BOOL("64bit", SDHCIState, cap.bus64, false), + /* capareg: deprecated */ DEFINE_PROP_UINT64("capareg", SDHCIState, capareg, UINT64_MAX), From patchwork Wed Jan 3 18:33:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855170 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Cg8iNsn0"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfrt10Rfz9s7c for ; Thu, 4 Jan 2018 05:41:02 +1100 (AEDT) Received: from localhost ([::1]:60802 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnyG-0008M1-5S for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:41:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33764) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsC-00033E-8D for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsB-0007Jy-JH for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:44 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:33495) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsB-0007Jj-EU for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:43 -0500 Received: by mail-qt0-x243.google.com with SMTP id e2so3237962qti.0 for ; Wed, 03 Jan 2018 10:34: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=hJkG27sAIRbxpQit2L3hK1en9EAQRq6fLh9IPg61F+s=; b=Cg8iNsn0Mpg92EQ3ToD5NIqglb8dWhG6MsND0xowPDmnqe8tHrZjzPxt5bM4cLCkEQ sl/NIPZ+Y7463+KHbPFHPd06u0xix7s+euY2mOJc3zQSXTfVujNgtiNRv4TW+EPEmQPj pa0TjS6FNgCjWqFg5MiKWi95/dXk/XHXyBL2elQUAg4VhjHeD78N0g1ZEcrmNFaavhQr wUkuhTyBeowd79dPT3vPn/MkhHqYalrcSwV4mhomrezEMPN1OxrsmVZ/JMcCID55Pg8M NoEPR/ew9O1t+/rft5rDQCVfro3WO0BGinlgRTKimcN5PM4nDqyV71Ucx+jWNPt2xZg3 Xecg== 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=hJkG27sAIRbxpQit2L3hK1en9EAQRq6fLh9IPg61F+s=; b=DU12iGJhOerrFS9V7JVIzpVfqzgrv6AfZn4HLubCcXHJU/DBIhubuNRvioCOx0RVsU yDzxO9wiHQdCeqJBMdKua4XCYAnaK/KRFAfBgamfOAvNGy/8/jfM4jWkWkosKBuOgaex qYmsHLHWSMFfCZZzkG8MO12BKIyvtDfVaHavRJqiopnK6zu3427nCOuoZcTqAuDAfSgQ TeSmIbFYQOvhcyMxBP+uB6lsafyjPy1gYHP6g6cqtlHxUTCIZ+MIagIQTgzQpnmo1iH2 AvtDKsb7sdLdy/hj44lUgwEZpj/n472XckFno60ijdqIXYgccb883KaNoUFdlG7DAoo9 z1kg== X-Gm-Message-State: AKGB3mK94Xq3ktnqnqQu3OAL45iypqslkxqH29HWsRJwn+2/1NmcXLRd GhqtMJ9hU+cc5yuTkgphFYU= X-Google-Smtp-Source: ACJfBos3SGBcozyeXsvGWj9YoaAJVuegA8B+fwEB+DqNbsutpg8X48Od/jpIY15JTx1l5tTqLih6CQ== X-Received: by 10.237.37.47 with SMTP id v44mr3092397qtc.55.1515004482899; Wed, 03 Jan 2018 10:34:42 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:42 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:33:59 -0300 Message-Id: <20180103183418.23730-7-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 06/25] sdhci: default to Spec v2 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index f8423f969e..8692798021 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1299,7 +1299,7 @@ const VMStateDescription sdhci_vmstate = { /* Capabilities registers provide information on supported features of this * specific host controller implementation */ static Property sdhci_properties[] = { - DEFINE_PROP_UINT8("sd-spec-version", SDHCIState, spec_version, 1), + DEFINE_PROP_UINT8("sd-spec-version", SDHCIState, spec_version, 2), /* Timeout clock frequency 1-63, 0 - not defined */ DEFINE_PROP_UINT8("timeout-freq", SDHCIState, cap.timeout_clk_freq, 0), From patchwork Wed Jan 3 18:34:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855149 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qdgTfwYn"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfpQ5szMz9s82 for ; Thu, 4 Jan 2018 05:38:54 +1100 (AEDT) Received: from localhost ([::1]:60787 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnwC-0006DY-TE for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:38:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33793) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsF-00036T-78 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsE-0007LU-Bz for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:47 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:33494) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsE-0007LH-7V for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:46 -0500 Received: by mail-qt0-x241.google.com with SMTP id e2so3238144qti.0 for ; Wed, 03 Jan 2018 10:34:46 -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=uW/1lW/hb/+BmWD9K07HPCkzJkScdTNhFZezi27ScS4=; b=qdgTfwYnrIyTNghO7rXzu1IKpvy59XJT73yAQnq9ViD/Nj8AT3tIDqEbDUw/PQkJLw uSExb2BwUVf15kr9gkQNga3KcN7Z+pubCsZumE2EfI+SLX2Zi5jvZuW+yc7L9pWSJvTc fx0LOjbmSDrzW4dImasni8ZHXoQfVHX4C2F8q4YDkQANdsjnT8JVtjQ7ZLfUNyhOam1l dUnoyIM1ef6zH2AJ9lGXVgC2XnC2Q6x/TibgIvyN2UiOldMGN1yNNxo60NHpcvkXf3oD YtpfbC7ncdkxzSzou3Ybu9/0ZXvXDUYBr+7O4c1L2WhMXzH9UcebPqk0MIsqCYx9/PLE J1Yw== 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=uW/1lW/hb/+BmWD9K07HPCkzJkScdTNhFZezi27ScS4=; b=QQWyvB2LhqssN1HNYhOCWj9wDHOyQrsxKaw8EQ1xuQx8icdzo0njXfnIqgu1O5bBAS 5V3pl3pkTAMFoaMEvuRwFqhoTdMQZSwZTcOPcKzOfavPFWm2D0qBYTZMrbt9R/DNL5dh pwmz6bh+PYnZ4HlZpxa8ARwjJijB3UsF+QIYhizkbsy48aL9jjGHcMUWqP/V969rNmLZ lWMkE2JXNsTKTgRqvwx9MqW18U/PbWBrD8v/8nv8vFECbMEQkDxpAoMbsacs7LAImqV4 +AcFqFW9t9kqavesI8sWutYVT7JLe1CKd0LE4FpjYLkhFrW4xQ9tgxTJqOzbQemzZLir b5sQ== X-Gm-Message-State: AKGB3mKsB5SuEsP+kltagV3POkFKZSFFMVdy0UKRM0tGxdpGYIu3bkUW lkhAeMby+hwfilLEAfkORCs= X-Google-Smtp-Source: ACJfBovStXXEbeNPToinWiRlTPNP3LRfaTA3OKveDjjwnEJI0p3X19JcWzn0XTmAJHbJ+h5DI/k3RA== X-Received: by 10.200.48.34 with SMTP id f31mr3046693qte.40.1515004485766; Wed, 03 Jan 2018 10:34:45 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:44 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:00 -0300 Message-Id: <20180103183418.23730-8-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 07/25] sdhci: add a 'dma' shortcut property 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" disabling it disables all DMAs at once. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/sd/sdhci.h | 1 + hw/sd/sdhci.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 4a9c3e9175..bac37f9e11 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -101,6 +101,7 @@ typedef struct SDHCIState { bool pending_insert_state; /* Configurable properties */ bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ + bool dma; /* shortcut for sdma + adma* */ uint8_t spec_version; struct { /* v1 */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 8692798021..cc1e28fa61 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1178,6 +1178,10 @@ static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) } s->version = (SDHC_HCVER_VENDOR << 8) | (s->spec_version - 1); + if (!s->dma) { + s->cap.sdma = s->cap.adma1 = s->cap.adma2 = false; + } + if (s->capareg == UINT64_MAX) { sdhci_init_capareg(s, errp); } @@ -1312,6 +1316,7 @@ static Property sdhci_properties[] = { * Possible values: 512, 1024, 2048 bytes */ DEFINE_PROP_UINT16("max-block-length", SDHCIState, cap.max_blk_len, 512), /* DMA */ + DEFINE_PROP_BOOL("dma", SDHCIState, dma, true), /* shortcut */ DEFINE_PROP_BOOL("sdma", SDHCIState, cap.sdma, true), DEFINE_PROP_BOOL("adma1", SDHCIState, cap.adma1, false), DEFINE_PROP_BOOL("adma2", SDHCIState, cap.adma2, true), From patchwork Wed Jan 3 18:34:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855176 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MTJ2ka/G"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfwx1BBLz9s7c for ; Thu, 4 Jan 2018 05:44:33 +1100 (AEDT) Received: from localhost ([::1]:60834 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo1f-0003jP-6k for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:44:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33851) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsK-0003Bg-Pe for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsK-0007PD-2a for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:52 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:42482) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsJ-0007P9-UN for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:52 -0500 Received: by mail-qk0-x243.google.com with SMTP id d202so2654403qkc.9 for ; Wed, 03 Jan 2018 10:34:51 -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=Kwoab9xTy8zDxC0pz8lU16oolPUZ3Lqk8kWYWTCVa9A=; b=MTJ2ka/GWXt69RuRRkykINCMo0hrhofxdB6e18Ij6wy/icFw50roWWw3hdetYqONUE aAt/5NiNxoNUrEylKU6omTsZ+Fq33ClMywzLzaha2XlYABWcrtNH8kaxouy5N0IaDaLt GJE2OynLU1VJKqSKk4jGDIAPXiFacmSpNN4uMu7OSGYvfcfgJVSXLsg2j272Wd32NDo2 gWXDqwVYj7rZvwv36yB6g4Qc10ISVbt9o3XJBFveGmu0NMKqF/y0+VcH6FXXJh3LCrm9 IiE8L0/Qt0g9S8FtO2nmCOJXufh+dGbFR8vCX0l0eRWfLS88T2G7Cy5FAJIq5qwd6KRq ix+g== 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=Kwoab9xTy8zDxC0pz8lU16oolPUZ3Lqk8kWYWTCVa9A=; b=K0j3FQ7GEEHtUpPRSZaJqWh6BhaEyhJEIXrpERFtBh/krNzFlCus2skodt2PDCDDBs Z1b4bSwxVrkRo2DSXPhTGzdVxRnMcPoDJorj4pCn7xKlshF4InPzAusy6SpUT0VcLlBq 4WjEN6Lk2Btf3Lli8+Bhue8DKfTUt0LjLstx7YWqbFOYmu3zb/S9vBkbwf4bSh5N/9Tf By+7K76XI/hNGKFmbGhmvvutwEo6E2xnV0yItU6OW8d4UXKuKkC0v90r2RCnrlC/Fieq y3fX2qBm+zgMkJZPJr8LVKREj4pXbouzusx8Hht/E6Vzz7OcQgG/SWogZ5sKL5OeUyvY JZxQ== X-Gm-Message-State: AKGB3mL+s2cFq7J4/8JtaO9Zt/9F+KDftN2XaUsA3arAgPmPYCIRrLct 8jy0ZXuWDjEFzL5ODL1nUr4= X-Google-Smtp-Source: ACJfBour2krW8Ss3H9wbnKjb9u2gUiNI+0Y9yZea6PXfvSYhFucRLYIjZKRX2R/5FN+z5bCd0EISCA== X-Received: by 10.55.103.20 with SMTP id b20mr2918174qkc.224.1515004491491; Wed, 03 Jan 2018 10:34:51 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:50 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , =?utf-8?q?Gr=C3=A9gory_Estrade?= , Prasad J Pandit Date: Wed, 3 Jan 2018 15:34:02 -0300 Message-Id: <20180103183418.23730-10-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v4 09/25] sdhci: Fix 64-bit ADMA2 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: Sai Pavan Boddu , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?b?w6k=?= , qemu-devel@nongnu.org, Peter Crosthwaite Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Sai Pavan Boddu The 64-bit ADMA address is not converted to the cpu endianes correctly. This patch fixes the issue and uses a valid mask for the attribute data. Signed-off-by: Sai Pavan Boddu [AF: Re-write commit message] Reviewed-by: Alistair Francis Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 755bbbecd1..50b483cbf2 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -623,8 +623,8 @@ static void get_adma_description(SDHCIState *s, ADMADescr *dscr) dscr->length = le16_to_cpu(dscr->length); dma_memory_read(&s->dma_as, entry_addr + 4, (uint8_t *)(&dscr->addr), 8); - dscr->attr = le64_to_cpu(dscr->attr); - dscr->attr &= 0xfffffff8; + dscr->addr = le64_to_cpu(dscr->addr); + dscr->attr &= (uint8_t) ~0xC0; dscr->incr = 12; break; } From patchwork Wed Jan 3 18:34:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855146 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ql/k5R9v"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfmY3QFDz9s82 for ; Thu, 4 Jan 2018 05:37:17 +1100 (AEDT) Received: from localhost ([::1]:60775 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnud-0004jb-H7 for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:37:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsO-0003GF-3p for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsN-0007Qw-8i for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:34:56 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:37371) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsN-0007Qj-3t; Wed, 03 Jan 2018 13:34:55 -0500 Received: by mail-qt0-x243.google.com with SMTP id f2so3221999qtj.4; Wed, 03 Jan 2018 10:34:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KLSH73+PhrTDeU5qHRVEPzwUQ7axdsLgk+Caal09PE0=; b=ql/k5R9vD8iI3TzIwn5PLz8WAyOsZzOfeGwBNVrBDUMalHSPH4AmaxIHAD1uXimqUz kaSgyUd7brVksurb2vvPOlAnBMo/hGQezglb8jjpe4T2+0axy+By+VtM/FGxXbwUZGET kucsARcC3oiLIAARact2i1YtKhQXsa3QtICsfcEJy9sb8UBPrVDPWItaal2i3fdb/l/D ps9ODqmiex4fjBcIPHEVj8EVtQrW0B/ye+TraQx9VXBtK9Szp/kcMOlelnDRxWo90pBI /cOpwIhKJa4TvxjC1FtkKkvJYwHXt7WQFDt1MOQiZUS0TRn4NfolR2Xvibo4vtKDt+Yl hPSQ== 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=KLSH73+PhrTDeU5qHRVEPzwUQ7axdsLgk+Caal09PE0=; b=n8c0uqbL8j2ohB6Cud/M1NeucROlm3qhqoY6AwnkXVYnW+nZLfZrxIcwVjsMx/gH1l 3f6RtPHhDUJMhfg0ve/I7WM5k3LdM8EHGHqQ256nUG2MtRnEu1M+HdepCZxMChTwRduA oAOHpok2HUeFJ01bLfY9t8jEsN0vQlsGq6ik0gQv+LuhCALBveDIzyEr+bZOlSE9x2dG tpBN/phpv8H0nFFEzrJ4SLZJPKN7Lt2/dDZRk8+qGrM2+soqRl+CZMCCO7Nrdbv338/2 UqmLbfkqwM4T8HFj7g28aXUvKDKEpOm/mFx78qQcWBTrnZMLJngVm+AdEvS/wvsZVb23 qvRA== X-Gm-Message-State: AKGB3mLTUiD3sbm+HPMPI+pjUhD66OzaiKpivpBjHjWcri4f2jA85v8a gb/2xKDYXOlfhYQEIf6edNc= X-Google-Smtp-Source: ACJfBotaBqpMz0Zuv/isSqgl2kFwHJ0OG2A05UR9+vB+gwRNjjTlHg9NNSdj6JOWH9rKdH+mb4Hzfw== X-Received: by 10.237.48.193 with SMTP id 59mr3053463qtf.45.1515004494664; Wed, 03 Jan 2018 10:34:54 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:53 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Igor Mitsyanko , Krzysztof Kozlowski , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:03 -0300 Message-Id: <20180103183418.23730-11-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 10/25] hw/arm/exynos4210: implement SDHCI Spec v2 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: Peter Crosthwaite , qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/exynos4210.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c index e8e1d81e62..0e6acac784 100644 --- a/hw/arm/exynos4210.c +++ b/hw/arm/exynos4210.c @@ -75,7 +75,6 @@ #define EXYNOS4210_INT_COMBINER_BASE_ADDR 0x10448000 /* SD/MMC host controllers */ -#define EXYNOS4210_SDHCI_CAPABILITIES 0x05E80080 #define EXYNOS4210_SDHCI_BASE_ADDR 0x12510000 #define EXYNOS4210_SDHCI_ADDR(n) (EXYNOS4210_SDHCI_BASE_ADDR + \ 0x00010000 * (n)) @@ -377,8 +376,18 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem) BlockBackend *blk; DriveInfo *di; + /* Compatible with: + * - SD Host Controller Specification Version 2.0 + * - SDIO Specification Version 2.0 + * - MMC Specification Version 4.3 + * + * - SDMA + * - ADMA + */ dev = qdev_create(NULL, TYPE_SYSBUS_SDHCI); - qdev_prop_set_uint32(dev, "capareg", EXYNOS4210_SDHCI_CAPABILITIES); + qdev_prop_set_uint8(dev, "sd-spec-version", 2); + qdev_prop_set_bit(dev, "suspend", true); + qdev_prop_set_bit(dev, "1v8", true); qdev_init_nofail(dev); busdev = SYS_BUS_DEVICE(dev); From patchwork Wed Jan 3 18:34:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855169 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ntd5PpxN"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfqg1jnKz9s7c for ; Thu, 4 Jan 2018 05:39:59 +1100 (AEDT) Received: from localhost ([::1]:60792 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnxF-0007K3-9t for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:39:57 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsT-0003LL-5U for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsQ-0007S2-6s for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:01 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:36689) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsQ-0007Rv-2O; Wed, 03 Jan 2018 13:34:58 -0500 Received: by mail-qk0-x244.google.com with SMTP id g123so2660738qka.3; Wed, 03 Jan 2018 10:34:57 -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=mjN0Xl0EufeX2HUblzQO67mWn+xDOBIs3L51QY0wUGY=; b=Ntd5PpxNi49HPxh07DkychvVCh9xqS8AwZ2nflVX2QUkXQx6I5rvvLTQI0rf/VMOVn L8gbdFgmEocqohukhR98ow8bDmwhjY5wfHzJ8hYX6Qg+ryFkpFJ7uNC34tI6iM0+aEbo iVDkimq8WEzuCNHqLtohvprsFRJkEeKuE0YQgNlHw0G5cqY/eX44sGJuOt3BNZ+DV4rf mqJQoEEjiVFO0N2ltR9IW1Es/mJXxEPudAyV8IND8HFfFBzvjP0vyV5URXcWpC6qCzNn v9YR/JqWy01XDOo/6ZegNu2OUlbNWWQh+7RCLCV5LrBGSgLRGp+OLMSy93jDlL09nBAN XzlQ== 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=mjN0Xl0EufeX2HUblzQO67mWn+xDOBIs3L51QY0wUGY=; b=PvDpQ5ojPCKvgqcZFsQEuJSlvl1dGBkj69k1e//gevZtVxh+IBHc3fv2z2HmN8e3UM +eCV6xAWji8tPnxE23vEdqqy3v79eoRwEfJt1RjXAcausXBtcAfkpbInqXomZCUuRWQB dlK7ngT06gLe/k15a9aIBWroPwqrCPDdvuTkgP8qPDJNemSBTwETHlEyYHsqPRAbkxow Txxo4BkzNLUYTXn2aPo+T618ik5XCcDXEheJuOs+EZGMRJOEUcuR7UPYXc5/kBq07P56 XEdsl3sdVI3SpvehW4NaDKDIlXFPloma+Rm0bobGd2dFiZ/MIKcacgNzPTjLnSSE0A2o 2qHQ== X-Gm-Message-State: AKGB3mLiRB5+kTHx6lua+koHsrDZ3bRMUch9eRCRHwu3nSjYbdvwL7ou rfmcAYc7mw4cTuP1Nv9+aBY= X-Google-Smtp-Source: ACJfBovDB2Ys/pymCXAmOmCLSjD/VIrimVSi4U34+I95FO63NbcKs63YO745MUHkUPcfJDi4EYScGw== X-Received: by 10.55.44.66 with SMTP id s63mr2992644qkh.335.1515004497570; Wed, 03 Jan 2018 10:34:57 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:57 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:04 -0300 Message-Id: <20180103183418.23730-12-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 11/25] hw/arm/xilinx_zynq: implement SDHCI Spec v2 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" , Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , "open list:Xilinx Zynq" , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/xilinx_zynq.c | 64 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 1836a4ed45..9a106db7b7 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -165,10 +165,8 @@ static void zynq_init(MachineState *machine) MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ext_ram = g_new(MemoryRegion, 1); MemoryRegion *ocm_ram = g_new(MemoryRegion, 1); - DeviceState *dev, *carddev; + DeviceState *dev; SysBusDevice *busdev; - DriveInfo *di; - BlockBackend *blk; qemu_irq pic[64]; int n; @@ -247,27 +245,45 @@ static void zynq_init(MachineState *machine) gem_init(&nd_table[0], 0xE000B000, pic[54-IRQ_OFFSET]); gem_init(&nd_table[1], 0xE000C000, pic[77-IRQ_OFFSET]); - dev = qdev_create(NULL, TYPE_SYSBUS_SDHCI); - qdev_init_nofail(dev); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0xE0100000); - sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[56-IRQ_OFFSET]); - - di = drive_get_next(IF_SD); - blk = di ? blk_by_legacy_dinfo(di) : NULL; - carddev = qdev_create(qdev_get_child_bus(dev, "sd-bus"), TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); - object_property_set_bool(OBJECT(carddev), true, "realized", &error_fatal); - - dev = qdev_create(NULL, TYPE_SYSBUS_SDHCI); - qdev_init_nofail(dev); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0xE0101000); - sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[79-IRQ_OFFSET]); - - di = drive_get_next(IF_SD); - blk = di ? blk_by_legacy_dinfo(di) : NULL; - carddev = qdev_create(qdev_get_child_bus(dev, "sd-bus"), TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); - object_property_set_bool(OBJECT(carddev), true, "realized", &error_fatal); + for (n = 0; n < 2; n++) { + int hci_irq = n ? 79 : 56; + hwaddr hci_addr = n ? 0xE0101000 : 0xE0100000; + DriveInfo *di; + BlockBackend *blk; + DeviceState *carddev; + + /* Compatible with: + * - SD Host Controller Specification Version 2.0 Part A2 + * - SDIO Specification Version 2.0 + * - MMC Specification Version 3.31 + * + * - SDMA (single operation DMA) + * - ADMA1 (4 KB boundary limited DMA) + * - ADMA2 + * + * - up to seven functions in SD1, SD4, but does not support SPI mode + * - SD high-speed (SDHS) card + * - SD High Capacity (SDHC) card + * + * - Low-speed, 1 KHz to 400 KHz + * - Full-speed, 1 MHz to 50 MHz (25 MB/sec) + */ + dev = qdev_create(NULL, TYPE_SYSBUS_SDHCI); + qdev_prop_set_uint8(dev, "sd-spec-version", 2); + qdev_prop_set_bit(dev, "adma1", true); + qdev_prop_set_bit(dev, "high-speed", true); + qdev_prop_set_uint16(dev, "max-block-length", 1024); + qdev_init_nofail(dev); + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, hci_addr); + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[hci_irq - IRQ_OFFSET]); + + di = drive_get_next(IF_SD); + blk = di ? blk_by_legacy_dinfo(di) : NULL; + carddev = qdev_create(qdev_get_child_bus(dev, "sd-bus"), TYPE_SD_CARD); + qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + object_property_set_bool(OBJECT(carddev), true, "realized", + &error_fatal); + } dev = qdev_create(NULL, TYPE_ZYNQ_XADC); qdev_init_nofail(dev); From patchwork Wed Jan 3 18:34:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855174 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="vaZCHVqN"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfvy1Dxyz9s7c for ; Thu, 4 Jan 2018 05:43:42 +1100 (AEDT) Received: from localhost ([::1]:60823 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo0q-0002jY-6f for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:43:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33979) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsX-0003PO-95 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsT-0007UJ-50 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:05 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:37506) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsT-0007UD-1A for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:01 -0500 Received: by mail-qk0-x242.google.com with SMTP id p13so2661318qke.4 for ; Wed, 03 Jan 2018 10:35:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8yl+SMjJUpUULa//GrdwQNatM5gm30ueTjuWPy9hULw=; b=vaZCHVqN0JFC4bpHJOeFptcpxHJnkFAd45a4tETSTxTfKgaRwva/pCMMuKA8avbAGz DZhZv2aupXiQ6aUqubguvTY23BkVYcM8dyCFnALQZhj0jvMDmBA8NAuwnYV/BMQm/54K dy+rCApbj21GMS3S7Dfr9RfPwEIXxtP+UaxpTeemge94pyjRa9/3bVglJZtXRYKm5Qt/ itBz2Uhhyqobpa2bFgHpOjDvQTCClTuLimGw7/4ZpC+PbTY4sfIF4iQvHU7MafzN9225 EpRTpsfI+MZMuB4upY/XJSmclBlKk2+Drltk4qJcI5yo5iT+hexENfBledCpzEOCZTS6 W8kQ== 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=8yl+SMjJUpUULa//GrdwQNatM5gm30ueTjuWPy9hULw=; b=hJs/vuuuBaoZ9uKJZibLJvHLFLRHNuEZE056iQNxFm6OwA/N2dg8lD70gVeY4HvKBe LOK1jIHyuSp6RizrvOvQimVBYclymAQ5fawBCwAsywfkKj1BJgcpL21Ad/mdMIXSD5CW 2VGi8sVarVlG7hn3PMIQ+E/ytpwaDUfhDpD8LszAHqLjSmXWgpSIY1+4d1/wxF8vsma8 xKhmy1JGYIMIQ0ADJXQeCHiuVG4S3vKOyjLXZX5XBaujgj6Or0GKD2VJFBbX6/XAlgeX 7Ij9u53ir8rrzh2xVqrLBcIUvxTm1W8kYM7YfoILM359HukDEewDfnXXdA1thvutOPGs FHCQ== X-Gm-Message-State: AKGB3mIXx2RMqUJoWEbFNcH6E8zEVJYyv0n++jehWwjxxHln5G/GQ4og sgzJPb3MNDbcmRxAmx+6tzg= X-Google-Smtp-Source: ACJfBotEn23fGyDScHgVI4u3eDSVhxdx3oy9uuenqj8eSP4sBp15GltSFrfyCyyXVqTYyxGKbe4u6g== X-Received: by 10.233.220.198 with SMTP id q189mr2978361qkf.109.1515004500522; Wed, 03 Jan 2018 10:35:00 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.34.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:34:59 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Igor Mitsyanko , Krzysztof Kozlowski , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:05 -0300 Message-Id: <20180103183418.23730-13-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 12/25] sdhci: add qtest to check the SD Spec version 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" with check_specs_version() Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/Makefile.include | 2 ++ 2 files changed, 84 insertions(+) create mode 100644 tests/sdhci-test.c diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c new file mode 100644 index 0000000000..492b332588 --- /dev/null +++ b/tests/sdhci-test.c @@ -0,0 +1,82 @@ +/* + * QTest testcase for SDHCI controllers + * + * Written by Philippe Mathieu-Daudé + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ +#include "qemu/osdep.h" +#include "libqtest.h" + +#define SDHC_HCVER 0xFE + +static const struct sdhci_t { + const char *arch; + const char *machine; + struct { + uintptr_t addr; + uint8_t version; + uint8_t baseclock; + struct { + bool sdma; + uint64_t reg; + } capab; + } sdhci; +} models[] = { + /* Exynos4210 */ + { "arm", "smdkc210", + {0x12510000, 2, 0, {1, 0x5e80080} } }, + + /* Zynq-7000 */ + { "arm", "xilinx-zynq-a9", + {0xe0100000, 2, 0, {1, 0x01790080} } }, +}; + +static uint32_t sdhci_readl(uintptr_t base, uint32_t reg_addr) +{ + QTestState *qtest = global_qtest; + + return qtest_readl(qtest, base + reg_addr); +} + +static void check_specs_version(uintptr_t addr, uint8_t version) +{ + uint32_t v; + + v = sdhci_readl(addr, SDHC_HCVER); + v &= 0xff; + v += 1; + g_assert_cmpuint(v, ==, version); +} + +static void test_machine(const void *data) +{ + const struct sdhci_t *test = data; + + global_qtest = qtest_startf("-machine %s -d unimp", test->machine); + + check_specs_version(test->sdhci.addr, test->sdhci.version); + + qtest_quit(global_qtest); +} + +int main(int argc, char *argv[]) +{ + const char *arch = qtest_get_arch(); + char *name; + int i; + + g_test_init(&argc, &argv, NULL); + + for (i = 0; i < ARRAY_SIZE(models); i++) { + if (strcmp(arch, models[i].arch)) { + continue; + } + name = g_strdup_printf("sdhci/%s", models[i].machine); + qtest_add_data_func(name, &models[i], test_machine); + g_free(name); + } + + return g_test_run(); +} diff --git a/tests/Makefile.include b/tests/Makefile.include index c002352134..af7f324e07 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -355,6 +355,7 @@ check-qtest-arm-y += tests/virtio-blk-test$(EXESUF) gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF) gcov-files-arm-y += hw/timer/arm_mptimer.c +check-qtest-arm-y += tests/sdhci-test$(EXESUF) check-qtest-aarch64-y = tests/numa-test$(EXESUF) @@ -609,6 +610,7 @@ tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(tes tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y) tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y) tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y) +tests/sdhci-test$(EXESUF): tests/sdhci-test.o tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \ hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\ From patchwork Wed Jan 3 18:34:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855179 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QdrVx+t7"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg0J54Fjz9s7g for ; Thu, 4 Jan 2018 05:47:28 +1100 (AEDT) Received: from localhost ([::1]:60857 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo4U-0007UQ-Pe for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:47:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33975) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsX-0003PC-4V for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsW-0007Yr-0N for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:05 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:34313) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsV-0007YD-SV for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:03 -0500 Received: by mail-qt0-x241.google.com with SMTP id 33so3234461qtv.1 for ; Wed, 03 Jan 2018 10:35:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9tBdjDJXOGzE0/3bDjUOVnPkWjcLqrGqZm6bRedvMmU=; b=QdrVx+t7+mYYP7jOjnGq4b0d4yLEcQO//vX+nJH6ef2A/e0CNHHr77ZC8RMMkALK6L 4ArLtpKHsd5DGWleD2Juxlt5WqgjYDRxpCwbjp1rwLZH0vsLVCTCUKx4zdezWHm7mqks x23goilcnPoMOoTEn/4JR06Vt+RHRWkJlY4c4n+3dsjyOzZjPnr2XX7AkivNErDu+fcq 1zL12lEzebB2rCeEtHSuyxolpKYcmWv9HLRSZJbiaYvRdRbSfSRI2Rgvli8WbIrQGPT8 sJllFpMPBnUemfaMNDgLpgEMmJswLgwvBKhLQf24IYRWxBq4Ppqmuk6VjY9GQ6/GgogB U/HQ== 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=9tBdjDJXOGzE0/3bDjUOVnPkWjcLqrGqZm6bRedvMmU=; b=re2wdfQOK2TAcbPCq+FNdXHK9XhQ1qgghVFgj42aFLOj853iOgzrX5PRsH+HoBF4d3 M8YfPvtXuUY3dGFxPuDkHpmHrQJf/WauLzu/c6QjO4o4JKiOiY8w+VfV8ms69jQYb+dY OOrPTU1VommHXZeR7S1YOWqQqCNSKvpzHKVFMLwZP6EALOUlQH3EYxo6pZL9CztTvpVk EwUciIk/WzT4kAY3vbJmyGwo7TUTHFHdDcUZ2rusgk8jvs4CQBx9cB9MTV1c2slOT/0d d69vSyYPPYiaS4LBZRvFRjQQcdtom2RpiLa6C8vx7sH4iL7m9hdAhb8o0LOqxbt/LOc0 0n2g== X-Gm-Message-State: AKGB3mKkMweodWNFUYydNhqQGlUvs+8+sQ9Con39VsPew071jezmQ/CS f7km1wDnuA4hBCHcz9PYvWs= X-Google-Smtp-Source: ACJfBotAwhy4hUNSSRDRQ/L1WtD3OM5o5BCjNI8BMiif7hXv6hBNi2vFVTaE6gi1ooVHgCY36AxaLg== X-Received: by 10.200.36.105 with SMTP id d38mr2990653qtd.180.1515004503400; Wed, 03 Jan 2018 10:35:03 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:02 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Igor Mitsyanko , Krzysztof Kozlowski , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:06 -0300 Message-Id: <20180103183418.23730-14-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 13/25] sdhci: check Spec v2 capabilities qtest 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" with check_capab_capareg() Signed-off-by: Philippe Mathieu-Daudé --- tests/sdhci-test.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 492b332588..200d7bcee2 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -9,6 +9,7 @@ #include "qemu/osdep.h" #include "libqtest.h" +#define SDHC_CAPAB 0x40 #define SDHC_HCVER 0xFE static const struct sdhci_t { @@ -40,6 +41,13 @@ static uint32_t sdhci_readl(uintptr_t base, uint32_t reg_addr) return qtest_readl(qtest, base + reg_addr); } +static uint64_t sdhci_readq(uintptr_t base, uint32_t reg_addr) +{ + QTestState *qtest = global_qtest; + + return qtest_readq(qtest, base + reg_addr); +} + static void check_specs_version(uintptr_t addr, uint8_t version) { uint32_t v; @@ -50,12 +58,21 @@ static void check_specs_version(uintptr_t addr, uint8_t version) g_assert_cmpuint(v, ==, version); } +static void check_capab_capareg(uintptr_t addr, uint64_t expected_capab) +{ + uint64_t capab; + + capab = sdhci_readq(addr, SDHC_CAPAB); + g_assert_cmphex(capab, ==, expected_capab); +} + static void test_machine(const void *data) { const struct sdhci_t *test = data; global_qtest = qtest_startf("-machine %s -d unimp", test->machine); + check_capab_capareg(test->sdhci.addr, test->sdhci.capab.reg); check_specs_version(test->sdhci.addr, test->sdhci.version); qtest_quit(global_qtest); From patchwork Wed Jan 3 18:34:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855178 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="IgPi3uVD"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfzC21QRz9s7g for ; Thu, 4 Jan 2018 05:46:31 +1100 (AEDT) Received: from localhost ([::1]:60848 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo3V-0005v5-Ux for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:46:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsd-0003XO-Qf for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsb-0007d7-Lo for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:11 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:33361) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsb-0007ce-Gu for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:09 -0500 Received: by mail-qk0-x241.google.com with SMTP id x7so2661206qkb.0 for ; Wed, 03 Jan 2018 10:35: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=t+8Tv2mN1XIX9gVczoswouj4+tmmL9FSKztaRKY9rno=; b=IgPi3uVDr5mmUXbwVsqinoVZDavezm9hcm7IYUw83T4s81CGfGBLEK3tIithpY5NJN KcSoszuDBY2X3NiLC7PNbAj38kUy8EYYy9wShU9ScQlAjJjmf11JrDbREOYOGPocPfNF MsG95xpemnwjZJurzOvEFwMHUhDNX4AH2NsD9NTHSeCuon5xfwT8hHlhfAQSdP7Iwz5a jyS3bG8eXDTtwGBWSu6JJH8qG6KBo/sr15zussgNGXMlwyDfYl+4bGSSEi42HLavF3/L L7CvihJiqlBr1Yr+ymDXSvB/ocYMp5evOKGVJI4ce3uwXia13k/EewWtxEjnXEInyW4H lWFw== 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=t+8Tv2mN1XIX9gVczoswouj4+tmmL9FSKztaRKY9rno=; b=g7YTQ6FwiEkh0ARs48aDVieiGo+o8xpzuDLn3m8GaK8HTNP4Vzw9YTbydHKZkI8rVT zqHEKmcZ7gUftJ8IQhawB3lSWELXu0lmoOJhirxqvjDVlBX+SN88K9/BB/w2tJAVoWrL Gc3BO+bpMNpuY7J9tsVqJXUlmod9jURtPdParmDWelP/J9sVIsmH/jupB+wUqkYmiWvG I/MckI7g/VJxsgESeixb+4Vg0YWmkUnBqYaB5exgMXf2s4ikQ74g88U0GHLbvJ3bsHZ3 1WuLb7V1A1osRDYkHENuOvhNLwSgZxTmH6wffemgIbL6hL4pCCv1jhEyUUoY2Ha3l4LQ ZruA== X-Gm-Message-State: AKGB3mLubZFl0wNqHFsD+GlsaqlBsIH3/2/Yv/0mxNRf1ZrzO35IPn0a db2usJ2zfx+2/yA0HCTPZhU= X-Google-Smtp-Source: ACJfBou7wkF36qr1X5UQzE2+QQ/UIEr5BronLJhzloW2nJCLTu/kQyLTD+LX7uQ3/sBRijVizKcnjQ== X-Received: by 10.55.91.5 with SMTP id p5mr3041508qkb.293.1515004508954; Wed, 03 Jan 2018 10:35:08 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:08 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:08 -0300 Message-Id: <20180103183418.23730-16-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v4 15/25] sdhci: rename the hostctl1 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As per the Spec v3.00 Signed-off-by: Philippe Mathieu-Daudé --- include/hw/sd/sdhci.h | 2 +- hw/sd/sdhci.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 46e1e42fa1..c2da48c17c 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -65,7 +65,7 @@ typedef struct SDHCIState { /* Buffer Data Port Register - virtual access point to R and W buffers */ uint32_t prnsts; /* Present State Register */ /* 0x28 */ - uint8_t hostctl; /* Host Control Register */ + uint8_t hostctl1; /* Host Control Register */ uint8_t pwrcon; /* Power control Register */ uint8_t blkgap; /* Block Gap Control Register */ uint8_t wakcon; /* WakeUp Control Register */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 58c07bae80..2bd3c5a4b9 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -600,7 +600,7 @@ static void get_adma_description(SDHCIState *s, ADMADescr *dscr) uint32_t adma1 = 0; uint64_t adma2 = 0; hwaddr entry_addr = (hwaddr)s->admasysaddr; - switch (SDHC_DMA_TYPE(s->hostctl)) { + switch (SDHC_DMA_TYPE(s->hostctl1)) { case SDHC_CTRL_ADMA2_32: dma_memory_read(&s->dma_as, entry_addr, (uint8_t *)&adma2, sizeof(adma2)); @@ -789,7 +789,7 @@ static void sdhci_data_transfer(void *opaque) SDHCIState *s = (SDHCIState *)opaque; if (s->trnmod & SDHC_TRNS_DMA) { - switch (SDHC_DMA_TYPE(s->hostctl)) { + switch (SDHC_DMA_TYPE(s->hostctl1)) { case SDHC_CTRL_SDMA: if ((s->blkcnt == 1) || !(s->trnmod & SDHC_TRNS_MULTI)) { sdhci_sdma_transfer_single_block(s); @@ -898,7 +898,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset, unsigned size) ret = s->prnsts; break; case SDHC_HOSTCTL: - ret = s->hostctl | (s->pwrcon << 8) | (s->blkgap << 16) | + ret = s->hostctl1 | (s->pwrcon << 8) | (s->blkgap << 16) | (s->wakcon << 24); break; case SDHC_CLKCON: @@ -1016,7 +1016,7 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) MASKED_WRITE(s->sdmasysad, mask, value); /* Writing to last byte of sdmasysad might trigger transfer */ if (!(mask & 0xFF000000) && TRANSFERRING_DATA(s->prnsts) && s->blkcnt && - s->blksize && SDHC_DMA_TYPE(s->hostctl) == SDHC_CTRL_SDMA) { + s->blksize && SDHC_DMA_TYPE(s->hostctl1) == SDHC_CTRL_SDMA) { if (s->trnmod & SDHC_TRNS_MULTI) { sdhci_sdma_transfer_multi_blocks(s); } else { @@ -1068,14 +1068,14 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) if (!(mask & 0xFF0000)) { sdhci_blkgap_write(s, value >> 16); } - MASKED_WRITE(s->hostctl, mask, value); + MASKED_WRITE(s->hostctl1, mask, value); MASKED_WRITE(s->pwrcon, mask >> 8, value >> 8); MASKED_WRITE(s->wakcon, mask >> 24, value >> 24); if (!(s->prnsts & SDHC_CARD_PRESENT) || ((s->pwrcon >> 1) & 0x7) < 5 || !(s->capareg & (1 << (31 - ((s->pwrcon >> 1) & 0x7))))) { s->pwrcon &= ~SDHC_POWER_ON; } - qemu_set_irq(s->access_led, s->hostctl & 1); + qemu_set_irq(s->access_led, s->hostctl1 & 1); break; case SDHC_CLKCON: if (!(mask & 0xFF000000)) { @@ -1285,7 +1285,7 @@ const VMStateDescription sdhci_vmstate = { VMSTATE_UINT16(cmdreg, SDHCIState), VMSTATE_UINT32_ARRAY(rspreg, SDHCIState, 4), VMSTATE_UINT32(prnsts, SDHCIState), - VMSTATE_UINT8(hostctl, SDHCIState), + VMSTATE_UINT8(hostctl1, SDHCIState), VMSTATE_UINT8(pwrcon, SDHCIState), VMSTATE_UINT8(blkgap, SDHCIState), VMSTATE_UINT8(wakcon, SDHCIState), From patchwork Wed Jan 3 18:34:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855171 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hShnVngA"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfsY6MyNz9s7n for ; Thu, 4 Jan 2018 05:41:37 +1100 (AEDT) Received: from localhost ([::1]:60809 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnyp-0000TF-Tr for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:41:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34056) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsh-0003bJ-0d for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsg-0007j9-0v for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:15 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:47078) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsf-0007ha-F6; Wed, 03 Jan 2018 13:35:13 -0500 Received: by mail-qt0-x242.google.com with SMTP id r39so3193817qtr.13; Wed, 03 Jan 2018 10:35:13 -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=y7leIEOif2Jddyf8ZwrzdSeJmqMALN4aBTDFz2uxsAs=; b=hShnVngAse2txfKxzy3vKXGwrDzDYr05Qb8PnrKZ0k79oUgdphrEuGHVaXcohPxADv 6PyMSpYFxwof1NU1iusrPy4PBPoUgqKyjY4lyUBEOS6eWdyNFxD4exZg7mWJzfbmZfK/ TYyS4bsvg6BgzjS2cRKye+MzpSGrfva1XifXZ0E13FJP3qNC6exvHKKS98Eq1eJ7OtSt 1hf7jsZXcDruxjfiNg7aByQjjp0Ciil8Xh64/b3/K3qkJgDHyMDX197F2EDjOR8kNjIs HoL2mfwqTEe6kslqcIH+QtNLY+yRBFptFUhT2hQqaWW2efrHb/0QotCW+bQybNB8D8Dw 85cA== 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=y7leIEOif2Jddyf8ZwrzdSeJmqMALN4aBTDFz2uxsAs=; b=qy1C0VRRU8RL2prH4JpAoBZP/pzyXP15RHU4KJlilEVMRbUykbLTlwMPc2r67QyqWq uYd2sI06/KkV/GyLcoAQflYghSJ0vYTS+XJsrJGPcKQYSHSeO/Ga6mzxmn2uI/DoD4Q7 xLNNQcFwPI1Qv5+vDpGuE13FhP+xHKWAFJ9fW/O3qhqjLK9OiqZtRQMmr/zkDTfp6K6Z tPykkUXeH4zkkY+Gv8ggUIanBrI2Lk55FQjhefemxSP1LLg7hxyhpIHm2iTKljUdTCdz A9JQdHlmR8kWdJ2kOPNIyQ8oWUEj6vebNJDuTqQsAMlBFuD91mO/etZvR9af+teIWHNh nivg== X-Gm-Message-State: AKGB3mLvqpHURNShc9Nu+l6eAwXVXwvR5dLchw/JycEcFazAwdjA5oei U/bolSBxj80Ba9jVG4LyjeRayyzb X-Google-Smtp-Source: ACJfBos3EaTve5YANqqxXqvZ3FPWJmqWPA/5kay05zhqrVlH1Nvw4hlDE1UE4hLL5PZ/PU1tx1WHsg== X-Received: by 10.237.37.162 with SMTP id x31mr3044425qtc.58.1515004512932; Wed, 03 Jan 2018 10:35:12 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:12 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , =?utf-8?q?Gr=C3=A9gory_Estrade_gregory_?= =?utf-8?q?=2E_estrade_=40_gmail_=2E_com_Clement_Deschamps?= , Andrew Baumann , Ashok kumar Date: Wed, 3 Jan 2018 15:34:09 -0300 Message-Id: <20180103183418.23730-17-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 16/25] hw/arm/bcm2835_peripherals: implement SDHCI Spec v3 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Crosthwaite , qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/bcm2835_peripherals.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 12e0dd11af..b1a7bc1617 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -18,9 +18,6 @@ /* Peripheral base address on the VC (GPU) system bus */ #define BCM2835_VC_PERI_BASE 0x7e000000 -/* Capabilities for SD controller: no DMA, high-speed, default clocks etc. */ -#define BCM2835_SDHC_CAPAREG 0x52034b4 - static void bcm2835_peripherals_init(Object *obj) { BCM2835PeripheralState *s = BCM2835_PERIPHERALS(obj); @@ -254,14 +251,30 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp) memory_region_add_subregion(&s->peri_mr, RNG_OFFSET, sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->rng), 0)); - /* Extended Mass Media Controller */ - object_property_set_int(OBJECT(&s->sdhci), BCM2835_SDHC_CAPAREG, "capareg", - &err); - if (err) { - error_propagate(errp, err); - return; - } - + /* Extended Mass Media Controller + * + * Compatible with: + * - SD Host Controller Specification Version 3.0 Draft 1.0 + * - SDIO Specification Version 3.0 + * - MMC Specification Version 4.4 + * + * - 32-bit access only + * - default clocks + * - no DMA + * - SD high-speed (SDHS) card + * - maximum block size: 1kB + * + * For the exact details please refer to the Arasan documentation: + * SD3.0_Host_AHB_eMMC4.4_Usersguide_ver5.9_jan11_10.pdf ¯\_(ツ)_/¯ + */ + object_property_set_uint(OBJECT(&s->sdhci), 3, "sd-spec-version", &err); + object_property_set_uint(OBJECT(&s->sdhci), 52, "timeout-freq", &err); + object_property_set_uint(OBJECT(&s->sdhci), 52, "clock-freq", &err); + object_property_set_bool(OBJECT(&s->sdhci), false, "dma", &err); + object_property_set_bool(OBJECT(&s->sdhci), true, "1v8", &err); + /* FIXME verify/validate with someone from Broadcom? + object_property_set_uint(OBJECT(&s->sdhci), 1024, "max-block-length", &err); + */ object_property_set_bool(OBJECT(&s->sdhci), true, "pending-insert-quirk", &err); if (err) { From patchwork Wed Jan 3 18:34:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855175 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FzNvuOea"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfwh4qVBz9s7c for ; Thu, 4 Jan 2018 05:44:20 +1100 (AEDT) Received: from localhost ([::1]:60827 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo1S-0003YT-NS for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:44:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34080) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsj-0003dO-KE for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsi-0007mn-L2 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:17 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:42486) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsi-0007m4-Fi; Wed, 03 Jan 2018 13:35:16 -0500 Received: by mail-qk0-x242.google.com with SMTP id d202so2655890qkc.9; Wed, 03 Jan 2018 10:35:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Mf5sMfrAQgHlXLJqlurRhi790VW5gkg89w7JnRZuUQA=; b=FzNvuOeasul3C9RYEKKvWomwSL+3ZqtTmfwXyYgzDMSPgW5WUwiSwzBht13xDd0Lvi +KVzyIeax8Upy7O0zfQYfB4DLH3YkmOUda1OaB/9c8wfRRfxGpMyHaOZtcpqEb8qOr8y ORoA2u+eQjM2T+y1mfFiYMgsam14UtMlz6MvHbKawfRWHC1g/OB8NUQxAZdA5Xl4ZhSX RlJVyshNl4QAg+LRfeToovrL+zzT0WkYSs4yzEqmrnBQeQNtjg086SRuwSfkwQ0aQNRF hy//C5SQrghnEvYV6kRDsNU3O5VjwVZK6iUwhC76setoKHiShsC0zgrhiAEN73BcZV+C dlxA== 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=Mf5sMfrAQgHlXLJqlurRhi790VW5gkg89w7JnRZuUQA=; b=Y39/HXVyAzpL/QAwQET+CPpuff4wFeUrLODun15cCfzKPQCkWI9MGfJlSOrQ7z6Cui +6dOQ2apkhrnQ3bOLIThdIqcIMUoJ/ZYiwhnSaCSJWlTILc63hhqIoOTpx6x5Uazwik9 CDPcdVc9cGt4Nm94k/IQsxcznXbw+SjmI9PMDdIFw3dHntXWaP/+K3ZovRK1wWM/MHOL 1gjTNx5/OowhKv8JDecONNUqvom+tn1aNUfXAYZAKm19mqLkCtD+Jz8KysExaueHtOqu FFeF/Sb6+B1uozI+uXs//4cVS6CQIh2V8GCxhLq/U6VIMBauE0b4VA1svHp+tMayl1bR I+IA== X-Gm-Message-State: AKGB3mKxY+fvX3srOhI3pCWD+GfpaCysdIezG6FUjZ+y1x1jGTc0ndmN hwwErOA+jNKcsjTsSDEausg= X-Google-Smtp-Source: ACJfBou0uLurhS8Rka3i/EjGC+MfYsc6V25iFFOnoTgfNEyRIvAPhC6KdcefYegMEFs7M+G/YUAS0A== X-Received: by 10.55.147.68 with SMTP id v65mr760854qkd.70.1515004516008; Wed, 03 Jan 2018 10:35:16 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:15 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , Jean-Christophe Dubois Date: Wed, 3 Jan 2018 15:34:10 -0300 Message-Id: <20180103183418.23730-18-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 17/25] hw/arm/fsl-imx6: implement SDHCI Spec v3 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Crosthwaite , qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/fsl-imx6.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 59ef33efa9..d4de428dbc 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -348,6 +348,18 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp) { FSL_IMX6_uSDHC4_ADDR, FSL_IMX6_uSDHC4_IRQ }, }; + /* UHS-I SDIO3.0 SDR104 1.8V ADMA */ + object_property_set_uint(OBJECT(&s->esdhc[i]), 3, "sd-spec-version", + &err); + object_property_set_uint(OBJECT(&s->esdhc[i]), 52, "timeout-freq", + &err); + object_property_set_uint(OBJECT(&s->esdhc[i]), 52, "clock-freq", &err); + object_property_set_bool(OBJECT(&s->esdhc[i]), true, "adma1", &err); + object_property_set_bool(OBJECT(&s->esdhc[i]), true, "1v8", &err); + if (err) { + error_propagate(errp, err); + return; + } object_property_set_bool(OBJECT(&s->esdhc[i]), true, "realized", &err); if (err) { error_propagate(errp, err); From patchwork Wed Jan 3 18:34:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855182 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Em9tijn1"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg3h6CzQz9s7n for ; Thu, 4 Jan 2018 05:50:24 +1100 (AEDT) Received: from localhost ([::1]:60932 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo7K-0002Ft-UH for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:50:22 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsn-0003fo-ON for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsl-0007pd-Fq for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:21 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:41610) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsl-0007pI-9j; Wed, 03 Jan 2018 13:35:19 -0500 Received: by mail-qk0-x244.google.com with SMTP id a8so2662147qkb.8; Wed, 03 Jan 2018 10:35:19 -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=FbMk2G9nN+IefznQpu1WTWdyD0wXtry+4dYNm0+yH1Q=; b=Em9tijn1jVMQtv2mQ9sIm5FLtt0x11HBy5Um2OPaAk7L/yvQ+znSAmf0cU/nHs80DO wyQ2zuThznGNnUVQIfnmvOygN4bgoskwzMBrUuwouDqki2Ro9cWvbVJeh05v3QVeURhq DVqHx/WQnSV/zSgg6sOAsh3Nus/siLgRPWPpm3vTAEGDuGxLcSxBftEyOT1N63BZbs3A S0+Ej7hqh3gy+dtNCOue1hjsS7tYHU5F4aL4OhrkdcJCKjOaNpM8S5137RvDfwj3Kj1+ rsQ/5njcqBPcaAcgzwfr5f/UBsdg5VXH+p2Ym2R6NCWn662qQJdjETMH0eQ6uIYyNujK lG3A== 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=FbMk2G9nN+IefznQpu1WTWdyD0wXtry+4dYNm0+yH1Q=; b=tvmbHj2ETAU4Q3pqPhUk83Ke+DkyWsQwmmwC0pLbYl6IEiheL0QmAtC0sVYtD5WSXt skKimANDH1GFhSzU1iSGugve5us4BfVFT30QcD3ppN2uDDwig/H9s+zt9sU2/mKDAZX5 fs2IAftXL/Rr7agLQ+yHig5/BiFd92DGnBB5IRj/YJ/w3l6GH5Q6KoKEcMllkgGWWsX1 rZcsSoRWGik+gevEJVxwbS2HingLtpumzPjFxZoKk4rb1d41hGktiRgc00lEtDGt7t/n oEMZNyLAOB59TKn9bXEz6NZsPcGPlrpHc3DlsMxpDjdbFTil98oKvuEnAUYoWa6UO9cB QXvA== X-Gm-Message-State: AKGB3mIWnTY0k35nnh3fPH/bcBKTOdAJGUoNOb+u8id5yiiztSzSaTOE f9u6F0JjbE4iyWl/M+EVoYo= X-Google-Smtp-Source: ACJfBovJuFaB8prZZ96MWDfSsnKVTNQyncLfQRS030F503G2BMP8TUkTKknYwTwC4Blp+SxBAwMb9g== X-Received: by 10.55.183.67 with SMTP id h64mr2867446qkf.67.1515004518798; Wed, 03 Jan 2018 10:35:18 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:18 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:11 -0300 Message-Id: <20180103183418.23730-19-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 18/25] hw/arm/xilinx_zynqmp: implement SDHCI Spec v3 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E. Iglesias" , Peter Crosthwaite , qemu-arm@nongnu.org, =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/xlnx-zynqmp.c | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index c707c66322..067c309f56 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -374,22 +374,38 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) sysbus_connect_irq(SYS_BUS_DEVICE(&s->sata), 0, gic_spi[SATA_INTR]); for (i = 0; i < XLNX_ZYNQMP_NUM_SDHCI; i++) { - char *bus_name; - - object_property_set_bool(OBJECT(&s->sdhci[i]), true, - "realized", &err); + char *bus_name = g_strdup_printf("sd-bus%d", i); + SysBusDevice *sbd = SYS_BUS_DEVICE(&s->sdhci[i]); + Object *sdhci = OBJECT(&s->sdhci[i]); + + /* Compatible with: + * - SD Host Controller Specification Version 3.00 + * - SDIO Specification Version 3.0 + * - eMMC Specification Version 4.51 + * + * Host clock rate variable between 0 and 208 MHz + * Transfers the data in SDR104, SDR50, DDR50 modes + * (SDR104 mode: up to 832Mbits/s using 4 parallel data lines) + * Transfers the data in 1 bit and 4 bit SD modes + * UHS speed modes, 1.8V + * voltage switch, tuning commands + */ + object_property_set_uint(sdhci, 3, "sd-spec-version", &err); + object_property_set_bool(sdhci, true, "suspend", &err); + object_property_set_bool(sdhci, true, "1v8", &err); + object_property_set_bool(sdhci, true, "64bit", &err); + object_property_set_uint(sdhci, 0b111, "bus-speed", &err); + object_property_set_uint(sdhci, 0b111, "driver-strength", &err); + object_property_set_bool(sdhci, true, "realized", &err); if (err) { error_propagate(errp, err); return; } - sysbus_mmio_map(SYS_BUS_DEVICE(&s->sdhci[i]), 0, - sdhci_addr[i]); - sysbus_connect_irq(SYS_BUS_DEVICE(&s->sdhci[i]), 0, - gic_spi[sdhci_intr[i]]); + sysbus_mmio_map(sbd, 0, sdhci_addr[i]); + sysbus_connect_irq(sbd, 0, gic_spi[sdhci_intr[i]]); + /* Alias controller SD bus to the SoC itself */ - bus_name = g_strdup_printf("sd-bus%d", i); - object_property_add_alias(OBJECT(s), bus_name, - OBJECT(&s->sdhci[i]), "sd-bus", + object_property_add_alias(OBJECT(s), bus_name, sdhci, "sd-bus", &error_abort); g_free(bus_name); } From patchwork Wed Jan 3 18:34:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855181 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ds6Zp8zz"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg2d4WbTz9s7g for ; Thu, 4 Jan 2018 05:49:29 +1100 (AEDT) Received: from localhost ([::1]:60928 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo6R-0001WD-LV for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:49:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34168) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsq-0003iX-Df for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsp-0007td-FL for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:24 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:39993) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsp-0007sx-57 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:23 -0500 Received: by mail-qk0-x241.google.com with SMTP id q14so2662339qke.7 for ; Wed, 03 Jan 2018 10:35:23 -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=WX4szBdArCgoosrfmmtyywCGPf6m5iQ7xs/Mne1tPyY=; b=Ds6Zp8zzaB73/C6Vq3EimXoXL9SLgXGkR9MX+nHhSWsXPf1vS0fzrmBDDdGT9frEC2 sa6dCTowxGcdrZf+qiNjeRd2d/xFVZ6cHOoUE+C/m8eDwvTcQrK5iZ5gNE4uHHH1n1di apHGe3ljWB8gEFHrrbvn8awK7YDrcC4k/deXUoT97PbuvLFPNGY1mOvEMsuBxkBdgBTO oEarq+0N41CpS0XZ1gPY8KjF3Ia23BEYXDjCKUxq45tEeoOqyueHOuhfXJPnNCfbiU4G PGjTkcqmXbjA9k5WsQu53DWDPc7ISORQsmkoQh4GYT2g/8krb8AcnrGfAmZDFbC9o6AG KiRg== 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=WX4szBdArCgoosrfmmtyywCGPf6m5iQ7xs/Mne1tPyY=; b=Qao+Wa32dLkIS2fDW5YN16p4YXkjTU97bhn99nXANTGsK00y7DJsk1IBnldVsv1901 S3Fx1QrTRsD+rSFq9WOaT4WrNK7dVSB0GDF1TLQ0zOowclzSe9m6Kfm8V9iQS8fhlpWL PiKO/Lxgz6C754D32fwgMmq6nQwHv3GFIatLbAEWVaBetgIfC9LAjsjQMAHw6DrYpFBq JIPfQwvBloFAmgPiHUGXpoptWQtE8ZyRsI69FoqqRJVXtKHFmo0GQ+GVyfqK9U2n+bKo 8lfAt7HKIVA7jCf0Cor4ACpgi25u9oF5NCwBUzHvfNZMVnWUf7hoXPHcBss/EM6Q6P8+ kFqg== X-Gm-Message-State: AKGB3mKKkjuSAuj9Fr2j+8GkU3IO4hMlkkH85NK3Wfv4BfqmJjYFvWLS FI8wXHrUJy2jd1vO2uO/2TE2cbd8 X-Google-Smtp-Source: ACJfBou0h1lJhXICutg7mtjtmKPeRaKs2T4tjssQHKsLlB7Qvq5OAdYaQhzfBKZ2O/cvxXOYrEwVww== X-Received: by 10.55.15.2 with SMTP id z2mr2182359qkg.180.1515004522155; Wed, 03 Jan 2018 10:35:22 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:21 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , Jean-Christophe Dubois , =?utf-8?b?R3LDqWdvcnkg?= =?utf-8?q?Estrade?= , Clement Deschamps , Andrew Baumann Date: Wed, 3 Jan 2018 15:34:12 -0300 Message-Id: <20180103183418.23730-20-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v4 19/25] sdhci: check Spec v3 capabilities qtest 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- tests/sdhci-test.c | 12 ++++++++++++ tests/Makefile.include | 1 + 2 files changed, 13 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 200d7bcee2..f7487808af 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -29,9 +29,21 @@ static const struct sdhci_t { { "arm", "smdkc210", {0x12510000, 2, 0, {1, 0x5e80080} } }, + /* i.MX 6 */ + { "arm", "sabrelite", + {0x02190000, 3, 0, {1, 0x057834b4} } }, + + /* BCM2835 */ + { "arm", "raspi2", + {0x3f300000, 3, 52, {0, 0x52034b4} } }, + /* Zynq-7000 */ { "arm", "xilinx-zynq-a9", {0xe0100000, 2, 0, {1, 0x01790080} } }, + + /* ZynqMP */ + { "aarch64", "xlnx-zcu102", + {0xff160000, 3, 0, {1, 0x7715e80080} } }, }; static uint32_t sdhci_readl(uintptr_t base, uint32_t reg_addr) diff --git a/tests/Makefile.include b/tests/Makefile.include index af7f324e07..cd18ab4519 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -358,6 +358,7 @@ gcov-files-arm-y += hw/timer/arm_mptimer.c check-qtest-arm-y += tests/sdhci-test$(EXESUF) check-qtest-aarch64-y = tests/numa-test$(EXESUF) +check-qtest-aarch64-y += tests/sdhci-test$(EXESUF) check-qtest-microblazeel-y = $(check-qtest-microblaze-y) From patchwork Wed Jan 3 18:34:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855183 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="XCp9ligV"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg5b1nZlz9s7g for ; Thu, 4 Jan 2018 05:52:03 +1100 (AEDT) Received: from localhost ([::1]:32812 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo8v-0003oi-AB for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:52:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34196) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnss-0003ka-Bk for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsr-0007ux-L1 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:26 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:39298) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsr-0007uW-2X for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:25 -0500 Received: by mail-qt0-x241.google.com with SMTP id k19so3221805qtj.6 for ; Wed, 03 Jan 2018 10:35:24 -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=TcIDMeWYOPbWsXkOMYQ67Jpjv1tUDs/0V/CtgDPJrE0=; b=XCp9ligVnn13JFFshI3bZ5baYc7VrniUVIAlBbqp7AQ15/CsGzj8HE7VWvdceQbvJA RPwANl6gxTiNTS81jGfSfsJfrK3YaNF9hZ/SJQg2ppXtZQbyBgRSabMzz8tphdn+Ja5A Wt3Bk36CVPvxJN6Tcegl5e/wOMuHp9sfcvA9LKVfYFiltAsHjjl3eRzHSAtmPi7i0b+1 xHZcg6md7la4ivesoKX7edosqU5HXSSgdM8T+cV0ERaSvAAdPqxH5eA2I/s2BN2pd6FX fq66SUcmi2udOehFPhT5iSvRKbraQlQxV9DFMkwwC9vSOXb+xE0QWjehRAKt703wbgZg tffw== 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=TcIDMeWYOPbWsXkOMYQ67Jpjv1tUDs/0V/CtgDPJrE0=; b=bTMNmS3gFs3myZBX3BktFc42Wvw2UvKqU6XfKxnDkI2RKpPNGomBVLwrnZPGv3b0+O sdKWHEUK+49hM+fWuZ08z1s0KyvNoYAKtdVfEq1aPjBzj6bbB8CyUrURz0rocjRTgal9 cAaBuY1ls8ch//X6aYPjq2WJTtD85AGSZ1meTSFxCBDHDs6SunTtD2xe18c+z2YRei4T vnR+caeZ4lXSBEKf6w12dzBX9N+Ht21ULmnCSUuSnGGndZqzEUOCIhCpuX9YSp1eOFKs x53ybFFxqRTJzTG8JjvqrA8vn4RKN6NY42mFA9/Yg9/bsfOgNB+gUNpS5Wiy38EDpgbF doTw== X-Gm-Message-State: AKGB3mLByWN3+zVx1qw+c5Ch5Ofy5MPycA+3OEVsEvHEPLXG5VjJwbeL IeU+K2ctfeEWGLPqpBQJd8s= X-Google-Smtp-Source: ACJfBotf+EiGg2QtzlnlaRKoAIkUGpxQoWSJf5Xpj3JChDVXyp/GYICE01W4FeXpG99q0WPgT27Tfg== X-Received: by 10.237.53.115 with SMTP id b48mr3016097qte.304.1515004524627; Wed, 03 Jan 2018 10:35:24 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:24 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:13 -0300 Message-Id: <20180103183418.23730-21-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 20/25] sdhci: remove the deprecated 'capareg' property 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" All SDHCI consumers have been upgraded to set correct properties. Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 2bd3c5a4b9..2b63ff1891 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1195,9 +1195,7 @@ static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) s->cap.sdma = s->cap.adma1 = s->cap.adma2 = false; } - if (s->capareg == UINT64_MAX) { - sdhci_init_capareg(s, errp); - } + sdhci_init_capareg(s, errp); } static void sdhci_initfn(SDHCIState *s) @@ -1347,9 +1345,6 @@ static Property sdhci_properties[] = { DEFINE_PROP_UINT8("bus-speed", SDHCIState, cap.sdr, 0), DEFINE_PROP_UINT8("driver-strength", SDHCIState, cap.strength, 0), - /* capareg: deprecated */ - DEFINE_PROP_UINT64("capareg", SDHCIState, capareg, UINT64_MAX), - DEFINE_PROP_UINT64("maxcurr", SDHCIState, maxcurr, 0), DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_quirk, false), From patchwork Wed Jan 3 18:34:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855184 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="IBrtH8WP"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg6K2s8yz9s7g for ; Thu, 4 Jan 2018 05:52:41 +1100 (AEDT) Received: from localhost ([::1]:32860 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo9X-0004R3-Ej for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:52:39 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsx-0003px-PN for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnst-0007w0-Rr for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:31 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:38595) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnst-0007vs-NK for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:27 -0500 Received: by mail-qk0-x242.google.com with SMTP id l19so2667248qke.5 for ; Wed, 03 Jan 2018 10:35:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=k6sbl/indurMO60PqiU27VM0Ou/IYENUxu4LHz1GzBM=; b=IBrtH8WPitpCddue9+R83ogosYgOseBSXS9I/l2djsloU/VgTwP3f+wM3x/7uPh56N DpfrZ6JKoPXYaHLA+M/HxNzDNsv4s436u/kygtwjAtJo+DF7Do3867EFEcff/lQ0jmtt 6yPNKeQlLBy6AHhdQerTylUIc5UPzBBsIkGvam//FJ/4Bta2Cwdak65b6O54ELnLzw93 NCe2idr18XXAzJnn3mdRi8CD+uiZk59RrJ6w1J/A3DxLc1MDfNV+8pRR9Hev/wR/RyrE 8nvDILMxiFutuUEwv2ux6bqHd2WnoAb7XHDVHucA5JbJghErPCz6A+wVFC+TOLpq544+ s0sA== 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=k6sbl/indurMO60PqiU27VM0Ou/IYENUxu4LHz1GzBM=; b=HbEr4dvNvnJE4pESdCNiJrmmgq/K4aWt/YOwra5sN0evTZykn2nVXXxukY1GaT95zF doduO774lhMrCuePdvmGcmhG6oOnV1MvsldqlH4ZerTyNyH3ql1RiSXZyDKOe8ZRZQMj flhwHV82vSNN8k3rIXnsNluHtfBsZYrRq0mE85YBkWc4TFzIROmQAxyzz0IKZfEcYfpr Ih9/7MN7EOo1wwGBSA/VjSbVisbYPmRyjwe+Nunt3P6sZg2xeHSS3swPUvhX6RCm4d3t lms/MpabM9mIurnm8wyZWeH2D0yK6J9iu635WtyPNdx2SZGP2lhMB9vUPmTxat8cbvzk Kv/w== X-Gm-Message-State: AKGB3mIiVRrcKLAl0EX3+Mqa1c+du5ZIQpd6XwmOSKsBX9jwS0ZN+dw9 MPRN/c1AlTrvVYYS15FA3KM= X-Google-Smtp-Source: ACJfBovhe5O8JKBub+X0R+boOKO4Lz1KQW1ncEaswIWaPqNUD5mhwyLBCRUhm/24QnrAcD4Z9TtVBw== X-Received: by 10.55.65.70 with SMTP id o67mr2855026qka.209.1515004527273; Wed, 03 Jan 2018 10:35:27 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:26 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , Stefan Hajnoczi Date: Wed, 3 Jan 2018 15:34:14 -0300 Message-Id: <20180103183418.23730-22-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 21/25] sdhci: add check_capab_readonly() qtest 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index f7487808af..0443a23e45 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -60,6 +60,13 @@ static uint64_t sdhci_readq(uintptr_t base, uint32_t reg_addr) return qtest_readq(qtest, base + reg_addr); } +static void sdhci_writeq(uintptr_t base, uint32_t reg_addr, uint64_t value) +{ + QTestState *qtest = global_qtest; + + qtest_writeq(qtest, base + reg_addr, value); +} + static void check_specs_version(uintptr_t addr, uint8_t version) { uint32_t v; @@ -78,6 +85,20 @@ static void check_capab_capareg(uintptr_t addr, uint64_t expected_capab) g_assert_cmphex(capab, ==, expected_capab); } +static void check_capab_readonly(uintptr_t addr) +{ + const uint64_t vrand = 0x123456789abcdef; + uint64_t capab0, capab1; + + capab0 = sdhci_readq(addr, SDHC_CAPAB); + g_assert_cmpuint(capab0, !=, vrand); + + sdhci_writeq(addr, SDHC_CAPAB, vrand); + capab1 = sdhci_readq(addr, SDHC_CAPAB); + g_assert_cmpuint(capab1, !=, vrand); + g_assert_cmpuint(capab1, ==, capab0); +} + static void test_machine(const void *data) { const struct sdhci_t *test = data; @@ -86,6 +107,7 @@ static void test_machine(const void *data) check_capab_capareg(test->sdhci.addr, test->sdhci.capab.reg); check_specs_version(test->sdhci.addr, test->sdhci.version); + check_capab_readonly(test->sdhci.addr); qtest_quit(global_qtest); } From patchwork Wed Jan 3 18:34:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855173 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ts6TIOAL"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBftk6CcMz9s7c for ; Thu, 4 Jan 2018 05:42:38 +1100 (AEDT) Received: from localhost ([::1]:60816 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnzo-0001VI-TT for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:42:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34242) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsx-0003q3-Pp for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsx-0007xd-0q for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:31 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:41362) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsw-0007xK-S4 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:30 -0500 Received: by mail-qt0-x244.google.com with SMTP id i40so3208195qti.8 for ; Wed, 03 Jan 2018 10:35:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LB2vR+xX5B7po0OaUd258WDwiRr1Lql0ZJ7HTew9kDU=; b=ts6TIOALxZPoJY+cKcgDuV06fGJQo4gCLHk3a9f5pf20WLDLu7oGJh7XLf7ZwxXqmC bW7//YxlN3nLDTcTI4h1vq/B729v0+gf1ffquOtLER8ONLBnsCuf4KlLlFqjz8kmfBol 13OX2thHqcfWEUXU8NnqpF3h34his1ngdSu4uZ5OZZGSgvzP8gBqlrXfpHIJTmbdMWRQ qsObDFERAQ70egTwYsXiTAUWxbwU3wqu53EFXaIA9i9jgYCqCvDaW3ALq3HpEAWFhqez xQyuINeRvHNEetBLxVKxsA4X1duekJTUnMOrCq6uQoGChFFf8wvGW7F4jOrLya9J/i+6 5vCQ== 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=LB2vR+xX5B7po0OaUd258WDwiRr1Lql0ZJ7HTew9kDU=; b=Chx3t+klhZH8Zs1ScE80if+LZEL1Uz16ZrdXHbYyXY0EHm2CwUC2qCD84U5+Fxt2v9 7GPKvW3b178/1+jH+SEIgBfSPhhttz8OF202OR0CJhCw3DA9NyISTVSaxh2ygEfVgRRu xjW9dTIgtZTpTYTUlHbY3HfDKueUrIatrVJGcEkR3fq0FpJxEGzawj7ru6K+MIPxrN8G oAXvxvnAG1vYi2RIJ+G3/BMbYlS1l1WkZ/mzFwBLR9iQuEAtc3VFY0joTtU54/1YULvM +iXOPc+8v1S2JCNdHvBo1tbTxXv8Oc5A4V2Nj2YzGaH8CCuEvTMn318JLUNiGZB5E101 TPQA== X-Gm-Message-State: AKGB3mJXDbxAMNgVl0jGtuu/mfeoL9sqK6+t/Iroglc5PWIatJbwtkHY WNFmb15qNVWnKT4xa3X38B6dRL8x X-Google-Smtp-Source: ACJfBovRpxGXcrNxHTCoD36IcGCA+pBldg7nJnjINwYr3xSQMXlhyjayjWOu7S842MIEJAXbdPrsHA== X-Received: by 10.237.37.47 with SMTP id v44mr3095679qtc.55.1515004530402; Wed, 03 Jan 2018 10:35:30 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:29 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , Igor Mitsyanko , Krzysztof Kozlowski , Stefan Hajnoczi Date: Wed, 3 Jan 2018 15:34:15 -0300 Message-Id: <20180103183418.23730-23-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 22/25] sdhci: add a check_capab_baseclock() qtest 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 0443a23e45..2aa3fa0d3b 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -7,9 +7,11 @@ * See the COPYING file in the top-level directory. */ #include "qemu/osdep.h" +#include "hw/registerfields.h" #include "libqtest.h" #define SDHC_CAPAB 0x40 +FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); /* since v2 */ #define SDHC_HCVER 0xFE static const struct sdhci_t { @@ -99,6 +101,18 @@ static void check_capab_readonly(uintptr_t addr) g_assert_cmpuint(capab1, ==, capab0); } +static void check_capab_baseclock(uintptr_t addr, uint8_t expected_freq) +{ + uint64_t capab, capab_freq; + + if (!expected_freq) { + return; + } + capab = sdhci_readq(addr, SDHC_CAPAB); + capab_freq = FIELD_EX64(capab, SDHC_CAPAB, BASECLKFREQ); + g_assert_cmpuint(capab_freq, ==, expected_freq); +} + static void test_machine(const void *data) { const struct sdhci_t *test = data; @@ -108,6 +122,7 @@ static void test_machine(const void *data) check_capab_capareg(test->sdhci.addr, test->sdhci.capab.reg); check_specs_version(test->sdhci.addr, test->sdhci.version); check_capab_readonly(test->sdhci.addr); + check_capab_baseclock(test->sdhci.addr, test->sdhci.baseclock); qtest_quit(global_qtest); } From patchwork Wed Jan 3 18:34:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855185 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="SopKap8p"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg7m3GYjz9s75 for ; Thu, 4 Jan 2018 05:53:55 +1100 (AEDT) Received: from localhost ([::1]:32898 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWoAi-0005fv-N0 for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:53:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34292) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnt0-0003te-Us for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnt0-0007zf-2S for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:35 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:39997) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsz-0007zN-UD for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:33 -0500 Received: by mail-qk0-x244.google.com with SMTP id q14so2663028qke.7 for ; Wed, 03 Jan 2018 10:35:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zi5btWNAivsb8igglLB2UASurWb1iE36wSNjba799BU=; b=SopKap8psZ2R/NcCppEmN7fMsJ8A4LHMjVKgLryKCG0A0A/zLHSQuqFtfWS3/5n96l E0wfumgbJdliPnGDVAnTYCSnQIR0rQTt1GSTprwRFGmGZCbcy3LqMkTbWGOjEAXXesNa DzoMLx0iWo9Qs4z2F8GlqdbiqeqRVhrV/bLhV5N/3eyf+I6VdNPhUU4Kbj/95ftXXSih EbulmZTNGtXJeXs9IxZc3EwJVWkHD8h0UW2o/LmfC6jVnj+jkVbqSmaBjjB6n8UsswNV XuunxXPfpmXHymf+Oq9UQcQyCiMln9ueGzhFv/c51v5xbxs5DcToJlaDWLTY6e8e8bKC JLpQ== 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=Zi5btWNAivsb8igglLB2UASurWb1iE36wSNjba799BU=; b=Er+PJVDgmD5wMdnGcFVWdvaH4CPzzMwyITw4EaTUiYzEcNtwasP5ZryR3Z95xgB1L2 24JximZf8v9hzFGyp6FHR+hPL2D3gsEYZgC223fltE6MnraOEnAbPEnGjilNgH13f5Jo xdMM9gxNjfWODWGgNxOCPzzmJ1iY5CeCOaF5TnuHTnHMZRuSPbbF+I001aPR3JYSaAvM QBD0QFHvQMQjQ2y6GR3PkLEgcTNE9SWHuiy5eFdzMvj1hmz1mMjj/L2FnLbPknt7EtXi DedIIaCdioE5dG23AZCakjdLOJQjX/23kWBAt6HsgIrOns69Mye2IsD+DYwpkHhKBIu2 7E4Q== X-Gm-Message-State: AKGB3mKtNJXkeBmaLVXSNxkGz6hBBEz6z/A3iBoPqYg+ct/bBbhsL+z1 wwhsPwtW3T5D6ChCJcdmxvA= X-Google-Smtp-Source: ACJfBot+ERCCCgjzM52VZO/2ALwHUC+eqtdv2rO0p65ZBdD9oOvPL7AViVpBb+LySE6XxbUQBJBiDg== X-Received: by 10.55.126.198 with SMTP id z189mr2984636qkc.100.1515004533494; Wed, 03 Jan 2018 10:35:33 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:32 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , Igor Mitsyanko , Krzysztof Kozlowski , Stefan Hajnoczi Date: Wed, 3 Jan 2018 15:34:16 -0300 Message-Id: <20180103183418.23730-24-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 23/25] sdhci: add a check_capab_sdma() qtest 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 2aa3fa0d3b..91b1b29d75 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -12,6 +12,7 @@ #define SDHC_CAPAB 0x40 FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); /* since v2 */ +FIELD(SDHC_CAPAB, SDMA, 22, 1); #define SDHC_HCVER 0xFE static const struct sdhci_t { @@ -113,6 +114,15 @@ static void check_capab_baseclock(uintptr_t addr, uint8_t expected_freq) g_assert_cmpuint(capab_freq, ==, expected_freq); } +static void check_capab_sdma(uintptr_t addr, bool supported) +{ + uint64_t capab, capab_sdma; + + capab = sdhci_readq(addr, SDHC_CAPAB); + capab_sdma = FIELD_EX64(capab, SDHC_CAPAB, SDMA); + g_assert_cmpuint(capab_sdma, ==, supported); +} + static void test_machine(const void *data) { const struct sdhci_t *test = data; @@ -122,6 +132,7 @@ static void test_machine(const void *data) check_capab_capareg(test->sdhci.addr, test->sdhci.capab.reg); check_specs_version(test->sdhci.addr, test->sdhci.version); check_capab_readonly(test->sdhci.addr); + check_capab_sdma(test->sdhci.addr, test->sdhci.capab.sdma); check_capab_baseclock(test->sdhci.addr, test->sdhci.baseclock); qtest_quit(global_qtest); From patchwork Wed Jan 3 18:34:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855177 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="KA4Ki72l"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfxq442zz9s7c for ; Thu, 4 Jan 2018 05:45:19 +1100 (AEDT) Received: from localhost ([::1]:60839 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo2P-0004jg-LA for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:45:17 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34336) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnt3-0003w9-Mt for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnt2-00081n-SO for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:37 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:41361) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnt2-00081a-Nh for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:36 -0500 Received: by mail-qt0-x242.google.com with SMTP id i40so3208533qti.8 for ; Wed, 03 Jan 2018 10:35:36 -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=6bwuV6OYuX9oSfhGslGZdroqy838Q0FU0pN9u0oOcvo=; b=KA4Ki72lM6aBD3PsBRFyA+BElnqZcKamOMIORAzgKGbDl5j3Gkm7kjCMViT8sMyf8g /5J7QEXu1ldw0DSSymZp2EqXUfyRX2p8GQTgTQQpk3Ln+BdUNtP1E41wqhYLRpMOxAua r8K/sph1GrS5lScyxC8EcCqAr7B5Ki14E/D5fe0z2/jvqM0PZznXDygCbuRW4Fl9ll5M dqwZ0F6cmaqQZjEsR+23RkH+jtMcRAoa7nNMPcWJ0gYaCcmX0l8f2tagE6cBqDxOnvpe 38+HI99On5fBU3Uxkf7UCJhSCKCZSMEZu+TYap8O3O9EL0ayOGUrJjYOJJXfVf1Udoth IrSg== 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=6bwuV6OYuX9oSfhGslGZdroqy838Q0FU0pN9u0oOcvo=; b=W7Y2B8J04KUhFvNrnrWY1CaH7a32m37XEb6nV6rWnipkt1uA2MJiWYYpQWBHtr5k0w ntzEbF1cBl2mQv2J4LMHCr1PVyUgvHJgBGy+37qJ3L7aeAV0XWKfTrNcWN7JkFEOz0bt CxLeYt45M+m16S9tLikXEIcO23yPCpUsA6j9pH/KUBKeFiEGt87Kug7XR4JUMcJam3p4 0ZqZzoJU/sQkHWD9dADrhAP/aV2/9nM4zrSRoeEg4jgEj8kzaNZwWpnokF544Hdx/ngK YzEYTbBWVPTh+LLy9H7o9CrP8EC7BgJj+jJAnPJmAssPtAkQ1J99hUt2EBXGZaEwwqPX wWkw== X-Gm-Message-State: AKGB3mJqvwYY8s6U8ftfCuqtC8KYxvfvtwCexthbaXSeFZoOYggqcsjP xGKTKKBt+eWJAN0QYz1GKrk= X-Google-Smtp-Source: ACJfBovWbzz317jDXZj0/dOyrip4/3d1ISEWPl7oSzhvk7BMOitlXOPqf4kiRJh2KRkNMkwb6B60mg== X-Received: by 10.237.41.37 with SMTP id s34mr3157870qtd.154.1515004536258; Wed, 03 Jan 2018 10:35:36 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:35 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , Stefan Hajnoczi Date: Wed, 3 Jan 2018 15:34:17 -0300 Message-Id: <20180103183418.23730-25-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 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 v4 24/25] sdhci: add a check_capab_v3() qtest 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 91b1b29d75..6ebe9f4d25 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -13,6 +13,8 @@ #define SDHC_CAPAB 0x40 FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); /* since v2 */ FIELD(SDHC_CAPAB, SDMA, 22, 1); +FIELD(SDHC_CAPAB, SDR, 32, 3); /* since v3 */ +FIELD(SDHC_CAPAB, DRIVER, 36, 3); /* since v3 */ #define SDHC_HCVER 0xFE static const struct sdhci_t { @@ -123,6 +125,21 @@ static void check_capab_sdma(uintptr_t addr, bool supported) g_assert_cmpuint(capab_sdma, ==, supported); } +static void check_capab_v3(uintptr_t addr, uint8_t version) +{ + uint64_t capab, capab_v3; + + if (version >= 3) { + return; + } + /* before v3 those fields are RESERVED */ + capab = sdhci_readq(addr, SDHC_CAPAB); + capab_v3 = FIELD_EX64(capab, SDHC_CAPAB, SDR); + g_assert_cmpuint(capab_v3, ==, 0); + capab_v3 = FIELD_EX64(capab, SDHC_CAPAB, DRIVER); + g_assert_cmpuint(capab_v3, ==, 0); +} + static void test_machine(const void *data) { const struct sdhci_t *test = data; @@ -132,6 +149,7 @@ static void test_machine(const void *data) check_capab_capareg(test->sdhci.addr, test->sdhci.capab.reg); check_specs_version(test->sdhci.addr, test->sdhci.version); check_capab_readonly(test->sdhci.addr); + check_capab_v3(test->sdhci.addr, test->sdhci.version); check_capab_sdma(test->sdhci.addr, test->sdhci.capab.sdma); check_capab_baseclock(test->sdhci.addr, test->sdhci.baseclock); From patchwork Wed Jan 3 18:34:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855180 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Rbmac8nd"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBg0k5x2Cz9s7g for ; Thu, 4 Jan 2018 05:47:50 +1100 (AEDT) Received: from localhost ([::1]:60860 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWo4q-0007oM-Ss for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:47:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34411) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnt7-000409-O5 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnt5-00083u-B6 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:41 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:39996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnt5-00083V-6k for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:39 -0500 Received: by mail-qk0-x242.google.com with SMTP id q14so2663341qke.7 for ; Wed, 03 Jan 2018 10:35:39 -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=qs+EJ2CmI/mNE1M/GPWrrMlCCZshfb9QWG1+yPga2fA=; b=Rbmac8nda8cuTyhTeFUb+UyiaoOMchq5QZAidawLAv/xXIrG7nWLavbPTjYz8KpZ60 3kXAFunwUDwURPKdrSIvgo3MtH43OVvJaYToMyeQqxwdbHINHSIlnVO+S8REZmC0Ynq+ DbuH4JJf9tWCeKOAM8qS8BxSeHCfgQkTOhL0mo4k7GtNWn5BLV2ZqjTrDMz7y722J0Xl LA9vSbFOVDoUNhmJ/8QUByP6CjFn5j0Ms4rsjivIZN2+G0qhCdwR/4fphb3rZfd28qr4 3ANHkL5D9ubM/jf595WngProkVcEp1pnBR9edjWcigPNAjT1efx6Dnd31eNKm5q0UBog y1BA== 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=qs+EJ2CmI/mNE1M/GPWrrMlCCZshfb9QWG1+yPga2fA=; b=iiZYWkQXIIapXjpbuY7BLcVMz/1rPr3npcd6HPR+tCkOtsVmGT0jzTk4xyO3OlhDl/ AaoPf0yD8z5GSrIDgB8+TP/E4Y1l5HfeQEWKT3cbDCVsm1w+gvkWSfktUcKw0ruMguLA 2IBStydoYxRHqxkTO4MtsTeGH6Ze5qyB4k6kLHSuL4EXspAF9cqlsIO4pPShtJIY5D9R /E+d/ftNnHjdcWkLPVYSzDwbPk8c5/0Qv3jotWZiqg9TF4lYFKTv5HI9Cg87jT1px7KZ 6lnNxCw+kjflb94XOVA6C7aBWm5FlpaAUsEhPH33kMd+d7rsevTLZdb2SN0osj5KkUwZ hueg== X-Gm-Message-State: AKGB3mLL7qqW2sC/ocdBM1aJkG5zckKB107bmQZehiOnXFSunkRdE1m6 aFnGJF0e8JX0SXf1/8jtFS3rhiEW X-Google-Smtp-Source: ACJfBosDUCdJtMR+C64WsIeU95+OxErTsGwiFhvKcF8ikg5D2xuV+uDAzpnksvh4afZfWK7arFY4Xw== X-Received: by 10.55.45.198 with SMTP id t189mr2859771qkh.62.1515004538771; Wed, 03 Jan 2018 10:35:38 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:38 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov Date: Wed, 3 Jan 2018 15:34:18 -0300 Message-Id: <20180103183418.23730-26-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 25/25] sdhci: add Spec v4.2 register definitions 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: Peter Crosthwaite , =?utf-8?q?Philippe_Ma?= =?utf-8?q?thieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci-internal.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 1da91a27b4..8193aa1821 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -191,6 +191,10 @@ FIELD(SDHC_HOSTCTL2, V18_ENA, 3, 1); /* UHS-I only */ FIELD(SDHC_HOSTCTL2, DRIVER_STRENGTH, 4, 2); /* UHS-I only */ FIELD(SDHC_HOSTCTL2, EXECUTE_TUNING, 6, 1); /* UHS-I only */ FIELD(SDHC_HOSTCTL2, SAMPLING_CLKSEL, 7, 1); /* UHS-I only */ +FIELD(SDHC_HOSTCTL2, UHS_II_ENA, 8, 1); /* since v4 */ +FIELD(SDHC_HOSTCTL2, ADMA2_LENGTH, 10, 1); /* since v4 */ +FIELD(SDHC_HOSTCTL2, CMD23_ENA, 11, 1); /* since v4 */ +FIELD(SDHC_HOSTCTL2, VERSION4, 12, 1); /* since v4 */ FIELD(SDHC_HOSTCTL2, ASYNC_INT, 14, 1); FIELD(SDHC_HOSTCTL2, PRESET_ENA, 15, 1); @@ -219,12 +223,16 @@ FIELD(SDHC_CAPAB, DRIVER_TYPE_C, 37, 1); /* since v3 */ FIELD(SDHC_CAPAB, DRIVER_TYPE_D, 38, 1); /* since v3 */ FIELD(SDHC_CAPAB, TIMER_RETUNNING, 40, 4); /* since v3 */ FIELD(SDHC_CAPAB, SDR50_TUNNING, 45, 1); /* since v3 */ +FIELD(SDHC_CAPAB, CLK_MUL, 48, 8); /* since v4.20 */ +FIELD(SDHC_CAPAB, ADMA3, 59, 1); /* since v4.20 */ +FIELD(SDHC_CAPAB, V18_VDD2, 60, 1); /* since v4.20 */ /* HWInit Maximum Current Capabilities Register 0x0 */ #define SDHC_MAXCURR 0x48 FIELD(SDHC_MAXCURR, V33_VDD1, 0, 8); FIELD(SDHC_MAXCURR, V30_VDD1, 8, 8); FIELD(SDHC_MAXCURR, V18_VDD1, 16, 8); +FIELD(SDHC_MAXCURR, V18_VDD2, 32, 8); /* since v4.20 */ /* W Force Event Auto CMD12 Error Interrupt Register 0x0000 */ #define SDHC_FEAER 0x50