From patchwork Mon Jan 8 15:42:34 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: 856878 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="rpBrH46V"; 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 3zFfmH6X8Tz9rxj for ; Tue, 9 Jan 2018 02:47:27 +1100 (AEDT) Received: from localhost ([::1]:41243 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZe2-0003to-0J for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:47:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41608) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZaJ-0001AU-CG for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZaG-00070R-7F for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:35 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:43784) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZaG-00070B-1t; Mon, 08 Jan 2018 10:43:32 -0500 Received: by mail-qk0-x241.google.com with SMTP id j137so14639847qke.10; Mon, 08 Jan 2018 07:43:31 -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=A3tFw7iQcd2iAvav3zBQa7pgS4zm53KKebvudYiTcW8=; b=rpBrH46VhszNra2dyLD2CQe608W3NR1/3YlPTOsAskmvMyN21KH71W9gHAscm3cyAX elkNiOEV2Whdfk5bcdsprK6DHKZkThKDlyahy0xu8r27NvAnXF5k51FaolNI7Gvt/DQM YU8hozDglsd+tZCdxRFg5bd94sOP5kIT3qO98jJFpufdiADM6PFnuTcsXBTNDBlmM+Dp Zk3M8QrsSDttwKnnM3hIoVvGFJl3AX062l8kgM8BMiUi+Z2MZ5oe8k6X/GQsGJsZrB9x UwfWe3udXdPGbDq3aaQZCR38fvhVwlO/Zh20Dw1ohFRaBs3x3ju0/c/jleQj9lskBHRo dYWQ== 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=A3tFw7iQcd2iAvav3zBQa7pgS4zm53KKebvudYiTcW8=; b=o789K91K6yoL9FPtwPIQtfLlIJm7u+j3pOOdcgye/Vb+0nrgyV7t1VuPE7/ySldREq Vfscf5Fc8D+ypJzeZWyrb44WGOE7jX5Lfl2qqtbDY93B57C7ziZn0erYIgtJKtFBFHd/ p3JQYhDnySekmOsBN28igoX23Bf0bUM1Hb4PFjiCPuphJ/DyF7HSxyBtwVcfLjXCSjbN 1YtjZCO1XioSZxdIqUiMRevgRxHyirUVK478T4eof3osaxc6719v8jE8tPRGwlTmOQOn 48aHlV0KNtqGao7gd9pShTyels3gucYb3TKVV6KMP0RZAFaetDaAyv3T2tRU+fJdEyEj UAoQ== X-Gm-Message-State: AKGB3mICFCgJaNvEz2F4kkusqukBkhONWfBaonulXXLVG9YN09c+Kmwn oINfQHoXzn4lQsbnJdfA4N8= X-Google-Smtp-Source: ACJfBotx7VQGLKA9tkUgR52RGvDSdCq3buddXHC5uxM01KLEIoWOMZujoisxiX6Jt6LsiGIbMq8J0Q== X-Received: by 10.55.121.196 with SMTP id u187mr17321514qkc.215.1515426211387; Mon, 08 Jan 2018 07:43:31 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.43.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:43:30 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:34 -0300 Message-Id: <20180108154303.6522-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 02/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 cd4a8efdd7..e7dbab2fdc 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, 2), - 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 Mon Jan 8 15:42:35 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: 856876 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="WkTVtfZb"; 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 3zFfht3Czfz9s4q for ; Tue, 9 Jan 2018 02:44:30 +1100 (AEDT) Received: from localhost ([::1]:41216 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbA-0001K5-E8 for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:44:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41640) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZaM-0001DP-M9 for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZaL-00074j-M0 for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:38 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:38570) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZaL-00074U-Gl; Mon, 08 Jan 2018 10:43:37 -0500 Received: by mail-qt0-x244.google.com with SMTP id d4so14068675qtj.5; Mon, 08 Jan 2018 07:43:37 -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=pRZ5+8t9K0SBXbK27mqzP5criiKp2EjgQFm/Ifni1+k=; b=WkTVtfZbayNc/NG9GxZXUNoYX0RWjOhNFFEXeC95SwpgYcgTqy4nQ1JZV3sP94lsEq 8Ma7UgblJ5VoBrNyV2dLJSOBYp275f6PuFDxYgL4PxcQtiII084e61ITHf57LXScOSra ZJxhHX1vRJPOG/zIdxJhFF0WX8y//GaM88Ydf5p9BB7ZDlxOJY2Xc5ttQ8+SiNHe2B75 WyU/wKBw5Z26n1eclh63YnU2pyBoJ6zEJDdYQptqf9Zu6lxQH2tlzWF5nWWcOBcxTeTG Y7rs3QBua3dFt8AYNLNwvXgf1SLbh0iUZyWyQcmzX+GP3OjLQPAhfH9ogInoJ3HJw3FX xYtg== 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=pRZ5+8t9K0SBXbK27mqzP5criiKp2EjgQFm/Ifni1+k=; b=K3/+o1fWkgtsZyoUPJSgMaQAWwwnrz5Rq9jWVPayaB9ycRQPjVJqnrvNmwe4rb2FK4 jTTX0JsMtEbHzoC/aZ/l42bDSvbWopWITcdbjl2PUcbdfJU/umQpeNZo7EEx+eg24qzH P9NlcguC4ZVvdte4UL/TuwSdi3ZPvuNr/n+vbBMQ9MmShQzdD+xmBZ7TeX0C9QicMq+d X740QVZcOCj3fnuAtHbJ2rKdPgz2EiTV9C2hS/9RWL8gEnRDNC3HMOiwzp/5whZ6UHFJ IlQm+/QpmPcar0zJHFLBU682lX0nRnA65WHE2pY2cryqa3G19r/eVe6qBnsk0PUCQqTr kvnQ== X-Gm-Message-State: AKwxytcnOLZ5eHPAsGfNBKHZAnv0wdYOm3mjtBBVOpN0EACWm90YmKZS 7oKjLTAIKmnNJ7kkFt/xvj8= X-Google-Smtp-Source: ACJfBovIYlKSbof+aoFGqLUmvj2r/oierpRkyAqjwXmo3CGF4FBTD0/OfmN2oO6+QsB3eYOYN5T0mA== X-Received: by 10.200.40.115 with SMTP id 48mr18023741qtr.335.1515426216886; Mon, 08 Jan 2018 07:43:36 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.43.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:43:36 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:35 -0300 Message-Id: <20180108154303.6522-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 03/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- 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 e7dbab2fdc..c78643fe54 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, 2), + /* 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 Mon Jan 8 15:42:36 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: 856879 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="LmEne42/"; 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 3zFfmN2m5mz9rxj for ; Tue, 9 Jan 2018 02:47:32 +1100 (AEDT) Received: from localhost ([::1]:41246 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZe6-0003xg-Ap for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:47:30 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41701) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZaS-0001Hf-KK for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZaR-00079e-2R for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:44 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:43533) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZaQ-00079H-TK; Mon, 08 Jan 2018 10:43:42 -0500 Received: by mail-qt0-x242.google.com with SMTP id w10so14068148qtb.10; Mon, 08 Jan 2018 07:43:42 -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=HWQWhGWtMmZ88ewit7xq+LWBjgBXVuNpMGsXmtIA4Js=; b=LmEne42/j3jw95OdiTsem/09T/3X5PtTWqh4ObG1ohdixh7TgJtZ9+ZqVrxcxN08KU 3GaZf9YgPCvMQrW1OKJce/4zAWIVAQ3+4g6ZNCrEKT2QRbJiNsW7LiIX5t3+b28P8eDg bb3DCfommJY5G3rWFZ4X0PyE+A+UXfIKmcqWb4Z5pe3bDNqf0tiHl/WvhzFZyT7qLeKD 56yrwoO8cUqcqzc0o4KvUPG5ikNNxZFv+idxMcIUg9hg/4kQofE5kWBii7wwSEqwU5YV 0LXBILvzBIj/ec3nDWa9YZqG7KL2/NLeglzDHeripbW/jjOpqh8g/08UoxIWp1NBe5jD Cdmw== 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=HWQWhGWtMmZ88ewit7xq+LWBjgBXVuNpMGsXmtIA4Js=; b=ZHAkQzceCKyOT1ixnVXvl6HIsvA7xyGI9+KghxpYejCXi56L64lNVO4gAeXo38jfZ7 qopNIyrkbZf18RPBxHBzVYlPBplasbc6edX7u79E7wnM+Y3EpakXQ7p0RqEGeeU2KSr9 9Qc3MiNQBa8fFKxTlAYftUAO5av4TMJyKTVG1c78XsA1r+hS7NIyFJp8rNuteB1xAo4Z rMMTOmLXc2SMeTpoQM9it1/5C/jM/PsHwNCUxn7FpsyPGe64tAnye7gWdtyCm34mVh53 bwmPKVLYdXFwlE4bJ5ws7T155C2CbesDDnDocB09JeFQI7DsaY3e+auHNZRvdYIK7Ajm PTJw== X-Gm-Message-State: AKwxytfNvjxvYX5H1nxRzzabx/eoHkgWn2etIW076HuGWfEI/OjTtTJc IflioxZ7mlqlSo0eAyjxPcg= X-Google-Smtp-Source: ACJfBoveQBpyasFMlBrDkIGAn1flPToV2B21bfKg9II9aFu1kZBgg6Nag23MdcfB7DKU5xwKzP4HQA== X-Received: by 10.200.22.33 with SMTP id p30mr16440134qtj.284.1515426222272; Mon, 08 Jan 2018 07:43:42 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.43.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:43:41 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:36 -0300 Message-Id: <20180108154303.6522-5-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 04/31] sdhci: add clock capabilities (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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- include/hw/sd/sdhci.h | 2 ++ hw/sd/sdhci.c | 52 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 2703da1d5a..c1602becd2 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -103,6 +103,8 @@ typedef struct SDHCIState { bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ uint8_t spec_version; struct { + uint8_t timeout_clk_freq, base_clk_freq_mhz; + bool timeout_clk_in_mhz; uint16_t max_blk_len; bool suspend; bool high_speed; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index c78643fe54..05681c86d6 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -46,36 +46,31 @@ #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 clock frequency for SDclock in MHz - * value in range 10-63 MHz, 0 - not defined */ -#define SDHC_CAPAB_BASECLKFREQ 52ul -#define SDHC_CAPAB_TOUNIT 1ul /* Timeout clock unit 0 - kHz, 1 - MHz */ -/* Timeout clock frequency 1-63, 0 - not defined */ -#define SDHC_CAPAB_TOCLKFREQ 52ul /* Now check all parameters and calculate CAPABILITIES REGISTER value */ -#if SDHC_CAPAB_64BITBUS > 1 || SDHC_CAPAB_ADMA2 > 1 || SDHC_CAPAB_ADMA1 > 1 || \ - SDHC_CAPAB_TOUNIT > 1 +#if SDHC_CAPAB_64BITBUS > 1 || SDHC_CAPAB_ADMA2 > 1 || SDHC_CAPAB_ADMA1 > 1 #error Capabilities features can have value 0 or 1 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! -#endif - -#if SDHC_CAPAB_TOCLKFREQ > 63 -#error Timeout clock frequency can have value in range 0-63 only! -#endif - #define SDHC_CAPAB_REG_DEFAULT \ ((SDHC_CAPAB_64BITBUS << 28) | (SDHC_CAPAB_ADMA1 << 20) | \ - (SDHC_CAPAB_ADMA2 << 19) | \ - (SDHC_CAPAB_BASECLKFREQ << 8) | (SDHC_CAPAB_TOUNIT << 7) | \ - (SDHC_CAPAB_TOCLKFREQ)) + (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, + uint8_t freq, Error **errp) +{ + switch (freq) { + case 0: + case 10 ... 63: + break; + error_setg(errp, "SD %s clock frequency can have value" + "in range 0-63 only", desc); + return; + } +} + static void sdhci_init_capareg(SDHCIState *s, Error **errp) { uint64_t capareg = 0; @@ -83,6 +78,16 @@ static void sdhci_init_capareg(SDHCIState *s, Error **errp) switch (s->spec_version) { case 1: + sdhci_check_capab_freq_range(s, "Timeout", s->cap.timeout_clk_freq, + errp); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, TOCLKFREQ, + s->cap.timeout_clk_freq); + sdhci_check_capab_freq_range(s, "Base", s->cap.base_clk_freq_mhz, errp); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, BASECLKFREQ, + s->cap.base_clk_freq_mhz); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, TOUNIT, + s->cap.timeout_clk_in_mhz); + val = ctz32(s->cap.max_blk_len >> 9); if (val >= 0b11) { error_setg(errp, "block size can be 512, 1024 or 2048 only"); @@ -1304,6 +1309,13 @@ const VMStateDescription sdhci_vmstate = { static Property sdhci_properties[] = { 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), + /* Timeout clock unit 0 - kHz, 1 - MHz */ + DEFINE_PROP_BOOL("freq-in-mhz", SDHCIState, cap.timeout_clk_in_mhz, true), + /* Maximum base clock frequency for SD clock in MHz (range 10-63 MHz, 0) */ + DEFINE_PROP_UINT8("max-frequency", SDHCIState, cap.base_clk_freq_mhz, 0), + /* 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), From patchwork Mon Jan 8 15:42:37 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: 856880 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="U9ofv5qc"; 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 3zFfmq1my1z9rxj for ; Tue, 9 Jan 2018 02:47:55 +1100 (AEDT) Received: from localhost ([::1]:41254 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZeT-0004GH-6N for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:47:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41740) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZaX-0001MA-5W for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZaV-0007Dt-RJ for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:49 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:44638) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZaV-0007Db-M4; Mon, 08 Jan 2018 10:43:47 -0500 Received: by mail-qk0-x242.google.com with SMTP id v188so14616595qkh.11; Mon, 08 Jan 2018 07:43:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+vTQqOxYTzbAsYf8IrzRmG6cLGyqRv5XVXQacX/jIQU=; b=U9ofv5qcuowCLuSC9nxstowc55vAFJ8rnfl3ZHJhn9kAFDqBCnTZMFPGvG/aghU1YH PHA8kVwDNUOd1A+jfN32+Be9pPzgIN/6TK1764DqERIedDqVDFNrsXibX6c6jFyC0ypT +QVdC5hou9a2ht02dFhWERs8PihcW/EkW0UPQRKSry1sgCgkmwyOVXdYuwO7NqZJbkde 9IOVagQpO9aWFPsYdniXDtrBek0cn+ftrFHdJsHvHoxHfgvF0OFMwbZtt3/MkZLf5wqS HDWllBoCvSNXWRSrXk2B5GeUQtRQIFwB8l9LXX2TFa7CPiMMDiam8I25E+F6SxAK8TLg jl6Q== 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=+vTQqOxYTzbAsYf8IrzRmG6cLGyqRv5XVXQacX/jIQU=; b=WpNW22/AoQhmKoYbQOq4dG/a8wUSu2e7udibLWMd1ZlnilGgYRcIJr5Z4DoIrXBHK3 Ctm9IWZo6g4kdk9YD6vuN+M+5rpUlQrCmtvx6Jud/cYmah8TgJtHW6b3IjyMGonXl5Q+ kvIxJ3zuwLu7TWJUlx/iSP24AYzLp0vhY/reosQUNelfRqeR4ehUdPio82frdFPqU8Jt 5OBB/1Pmw6xmO+ptw99mL4cPqnQTJq+cgWqnPIckSejzUSEbMQeiF1gVBdzA6emEp2bN z7CSt5U85a/PVbUqEz5eqwCcR6eDawXrDNKLGcgF3Q1bAdMUI6+75NH1AQiw0HrHZzxo S6Zg== X-Gm-Message-State: AKwxytcBLY9A+EeBzCryNeg2W01YjWVBvkrHfz6Ff9DZYGlyvyM7R0B+ 67+pwcw1Uy7EoxDeDFmy1ac= X-Google-Smtp-Source: ACJfBotffiHSwvN2J6WGjlrOFpwZCazr0CbmdDYLHinSlSwtzvk84DLybK4l14PBfzKlQ1on+TDA/g== X-Received: by 10.55.162.140 with SMTP id l134mr17011401qke.124.1515426227043; Mon, 08 Jan 2018 07:43:47 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.43.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:43:46 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:37 -0300 Message-Id: <20180108154303.6522-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 05/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 05681c86d6..56466e0427 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 Mon Jan 8 15:42:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 856882 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="s+MecAyC"; 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 3zFfrH4shqz9s9Y for ; Tue, 9 Jan 2018 02:50:53 +1100 (AEDT) Received: from localhost ([::1]:41279 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZhK-0006oi-9E for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:50:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41833) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZah-0001W2-9A for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZag-0007KF-IU for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:43:59 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:38415) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZag-0007Ju-DH; Mon, 08 Jan 2018 10:43:58 -0500 Received: by mail-qk0-x242.google.com with SMTP id j185so3819379qkc.5; Mon, 08 Jan 2018 07:43:58 -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; bh=TGk1y1NgAOHx6z2oAsS3h8NgRi9Cia8aMOVFgxSLVKI=; b=s+MecAyCiSXvlbRwV+HKJPB5HxLcf1CqlyuUoCHDB4TVC0vW7QemwWLudQghgDUQZR WkBScC1Zoxu+f1eaQreGtIKBuEGL75muwmGfLMiWxgRDKinZ/XJkEHURj+77seT2PGqX scwSU2ccVp9wdCg0Db1y0KnseHanMmOqasuvcoXsrRkSnpr2i1LZd5/LNuv5L2ZvaDgq iDTyA5Bp6y6V8Zv8v6TvEF1r4QVOdaipAiGs0e29ord31NIU+xfv4nuNkl3+YlmLn04G Yi8eU9/Hpq7L69aitRqwuzT4+sMnMdj5OG/t3PAublJUTZFDog4ln2eoMdF9rCtf09l+ lnvA== 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; bh=TGk1y1NgAOHx6z2oAsS3h8NgRi9Cia8aMOVFgxSLVKI=; b=h1qCzGD3UQEF1mqsQC3szXmejs5b6z0Lz0hdcsCwNPx1H2Ra8rpMZ8keZe1B47uAK4 KfVLCWnLQkpeKWbdciVQPD5gTKvxKOl2o0RpDNpP3rUVhk8GU5/BqOXo9iVT3lkCunpC UcSbquzj9L4Ift7a/H882mZ4Bj9GYAsUxChT0sOrow1jqf6OjprhDVY614wzThCJD/De DFpH73m0OiQXQFhtkMGl52w1A0EiN74rHnJSHfUQS3ZH596jPb4K+qQUInhXwzoZn+cW x5HfZSDYFY15B5UycBdvL1lzODQbe9vcDp1i7yO9R9iW3FNwZhsqOrx3xfqDXa1Ih0zd 3tIQ== X-Gm-Message-State: AKwxytc22hz+Ibqy+BFYuuZVNDO0hmwkuLQW3V7ZJy23ofRFyenvbrGm ilJhDtGNPxj8rY36RtgFxTA= X-Google-Smtp-Source: ACJfBouZr+QCl19CnyNMlKU+6+Pr+Lkp2bP+UQxvvEwJmAHvKagNcvpHbwJPKXbiX/qvDjYnpo7TGA== X-Received: by 10.55.144.7 with SMTP id s7mr15397111qkd.65.1515426237913; Mon, 08 Jan 2018 07:43:57 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.43.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:43:57 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:39 -0300 Message-Id: <20180108154303.6522-8-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-1-f4bug@amsat.org> 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 v5 07/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , Peter Crosthwaite , qemu-devel@nongnu.org, Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 --- 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 88052fcc44..83b027a3b6 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 Mon Jan 8 15:42:40 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: 856886 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="KyEaMtNd"; 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 3zFfvl40j1z9ryr for ; Tue, 9 Jan 2018 02:53:55 +1100 (AEDT) Received: from localhost ([::1]:41316 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZkH-0001Ef-Kp for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:53:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41892) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZar-0001gq-Ae for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZal-0007Mr-Qx for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:09 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:40851) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZal-0007Mb-ML; Mon, 08 Jan 2018 10:44:03 -0500 Received: by mail-qk0-x242.google.com with SMTP id d18so4237163qke.7; Mon, 08 Jan 2018 07:44: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=JWZ8HlKLq+8kAy3ZqkdbutRr3Hy1eGe4GtaKz3+J8fY=; b=KyEaMtNdEY/BNq5turANAMpipT3nZ/QL5VCGuulNUNJxkk0jD0SQrhbbwmtyXauKHy M4kMNzjXnpPEmZWjM6Jwng/1Gt3uE7SwM+7nSWgZ4fGTtove48ZjHMsM8II1/BFkY6pl oA6zdCoe4m5QrT5zemuigF2kO5BFdoUbrjRrJtt38Ldk6aPJHqLZTAF1LnrU9xcvGYAc 9vp2ZcciMhiLH3fh99/eMfHZkAizjSfR+PfSfsK/tkp5P83RkN+Zbqu/nXbJsoSwceX9 HJjE5NUrfzz3DrfR9EjIp7jv+U5U3fRsPmf9j5DqY8NPLdSuygB+THrZIIJDdtkav6EO WD9g== 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=JWZ8HlKLq+8kAy3ZqkdbutRr3Hy1eGe4GtaKz3+J8fY=; b=oRuaHIA+sLAkvOXuY5TKCCXoqfrxDIF5+Wnink+zXhDe9y7jq6XTtx9186zmbmyGci bpPdbp3Z5tvmVinBGdsQ3zyHq6zOdKDaS/FTawOGJRl8mQ+RTzRcx4VYw1da4xQrwZwE vNCi+XslmN8jPXcLTVY3HiLpRJAVEtjlY2tUQwPltFzMKVwZPvcBB393fMiN32xvREcs 46A2NerM73Mps3TJfCfvNBTthFQ3iNVCNpjluIq/wVjhh3jivX7OHAlOu3mjo4R6J7EQ pEiOLcx32eftPcJcBxgh1UCL42B4E/xr0UUVUnKFL/rzkYMG7OWG4SxO4lG9UDMIcPTE J5Cw== X-Gm-Message-State: AKwxytd0Qo5WXYJ5GUhhiYc59bw5F3eS1kaipqkOzdC7e91UgcnAlWuY LDZJScCilPgZkXyvvxeSBC0= X-Google-Smtp-Source: ACJfBovDtIhbk5WGoiydBvAPaoY2Ubixar2PGuxH5cXpNGqTFr3Dr1d7PYZ8jnjREejTjRzlR7BZ5g== X-Received: by 10.55.113.197 with SMTP id m188mr17415641qkc.15.1515426243182; Mon, 08 Jan 2018 07:44:03 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.43.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:02 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:40 -0300 Message-Id: <20180108154303.6522-9-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 08/31] hw/sd: clean/reorder the Makefile adding few comments X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/sd/Makefile.objs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs index c2b7664264..0fe2501017 100644 --- a/hw/sd/Makefile.objs +++ b/hw/sd/Makefile.objs @@ -1,9 +1,14 @@ +# SD/MMC subsystem core +common-obj-$(CONFIG_SD) += core.o + +# SD/MMC host adapters common-obj-$(CONFIG_PL181) += pl181.o common-obj-$(CONFIG_SSI_SD) += ssi-sd.o -common-obj-$(CONFIG_SD) += sd.o core.o common-obj-$(CONFIG_SDHCI) += sdhci.o - obj-$(CONFIG_MILKYMIST) += milkymist-memcard.o obj-$(CONFIG_OMAP) += omap_mmc.o obj-$(CONFIG_PXA2XX) += pxa2xx_mmci.o obj-$(CONFIG_RASPI) += bcm2835_sdhost.o + +# emulated SD/MMC devices +common-obj-$(CONFIG_SD) += sd.o From patchwork Mon Jan 8 15:42:41 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: 856877 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="tCVao7Si"; 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 3zFfjV1CwWz9rxj for ; Tue, 9 Jan 2018 02:45:02 +1100 (AEDT) Received: from localhost ([::1]:41224 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbg-0001lQ-0O for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:45:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41907) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZau-0001jG-3O for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZaq-0007Ql-Pz for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:12 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:46510) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZaq-0007QS-L9; Mon, 08 Jan 2018 10:44:08 -0500 Received: by mail-qt0-x241.google.com with SMTP id r39so14068374qtr.13; Mon, 08 Jan 2018 07:44:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+1tN3vBG8qhr/BXrox+jHRQOEKUSwa3Ij3Y0ZHNFJqM=; b=tCVao7SiApL9ruOMAGxn1sbmIX9ST3rc66vDm6wx1LU7zXGqvEverF9/HnbzeK1o8l XVhNrW1koncLxwnfW779CE9IQLxJd7SDBITMWLgbV280O6eGUB7y2mI40bdqCHK6Chr0 NF/Kjfxnc925Aq4MMyQcsli5PoH2NErWYpQFS0wgU8m/yrbEfQ6KdvIxt+0jpAtqNnIR H0wEuYSBt3i4/SreAa+FUU79TVkLD+tFjQr5ZTmSntTyK1zHhCP0bLq2BmW165CN4bV/ j9412XRBZYAyQZ0ktmeYHsAOvn6C9QyHTPWtZ+srAUge2pUFP1DOSsilDC9t6WG6Urvb mI4A== 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=+1tN3vBG8qhr/BXrox+jHRQOEKUSwa3Ij3Y0ZHNFJqM=; b=PQhOtCriDtKcj8rUHK1QFzsSGa+KD/3HWYkh+5EuGELV6OCYA7Tm6qr5qTUqhuG7DM 2EFakSLJeVl61KnL22vmPqqKIL/l6N93d23TyYHoClj/neFT9NoDxnJLCJYAr7u5gNCz RG1ltViTsWZ1oL451JCKh5+BHovRZWlFv50v+a0ZAX31bUx2Fz+UukaMoaYagAp6C0Aj VIfc4zrdQ3KAMD3kbuEnoLByodbY5z7EEUAOqkAuKHg/JjKXGHB6QAa25fgNJmB/bepB V6E02r8/VtVt4vGckMq5ld2Yg4nYm/Bonhww5rpCyjGZq/bNx8B1W2hIB8g+32Md2HU1 Lhbg== X-Gm-Message-State: AKwxyteVpeCEKqiRchhMF/VnJTKUEjDYi0v68wUr+idxIuMjDuSCDwH1 Lbti8+651FSONdGV8XsSSWw= X-Google-Smtp-Source: ACJfBou2v8kwYWUDQwyLdr3qJLuXcnaKtbo7/p3sekwk9V85Zl59eMloLhCaXJzJTA8hHEph4ay2Ng== X-Received: by 10.200.40.115 with SMTP id 48mr18026211qtr.335.1515426248098; Mon, 08 Jan 2018 07:44:08 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:07 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:41 -0300 Message-Id: <20180108154303.6522-10-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 09/31] sdhci: add a common class X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" so this class can be inherited. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- include/hw/sd/sdhci.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 4a9c3e9175..a80b7c0424 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -124,4 +124,16 @@ typedef struct SDHCIState { #define SYSBUS_SDHCI(obj) \ OBJECT_CHECK(SDHCIState, (obj), TYPE_SYSBUS_SDHCI) +typedef struct { + /*< private >*/ + BusClass parent_class; + /*< public >*/ + DeviceRealize parent_realize; +} SDHCICommonClass; + +#define SYSBUS_SDHCI_COMMON_CLASS(klass) \ + OBJECT_CLASS_CHECK(SDHCICommonClass, (klass), TYPE_SYSBUS_SDHCI) +#define SYSBUS_SDHCI_COMMON_GET_CLASS(obj) \ + OBJECT_GET_CLASS(SDHCICommonClass, (obj), TYPE_SYSBUS_SDHCI) + #endif /* SDHCI_H */ From patchwork Mon Jan 8 15:42:42 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: 856881 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="M1Hs0fNe"; 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 3zFfn34tZHz9rxj for ; Tue, 9 Jan 2018 02:48:07 +1100 (AEDT) Received: from localhost ([::1]:41256 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZef-0004QL-MT for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:48:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41946) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZaw-0001lr-Nr for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZav-0007Sy-PD for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:14 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:46481) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZav-0007Sn-KF; Mon, 08 Jan 2018 10:44:13 -0500 Received: by mail-qk0-x244.google.com with SMTP id l12so14284349qke.13; Mon, 08 Jan 2018 07:44: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=S8WgP9d8b8vzBjL9L41DgSGepEXam+f5vAbsynfjV8o=; b=M1Hs0fNe3zlL4hApieVc7AOt6uEYxIoyG7xpaxujEB/IA00Ppy9AfVWjCvwzM6lVHC I2ijwi5LumhJTdO08y2dd81rR9QI0q52/hFFxlJFf7VaksHtvibUNM0QVfn1G9xLBfO4 UzQpi1PYHJAIVc+z1V/zWD2goNfNF6KcSIu4uHB4eBv8qcA0e4D5JnhOmk1PoiyvS3pt w8fDieXmaPusWuGGk8oOkyiS9gCT+2j2Ft9XTHtUgKs7X8EuOIeWQwyU3f9pBVYr2KLN YveYoL6LeermNln8jl+Muaq1vpyVbX0WtMI+8oKdR8lB8mS6s+8OZ1pzridC6/w0lfDf mf4w== 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=S8WgP9d8b8vzBjL9L41DgSGepEXam+f5vAbsynfjV8o=; b=uO0XEt5wOkYFhWu+HGpblcYz68zoSSAAr2S9V/yDT0ubhbt5Z6B3hQtS3lCi8ue0CT 2lrBm6x9v77k5Oy8HB6PgrfUW13LLHks5Qcgg+MwX0LPgAOMrJV/u2y2ltItPE8Bf/Cz pB4WY/+B1aNSZVq1mRClwgzcFtNYpl9FmOM8yWDMLpOTwcgOI2U8N+ZnPR1Mz/Ge9dFN CSoh/BQ2QHtpdRhX5ZU26IM6Mdi/qrFQM+15WF3k5hgWvuAp9ecYYxWVHdrRkgA8XeBx de0Mm6Gr7R9gDZcOcE/kzGs2PEM0Zjz+wGiQUoaIRKM8olQCXjL//F40q7Gxv4T3lQUv +Lsw== X-Gm-Message-State: AKwxytcRGjACSzAnwrxnXAf5D+BIA2Ewtu5SpipJVshXOBZZ11Ay0mqW 4/UDzMxb99Me0nqf5F9JVrE= X-Google-Smtp-Source: ACJfBosAJ/mqoN8lNiXcsv/fzuzmKMO2sXlMeE6PHWcLwe8FdwT+b4Gg9TlKk4O8Z8/AfjyciV3tpA== X-Received: by 10.233.244.75 with SMTP id z11mr12286qkl.68.1515426253055; Mon, 08 Jan 2018 07:44:13 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:12 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:42 -0300 Message-Id: <20180108154303.6522-11-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 10/31] sdhci: add a Designware/Samsung host controller X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/dw-mshc.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/sd/Makefile.objs | 1 + 2 files changed, 65 insertions(+) create mode 100644 hw/sd/dw-mshc.c diff --git a/hw/sd/dw-mshc.c b/hw/sd/dw-mshc.c new file mode 100644 index 0000000000..c2869cd569 --- /dev/null +++ b/hw/sd/dw-mshc.c @@ -0,0 +1,64 @@ +/* + * Synopsys Designware Mobile Storage Host Controller emulation + * (and Samsung Exynos specific extensions) + * + * Copyright (C) 2018 Philippe Mathieu-Daudé + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * (at your option) any later version. See the COPYING file in the + * top-level directory. + */ +#include "qemu/osdep.h" +#include "hw/sd/sdhci.h" +#include "qapi/error.h" + +/* Compatible with: + * - SD Host Controller Specification Version 2.0 + * - SDIO Specification Version 2.0 + * - MMC Specification Version 4.3 + * + * - SDMA + * - ADMA + */ +static void exynos4210_dw_mshc_realize(DeviceState *dev, Error **errp) +{ + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_GET_CLASS(dev); + Object *obj = OBJECT(dev); + Error *local_err = NULL; + + object_property_set_uint(obj, 2, "sd-spec-version", &local_err); + object_property_set_bool(obj, true, "suspend", &local_err); + object_property_set_bool(obj, true, "1v8", &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + cc->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } +} + +static void exynos4210_dw_mshc_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_CLASS(klass); + + cc->parent_realize = dc->realize; + dc->realize = exynos4210_dw_mshc_realize; +} + +static const TypeInfo exynos4210_dw_mshc_info = { + .name = "samsung,exynos4210-dw-mshc", + .parent = TYPE_SYSBUS_SDHCI, + .class_init = exynos4210_dw_mshc_class_init, +}; + +static void dw_mshc_sdhc_register_types(void) +{ + type_register_static(&exynos4210_dw_mshc_info); +} + +type_init(dw_mshc_sdhc_register_types) diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs index 0fe2501017..fd866d7f94 100644 --- a/hw/sd/Makefile.objs +++ b/hw/sd/Makefile.objs @@ -3,6 +3,7 @@ common-obj-$(CONFIG_SD) += core.o # SD/MMC host adapters common-obj-$(CONFIG_PL181) += pl181.o +common-obj-$(CONFIG_EXYNOS4) += dw-mshc.o common-obj-$(CONFIG_SSI_SD) += ssi-sd.o common-obj-$(CONFIG_SDHCI) += sdhci.o obj-$(CONFIG_MILKYMIST) += milkymist-memcard.o From patchwork Mon Jan 8 15:42:43 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: 856883 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="Oef6H/zE"; 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 3zFfrZ2yTRz9s9Y for ; Tue, 9 Jan 2018 02:51:10 +1100 (AEDT) Received: from localhost ([::1]:41297 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZhc-00076e-CA for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:51:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42016) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZb2-0001rM-ME for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZb1-0007X3-W5 for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:20 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:46512) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZb1-0007Wp-RP; Mon, 08 Jan 2018 10:44:19 -0500 Received: by mail-qt0-x242.google.com with SMTP id r39so14069237qtr.13; Mon, 08 Jan 2018 07:44: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=8HpQu2bWF8IQpWCPLuKLgYH+jB8N2ED1FIN0AVDOkMc=; b=Oef6H/zEBxzpZpZIn7KQhChBXIrNPo9R6ZeWzGgehMiOIFWyI/rsGk+3hb1SY7loCf x6NTF8VeLQbkiK33uEfgIZ+dv8vwNJRsTQnjQZyBzhDrlFiR21T5LcR2/OJvLdsSWXBt 3f1bSbmnExkSBcjQo+JsOUbgx8iQ/K80yjfdej36JX6x5nVtmtHay/Tf38Oe4/e8o92A fMz7ck52yoC3rgbcKixd599OEJPFRHXN/fvXBdKego01fs2Rdsf/u3jK8qcwVO3oPKLk eUIXNGsiyB9GXx7d0ESWFHgh807Fs3fZdz74bhwzW0BtPcpYpSbFOYpTKI5wJfTSWVEf Egdg== 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=8HpQu2bWF8IQpWCPLuKLgYH+jB8N2ED1FIN0AVDOkMc=; b=rciJO/BiS/qOQ1lBBmHMDxWp0zEtuoNABQMVAFcFFdw9vRFQ5oi1yTX5+TbpjsXhZG 0ljeNfHfMBMC+mRGvO/jjAeAFW3/NHowCsiPtmfnd+0oLPyL6S1MRgE6JsH8tqEWI17+ FRea4cQjE5rtyL+1bjZImN+A2h4VPnuQaCKNqHvXBgnfC9v4ErzQqQxeqzLkLdSyAWeh tsrSB7fMnCmFRl23apG2hJ2cWSEm/A2GqBpYbJtpvI1K8W7CdQFHP85x41aYaKjhEHkM LIEGW4RWGzfIwHwxrgTVRIxVMsJX17VIoEqyBGuAjAE7ms6Tumc5TvbWCv88vVJNJInl wK4A== X-Gm-Message-State: AKwxytfuAiKfZscRfrIMTrkHVHO1x72+Ba31a8e6s8I+847enkjxF+I4 VA+3EoZFDB+UvbrhyXdwt/Y= X-Google-Smtp-Source: ACJfBovGFLxlcluN/837jBv5petcmKAj+kYkXNa/27PnoXk3LUq93LMTvMDFQ+5uKPFm2vY0xN33Qg== X-Received: by 10.200.55.227 with SMTP id e32mr15466893qtc.227.1515426259302; Mon, 08 Jan 2018 07:44:19 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:17 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:43 -0300 Message-Id: <20180108154303.6522-12-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 11/31] hw/arm/exynos4210: use the "samsung, exynos4210-dw-mshc" device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/exynos4210.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c index e8e1d81e62..eb95131221 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,13 +376,10 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem) BlockBackend *blk; DriveInfo *di; - dev = qdev_create(NULL, TYPE_SYSBUS_SDHCI); - qdev_prop_set_uint32(dev, "capareg", EXYNOS4210_SDHCI_CAPABILITIES); - qdev_init_nofail(dev); - - busdev = SYS_BUS_DEVICE(dev); - sysbus_mmio_map(busdev, 0, EXYNOS4210_SDHCI_ADDR(n)); - sysbus_connect_irq(busdev, 0, s->irq_table[exynos4210_get_irq(29, n)]); + dev = sysbus_create_varargs("samsung,exynos4210-dw-mshc", + EXYNOS4210_SDHCI_ADDR(n), + s->irq_table[exynos4210_get_irq(29, n)], + NULL); di = drive_get(IF_SD, 0, n); blk = di ? blk_by_legacy_dinfo(di) : NULL; From patchwork Mon Jan 8 15:42:44 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: 856885 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="oezXG1RK"; 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 3zFfsJ6Bbzz9s9Y for ; Tue, 9 Jan 2018 02:51:48 +1100 (AEDT) Received: from localhost ([::1]:41309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZiE-0007bx-TP for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:51:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42132) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZb8-0001wR-9I for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZb7-0007b8-4S for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:26 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:37218) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZb7-0007ai-12; Mon, 08 Jan 2018 10:44:25 -0500 Received: by mail-qk0-x242.google.com with SMTP id p13so14634612qke.4; Mon, 08 Jan 2018 07:44: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=Lh7AjuqAV7rVDlwHYf3MCmQ/+c0qD/eTYi1lc8ZliHM=; b=oezXG1RKL7LQNgpN+eeFRV1hSRly/W2OUzyQw1cUqPdpSK2mLIYfyKvGNVoQ0iULVR 6qWkluEutT3vMcQ8pTUnKygi+ibyciD7KGltKI0rrD4AaoIXZ7QdYXZz/rOmgWiy+rbx 3XqNNBI+9Y2PLHnjg3NWdA+R1oyGv/wqOpL+ORFnHfCKwh6zLjQfy/ctDA0mHkpSdZpt XtUrByx0WLhtHqBprWB2caLwejtfkqEjMCDgSNwQJKRe5NVbc8Gy6qnV33jdxRDvqwJg m5w47G42UIWNNhu/Yxlf8agcRdqETEBrAYtUu4Wck2KThXbUUcyKURIOeS4ZDF4qgsXw THkw== 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=Lh7AjuqAV7rVDlwHYf3MCmQ/+c0qD/eTYi1lc8ZliHM=; b=FOfbFRFNTKmz5+C5ANr/+ZqVAdyyS7LBSiaKsnnaIfMbpTV1qolcqCvW7PqciJJcDH nF+vrRue6DWvbHPX+I2/uMuBaZnlQYEPEzhvL7KRPDjWO+U2mJDCS5svAMvnVbdpXH9X qXR5kEV7k8sEdXQVJou1pcSXY3GFnOLCcNwOU08p01kxCw6LPi7VqR12RJYaETmox42A zdPKl7HyU+tFF+NtkwAUQkGT3D4sZE+yDW/BZzIxHaj5FdBA4acxdQYaUEfOPWGbezdx GZHVzlXTQ949xFBmn0SgGcSSnnwm+stwAutgeKraF03seuZBaB5GZ15DVnlz1oEvQr+g 5RKg== X-Gm-Message-State: AKwxytcOAm8raRPU4rDaQzInUcs00UWFAsc7zDVMsFxNWjuaE1jJnzvn 1SUhcYKIR1ZMlV2pWaT7xXnjuFdqAas= X-Google-Smtp-Source: ACJfBosk17HVss3V0VvKHBSwXANNQqc3iFt3A+11Fi4zDPVCORYIheZ/pGgYIq9H754IOBYma9yNkg== X-Received: by 10.55.214.150 with SMTP id p22mr13928814qkl.134.1515426264390; Mon, 08 Jan 2018 07:44:24 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:23 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:44 -0300 Message-Id: <20180108154303.6522-13-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 12/31] sdhci: add the generic Arasan SDHCI 4.9a PHY controller X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/arasan_sdhci.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/sd/Makefile.objs | 1 + 2 files changed, 73 insertions(+) create mode 100644 hw/sd/arasan_sdhci.c diff --git a/hw/sd/arasan_sdhci.c b/hw/sd/arasan_sdhci.c new file mode 100644 index 0000000000..c6d96b2583 --- /dev/null +++ b/hw/sd/arasan_sdhci.c @@ -0,0 +1,72 @@ +/* + * Arasan SDHCI Controller emulation + * + * Copyright (C) 2018 Philippe Mathieu-Daudé + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * (at your option) any later version. See the COPYING file in the + * top-level directory. + */ +#include "qemu/osdep.h" +#include "hw/sd/sdhci.h" +#include "qapi/error.h" + +/* 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) + */ +static void arasan4_9a_sdhci_realize(DeviceState *dev, Error **errp) +{ + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_GET_CLASS(dev); + Object *obj = OBJECT(dev); + Error *local_err = NULL; + + object_property_set_uint(obj, 2, "sd-spec-version", &local_err); + object_property_set_bool(obj, true, "adma1", &local_err); + object_property_set_bool(obj, true, "high-speed", &local_err); + object_property_set_uint(obj, 1024, "max-block-length", &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + cc->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } +} + +static void arasan4_9a_sdhci_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_CLASS(klass); + + cc->parent_realize = dc->realize; + dc->realize = arasan4_9a_sdhci_realize; +} + +static const TypeInfo arasan4_9a_sdhci_info = { + .name = "arasan,sdhci-4.9a", + .parent = TYPE_SYSBUS_SDHCI, + .class_init = arasan4_9a_sdhci_class_init, +}; + +static void arasan_sdhci_register_types(void) +{ + type_register_static(&arasan4_9a_sdhci_info); +} + +type_init(arasan_sdhci_register_types) diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs index fd866d7f94..ef0fc3d3f7 100644 --- a/hw/sd/Makefile.objs +++ b/hw/sd/Makefile.objs @@ -3,6 +3,7 @@ common-obj-$(CONFIG_SD) += core.o # SD/MMC host adapters common-obj-$(CONFIG_PL181) += pl181.o +common-obj-$(CONFIG_ZYNQ) += arasan_sdhci.o common-obj-$(CONFIG_EXYNOS4) += dw-mshc.o common-obj-$(CONFIG_SSI_SD) += ssi-sd.o common-obj-$(CONFIG_SDHCI) += sdhci.o From patchwork Mon Jan 8 15:42:45 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: 856887 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="KKaCCKSL"; 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 3zFfvw1yGSz9s82 for ; Tue, 9 Jan 2018 02:54:04 +1100 (AEDT) Received: from localhost ([::1]:41318 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZkQ-0001PZ-At for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:54:02 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42187) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbD-00020k-3y for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbC-0007eb-5k for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:31 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:38935) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbC-0007eO-1Z; Mon, 08 Jan 2018 10:44:30 -0500 Received: by mail-qt0-x243.google.com with SMTP id k19so14107212qtj.6; Mon, 08 Jan 2018 07:44: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=dctjlJrLf/olfOPXWL5Ft0nhp9i7UsrVEwFlGfD+eoA=; b=KKaCCKSLJr7NSOI6QZ72TsA+Rb1MA0kZrdi456ruSnsJqsX34UfBU60L4Q8a0gMRkl 3Km4e5SDS7160fdjB8dSIEh6uIk+tpC21Itm9s2aRLrbSq5FmKD9OM77hetytuvW+H/q sFmUb/FtwSs8lueL+MWXp8Pkz98OOuVttKsR/StbLBAmD2gE4yVyXyjsGnRwMtDF6Pam 5uPuPG1Lg+JtgaLvdjHED4Xwu/D0VYR0pxJlh476apRCwpRfJrN4X4fc+c7VFR5FupB1 1yEkIg2z65c46EQMI3E3GiWqXUdN6eG6SothtIIGkd3HDX80AmK5Zmnlv2I0qeT0Oio1 3kAg== 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=dctjlJrLf/olfOPXWL5Ft0nhp9i7UsrVEwFlGfD+eoA=; b=S0kgObsw9M9R5TZQG3JyOHA+NBOqiHHez1/Ojj07j4B5byDqn3UH4N54yMpAdZ4Zum +/AWPpfEoKOoMJ+pPpR6bx/9plkjz3VCpL8gUUQvg3QK8veyrOPT6eWu+dAqGf5Drirg OqfmCtIonU9N/5wlKVtaub+CoG/q7Td50ohznwrnvf/nC/i2sJE/j9hZuwIaJiABwia+ iJqs7b4Ii/bK/NL+kZFxh3z1nKEEkNecXMvxM+rltEzUtk7rJgHrDyE4xzTJ9ne341Et aoWhTzohZ5fevXQEYu4BW1uaEBYiijiax/0LLboqerqhFJJMJxcXgy5kXk1vFTmrT9Du mPiA== X-Gm-Message-State: AKwxytdAOpiGuJyiaQNTJpvBzlO0KRvzcmyuGsP9Gdj+gG1ttONZ8QBN glz7VMyGmOWyewePpz0pmwk= X-Google-Smtp-Source: ACJfBov33jNaNxwI+e/eoyRANr81HOCFFIJCZjdNYII8u6joA3eDtw9Bhk6PZPqySukHHjYzBTxzTg== X-Received: by 10.237.33.243 with SMTP id m48mr16593933qtc.87.1515426269501; Mon, 08 Jan 2018 07:44:29 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:28 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:45 -0300 Message-Id: <20180108154303.6522-14-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 13/31] hw/arm/xilinx_zynq: use the "arasan, sdhci-4.9a" device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , "Edgar E. Iglesias" , Eduardo Habkost 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 | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 1836a4ed45..55872d5678 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,22 @@ 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; + + dev = sysbus_create_varargs("arasan,sdhci-4.9a", + hci_addr, pic[hci_irq - IRQ_OFFSET], NULL); + 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 Mon Jan 8 15:42:46 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: 856888 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="dh2hIE18"; 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 3zFfwS1QTdz9ryr for ; Tue, 9 Jan 2018 02:54:31 +1100 (AEDT) Received: from localhost ([::1]:41324 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZkr-0001vR-Kr for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:54:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42257) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbK-00027S-4B for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbG-0007h1-VS for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:38 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:46514) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbG-0007go-QX; Mon, 08 Jan 2018 10:44:34 -0500 Received: by mail-qt0-x243.google.com with SMTP id r39so14070369qtr.13; Mon, 08 Jan 2018 07:44:34 -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=Af11vnDqjykM6n6xovmwBZCshQjPkL26d6L6QGpJWq8=; b=dh2hIE18xvnutMSkddNXO2oNkDkMSjGvKFVmNQexhuR97czXZstWJHZTKE/k4gFZZ2 p0sIMTG0egqqrTBBp83UQY8vpiMkKbUtydv0DrEkS83EwGU1P+o9E+q3PwGy0m+wBb1K x6eIzaEAgO52lUtmlSifkQF809+paYJbSjx2yVAytQsp7oqSY5q/g6Omy8kSx/9JErpt DypX6h80KVqVBt+HITyHiFYxJ0hqnRYhX1HUMIM0pMgb4+K0PYhq9ILZa44jZZHPCqWm 1F/bHKMfYwuV4c+4FGledhMGYtP4iQVxXiKPuz0NxD83F64hELtp8adbWpSkBh8Re3hm 0yaQ== 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=Af11vnDqjykM6n6xovmwBZCshQjPkL26d6L6QGpJWq8=; b=iwnpWtQp1CjqkN5KvT4fa3nnkUswzBYpiO8QL9CUjl8i3EdowEusn+2UYLKtgTFkJr zZ6o2iOt7CYlhZdbL6gndBZMR1Z1Qzl6AxEt3vHgak76Ll1LHdPghRxFJIZF5R9NxgaS gu67SOtGXncs4lYgFSYlkyzEN/IeZMkQG4h2NtNCgCcSqkc9b+SZ2IF3dMS8XhIt42DB 90e1tnXqI+qgS7JeTJOGABD2uaFEDHqnKRbg3RTnMxMQsPE5dZI4x0iJZE1lMSnGUQeV WKoiCu1fcKQlNC2tvLAY+Mxc8vE5NCJdKhs4LmamcEKxTsrIx0FYESoQodbm1N7TOwPU CTYA== X-Gm-Message-State: AKwxytcL2Hv897lDIazHudn2XM2tfBGiwwu08GCtIma+fmsTpc+XaxRn WTSi7hWGBdJmu6Pwodj8+zo= X-Google-Smtp-Source: ACJfBou3A+38HBfamveiYbpdIYd0+BxqRw720dnJ53/veNwy5Zajy2eePf7yl4K21YB3C2B3T000BQ== X-Received: by 10.200.43.105 with SMTP id 38mr17554412qtv.265.1515426274291; Mon, 08 Jan 2018 07:44:34 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:33 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:46 -0300 Message-Id: <20180108154303.6522-15-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 14/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 77f8183117..2d7058ca4c 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -357,6 +357,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) @@ -612,6 +613,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 Mon Jan 8 15:42:47 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: 856891 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="gtY9/kYS"; 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 3zFg002Dxzz9ryr for ; Tue, 9 Jan 2018 02:57:36 +1100 (AEDT) Received: from localhost ([::1]:41365 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZnq-0004dU-CD for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:57:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42299) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbM-00029i-L1 for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbL-0007k1-OP for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:40 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:41159) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbL-0007jo-KH; Mon, 08 Jan 2018 10:44:39 -0500 Received: by mail-qt0-x242.google.com with SMTP id i40so14077033qti.8; Mon, 08 Jan 2018 07:44: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=9tBdjDJXOGzE0/3bDjUOVnPkWjcLqrGqZm6bRedvMmU=; b=gtY9/kYSv2atG0vryYD+kfcSis3anzecH2oBblLQXPj1x1UBk83u8JnQ4DCnZkh/qy uofWIsO+NGGZjrNyJDtIxLfQYne58AM5R4eXs2s4izbrZRW0Y26pze48+JzA5ZGXTcBv zqmAHG3xAfNixlPIu44PJaQ9IohLjWm+7LOTp2VlYBYxdztKDg9OXupiM7ntFT58qIcJ AFuO9L9oedOlN/SgCkntstv/H5QuGqaqCoyD6irr5qtdy9P/ezVy6nyK3qPV9v6H22fe nfgDlMJ+kPCYyMyETn2s8HMZplTqGTbw2m7Z3I2LIhvBR69pIXXXSE6FeRtIFJ8GEii6 psfA== 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=q3DqLaFjI/bxgNOJq9ppGVbUgiApBvCj0viupiesum/36zeE32zooy8kqUcb36tGeI nuqdC5un5lP/UtkeHKhwE9EQyxBjwIjXajlp36yX/yYmy+U5wqc647CHmf6mzMntJCtU ywJs/1h05L+TCf6PG4ee9/n401Y9frUgLluzpMpHOntScp9/If4SxFMBRVTS1P47JRSG uBrwE8QVW9yO9+PMr2HJH8IuudS3vsc/FMdRnUofd718XHQzx8S40T8iZ28TG7hSjcBV Zx1/1SCLJoMORGDJnAdw+zg8S6UELe3XBd7fNBF5Epd6RsDfll8gmKDSOyKkiHPgYjxY 8Ttg== X-Gm-Message-State: AKwxytcqDsCTbtbOIUDUObIIY4m5d2egwIz2q/QWVorTtFuStwa2Uqry 6fBAfSMQi9lNtAHJE8LDUrE= X-Google-Smtp-Source: ACJfBovCWuItNbdFj25wEn4Mr9kjqwxI+XH8ntKXhjAex8G1gWy43iv3lAxwn7ROMkZhQ3I5mFblnw== X-Received: by 10.200.34.19 with SMTP id o19mr17779106qto.52.1515426279135; Mon, 08 Jan 2018 07:44:39 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:38 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:47 -0300 Message-Id: <20180108154303.6522-16-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 15/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 Mon Jan 8 15:42:48 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: 856896 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="bbd7YN/h"; 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 3zFg3P3BrYz9ryr for ; Tue, 9 Jan 2018 03:00:33 +1100 (AEDT) Received: from localhost ([::1]:41401 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZqh-0007dp-DY for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:00:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42356) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbT-0002HK-V4 for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbQ-0007qB-Pu for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:48 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:37223) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbQ-0007pt-K7; Mon, 08 Jan 2018 10:44:44 -0500 Received: by mail-qk0-x244.google.com with SMTP id p13so14636088qke.4; Mon, 08 Jan 2018 07:44:44 -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=EJwpKumRD9gYiYna505USDzhj2iRy5QkmG4+ZT5aMBE=; b=bbd7YN/hYIsmfjue7SDKf6cObTIJgTnLY2yAEXsWB5u7GJboj3oJyZkt80aRIg+hI6 e1kYTBsiZJRO0eaWer6BK4T1FMC2fdxz2lpUYw9VQk6TNMl5Vs94S7P8yvmvmzyKGMrH 4azUMHz1bigl1wddX0hIbZl9/20oiYuruMXyp7u6nRT2JLRLJtnXQrYB4JPDqysKl2dk gXsLsbhh0MTDAAGZdSIjfxvo6HgoMqiCIkBkEEpu4Xx9cK9cZ3TxM8K7cQLhwnqbnmzb pmFM7V187/umW7+g2c9czdmJKtkZq9+Ou5Hf6CkPolk5DFL+yGjgE02H97CqZuJBD8X8 onBg== 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=EJwpKumRD9gYiYna505USDzhj2iRy5QkmG4+ZT5aMBE=; b=HlsyyVocdk0O76H/8IdzUHTMtNwZ48Fne/h/eX9kQqjBd/eUPIvLXgTh2H3KaietPL AvbPXTVLrR62/utuS/s0A5xKl6hqgVJdPRnlNn6tYJzUAQuQFnpIjbZiwXxQLR3tS/el e/UQmbsgu5OnJb1d9DBW+qGzluti/XHa/rzyZyXVRaZtjEAwJpkRSDDDXYaeyFIz49Dk bJAc3vtF8y4WI/dD3M2+yZRdjHnGdrxpGtNr2J6QG8DdJIL5N+j7YvPzjY6ndSKNSjdl BQxVhkyFdq1LLyLHlo64FEhkBaGW3uIx1kC4VX/KYEglMJ8ARIZqB+S0HEwKP2wtO6xh nn5g== X-Gm-Message-State: AKwxytfQlxOs1YUrSctaNU6YhEQq3e/ZZBm3NRe+wVxQl+qYonkXEPGS V5WlmKs4cUZaSb1mSOaVyPI= X-Google-Smtp-Source: ACJfBouIsumJjjnoCQK5pVcqpIL+UvZqA2Gb3hMGk9GLxTWEq9NGVRMwFqVU/yxCulzyUrDN+KwjCw== X-Received: by 10.55.201.210 with SMTP id m79mr15420854qkl.287.1515426284064; Mon, 08 Jan 2018 07:44:44 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:43 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:48 -0300 Message-Id: <20180108154303.6522-17-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 16/31] sdhci: add v3 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 | 21 +++++++++++++++++++++ include/hw/sd/sdhci.h | 2 ++ hw/sd/sdhci.c | 21 +++++++++++++++++++-- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index affbe4015c..1da91a27b4 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -43,6 +43,7 @@ #define SDHC_TRNS_DMA 0x0001 #define SDHC_TRNS_BLK_CNT_EN 0x0002 #define SDHC_TRNS_ACMD12 0x0004 +#define SDHC_TRNS_ACMD23 0x0008 /* since v3 */ #define SDHC_TRNS_READ 0x0010 #define SDHC_TRNS_MULTI 0x0020 #define SDHC_TRNMOD_MASK 0x0037 @@ -183,12 +184,23 @@ FIELD(SDHC_ACMD12ERRSTS, TIMEOUT_ERR, 1, 1); FIELD(SDHC_ACMD12ERRSTS, CRC_ERR, 2, 1); FIELD(SDHC_ACMD12ERRSTS, INDEX_ERR, 4, 1); +/* Host Control Register 2 (since v3) */ +#define SDHC_HOSTCTL2 0x3E +FIELD(SDHC_HOSTCTL2, UHS_MODE_SEL, 0, 3); +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, ASYNC_INT, 14, 1); +FIELD(SDHC_HOSTCTL2, PRESET_ENA, 15, 1); + /* HWInit Capabilities Register 0x05E80080 */ #define SDHC_CAPAB 0x40 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, EMBEDDED_8BIT, 18, 1); /* since v3 */ FIELD(SDHC_CAPAB, ADMA2, 19, 1); /* since v2 */ FIELD(SDHC_CAPAB, ADMA1, 20, 1); /* v1 only? */ FIELD(SDHC_CAPAB, HIGHSPEED, 21, 1); @@ -198,6 +210,15 @@ 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 */ +FIELD(SDHC_CAPAB, ASYNC_INT, 29, 1); /* since v3 */ +FIELD(SDHC_CAPAB, SLOT_TYPE, 30, 2); /* since v3 */ +FIELD(SDHC_CAPAB, BUS_SPEED, 32, 3); /* since v3 */ +FIELD(SDHC_CAPAB, DRIVER_STRENGTH, 36, 3); /* since v3 */ +FIELD(SDHC_CAPAB, DRIVER_TYPE_A, 36, 1); /* since v3 */ +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 */ /* 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 a80b7c0424..c0098fc920 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -114,6 +114,8 @@ typedef struct SDHCIState { /* v2 */ bool adma1, adma2; bool bus64; + /* v3 */ + uint8_t slot_type, sdr, strength; } cap; } SDHCIState; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 83b027a3b6..3f5e0760f6 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -62,6 +62,17 @@ static void sdhci_init_capareg(SDHCIState *s, Error **errp) uint32_t val; switch (s->spec_version) { + case 3: + val = FIELD_EX64(capareg, SDHC_CAPAB, SLOT_TYPE); + if (val) { + error_setg(errp, "slot-type not supported"); + return; + } + capareg = FIELD_DP64(capareg, SDHC_CAPAB, SLOT_TYPE, val); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, BUS_SPEED, s->cap.sdr); + capareg = FIELD_DP64(capareg, SDHC_CAPAB, DRIVER_STRENGTH, + s->cap.strength); + /* fallback */ case 2: capareg = FIELD_DP64(capareg, SDHC_CAPAB, ADMA1, s->cap.adma1); @@ -1174,8 +1185,11 @@ static inline unsigned int sdhci_get_fifolen(SDHCIState *s) static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) { - if (s->spec_version != 2) { - error_setg(errp, "Only Spec v2 is supported"); + switch (s->spec_version) { + case 2 ... 3: + break; + default: + error_setg(errp, "Only Spec v2/v3 are supported"); return; } s->version = (SDHC_HCVER_VENDOR << 8) | (s->spec_version - 1); @@ -1327,6 +1341,9 @@ static Property sdhci_properties[] = { DEFINE_PROP_BOOL("1v8", SDHCIState, cap.v18, false), DEFINE_PROP_BOOL("64bit", SDHCIState, cap.bus64, false), + DEFINE_PROP_UINT8("slot-type", SDHCIState, cap.slot_type, 0), + 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), From patchwork Mon Jan 8 15:42:49 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: 856900 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="UIKHpHk5"; 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 3zFg7Y1MCvz9s7M for ; Tue, 9 Jan 2018 03:04:09 +1100 (AEDT) Received: from localhost ([::1]:41436 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZuB-000214-8w for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:04:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbX-0002Jx-1x for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbV-0007uV-WF for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:51 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:38579) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbV-0007u8-RW; Mon, 08 Jan 2018 10:44:49 -0500 Received: by mail-qt0-x244.google.com with SMTP id d4so14073573qtj.5; Mon, 08 Jan 2018 07:44:49 -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=vmz558vZLThbBBsMoSp5uuDRv6mHMSWsey97AcQ4xAI=; b=UIKHpHk5dYwKF+NuABBPeb8oOZ/jbkp8jMN9OuWfFEs4wp+54amo1JoUQP8nCWIDAV 2TYLdAAorKrXZViopppg4fanmMQXUaFgJg1wNsWLUFJakzfJ1cv/rrvJkwbQ/Qvu1DD6 aDcc2gt/maP+HXlIfASctC3jgYov+pfxX8ZN59u1kEbAfH2HGOIxulfMyAYI8lI6OGtO n2BCo95s0sNrOD4wB3d9NT6W3PD6zXgGKGkjqu6dvYIQ+xNRiFcFfEicJNrU3h4ClbGL RCVKJjQqSoCW/eIQQ7srWaEklfFo9d8x7aq0udHCGVsGGTDz3tmO96WOAtVlQvCIG859 kFaQ== 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=vmz558vZLThbBBsMoSp5uuDRv6mHMSWsey97AcQ4xAI=; b=N4iV3+yby3CHyvux8Ai8dYoT+uV0aXzALJuoJGqx6ll8F1yuYhCBSPjnrQPWktQ3CC sJO7Pq+OKJnKnVOw1zBzhYE1DTYiVlDksHcQ5y6tFGVMCOrGtr1gfyJxaN/6G8E+dKL2 PWQwaxlA0SNwYnOaaZyj8+lVbdobWDlSc3SjTWplI5/bQDKZMVeMWZii5AViaomGsGWq 75qmlKv5l7gz/7zoPf17yHEGIvGdzqGdtiTXuiz7C55/aXdPwIDvULQ5CX2hzE4lsYqK zZBeeTT8eHFFvKxIXBGILc0LsrjknPcMN8OtINDSbZXYhnNriaBUVt/+Eas3jkqSWlzs qRAg== X-Gm-Message-State: AKwxytebCmYOOPqpNCvbu2YKbP2OiB4X4GEjVaTQ59JOr6iJGc0mJGIi 9rEPp+IsTZOPCmsYoWXcjp8= X-Google-Smtp-Source: ACJfBot1mYNQMNgTHAcSo/eiGkAu/JV5A0y9pmpoielVlA7ZxpGoefXdZUpORhDw5lvBk/ApFYjeJw== X-Received: by 10.200.55.227 with SMTP id e32mr15468972qtc.227.1515426289298; Mon, 08 Jan 2018 07:44:49 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:48 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:49 -0300 Message-Id: <20180108154303.6522-18-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 17/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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é Reviewed-by: Alistair Francis --- 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 c0098fc920..ecd192ee47 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 3f5e0760f6..d7e247cb48 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)) { @@ -1284,7 +1284,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 Mon Jan 8 15:42:50 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: 856902 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="Fo/OTFLu"; 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 3zFgC26TpQz9ryv for ; Tue, 9 Jan 2018 03:07:10 +1100 (AEDT) Received: from localhost ([::1]:41719 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZx7-0004jG-0T for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:07:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbc-0002P1-NV for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbb-0007yS-Cm for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:44:56 -0500 Received: from mail-qt0-x230.google.com ([2607:f8b0:400d:c0d::230]:33569) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbb-0007y5-77; Mon, 08 Jan 2018 10:44:55 -0500 Received: by mail-qt0-x230.google.com with SMTP id e2so14092595qti.0; Mon, 08 Jan 2018 07:44: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=I+F/KFrcm7DFc44TC5l7H+i1YZb2YZswEM0L+8xZOF4=; b=Fo/OTFLuNRldO0M/4djBXDGxQLWiggamfuzl5jJW9NGVNlpv2lGIg0Vw4TDm/pyjLZ pbsZUAy/59m1g1Qy8Z0PK+chbI9C3UeOIYiQPJwSQj9UkZwjilw7Z2wVfBopNKbTAOmK Jrxp6ZpTpv88+/mPh+nD5F+LiaaHSgdXFek5YGsnEFgGmQFd/+jn88ZhjwBMVg2GEl6e cjC1PbQmZPGMN0VvIxjrTiXEs0qucurzQ9XnQs+B6lMDLNROwEBXdKMjdZTHys543LXh 1es75/DgW4QwIaw2ymaEQI2S/bgw/Npj/PNlTxjouql3tgYZw7TFOovNswS5YgCyuvE1 a5Vg== 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=I+F/KFrcm7DFc44TC5l7H+i1YZb2YZswEM0L+8xZOF4=; b=mFJOu45Va60WvCou9ze9YMvdp9vYljUdhfamPcfadMKHhVQKsadLVBTe6RERgDuxAE 7NF7t9W5XMygO4WtLW2n86jjDGgpLHq4KnkF5QHLf7P/HnlTHiQnucNpLlj893TOkOcZ udTLoaKUWcWSyUDqKI1utQYdb4ZxnWN2xPawuWhXnNSKXriRRdoYM8BquJbeIFLgBQ9i 9D8z2HOMocLDxJRCx+Qm0mv/awFX6vOdfgPTK9Z13AmB+FgmOQuqopCywiKzsdXvpMl9 0sLKWCqrr+A3h/zs7ftg+b7ZKcA6A0GeiwLbSeZV+P8XQ3lY3iHQy3RCLcCHHIGjNNUd haOg== X-Gm-Message-State: AKwxytd6Wv/ocz3vPAnOfmirUjHFxkSWEj5KNAXNgJTcZ2VKAgdVgIyj gquRbYDjsc+tIOIYWLpVR+A= X-Google-Smtp-Source: ACJfBovVgJG5mVDz5u2PwGOW6dI4QWAlAQcPzrwXvYDb3IjNCJW6iLq7kkydYhbdxzV86xfbSNjpew== X-Received: by 10.200.26.219 with SMTP id h27mr12038167qtk.77.1515426294625; Mon, 08 Jan 2018 07:44:54 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:54 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:50 -0300 Message-Id: <20180108154303.6522-19-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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::230 Subject: [Qemu-devel] [PATCH v5 18/31] sdhci: add the Broadcom BCM2835 SDHCI controller X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" based on Arasan SD 3.0, eMMC 4.4 Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/bcm2835_sdhci.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++ hw/sd/Makefile.objs | 2 +- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 hw/sd/bcm2835_sdhci.c diff --git a/hw/sd/bcm2835_sdhci.c b/hw/sd/bcm2835_sdhci.c new file mode 100644 index 0000000000..3baf0887d8 --- /dev/null +++ b/hw/sd/bcm2835_sdhci.c @@ -0,0 +1,77 @@ +/* + * Broadcom BCM2835 SDHCI controller emulation + * + * Copyright (C) 2018 Philippe Mathieu-Daudé + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * (at your option) any later version. See the COPYING file in the + * top-level directory. + */ +#include "qemu/osdep.h" +#include "hw/sd/sdhci.h" +#include "qapi/error.h" + +/* 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 ¯\_(ツ)_/¯ + */ +static void bcm2835_sdhci_realize(DeviceState *dev, Error **errp) +{ + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_GET_CLASS(dev); + Object *obj = OBJECT(dev); + Error *local_err = NULL; + + object_property_set_uint(obj, 3, "sd-spec-version", &local_err); + object_property_set_uint(obj, 52, "timeout-freq", &local_err); + object_property_set_uint(obj, 52, "max-frequency", &local_err); + object_property_set_bool(obj, false, "sdma", &local_err); + object_property_set_bool(obj, false, "adma1", &local_err); + object_property_set_bool(obj, false, "adma2", &local_err); + object_property_set_bool(obj, true, "1v8", &local_err); + /* FIXME verify/validate with someone from Broadcom? + object_property_set_uint(obj, 1024, "max-block-length", &local_err); + */ + object_property_set_bool(obj, true, "pending-insert-quirk", &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + cc->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } +} + +static void bcm2835_sdhci_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_CLASS(klass); + + cc->parent_realize = dc->realize; + dc->realize = bcm2835_sdhci_realize; +} + +static const TypeInfo bcm2835_sdhci_info = { + .name = "brcm,bcm2835-sdhci", + .parent = TYPE_SYSBUS_SDHCI, + .class_init = bcm2835_sdhci_class_init, +}; + +static void brcm_sdhci_register_types(void) +{ + type_register_static(&bcm2835_sdhci_info); +} + +type_init(brcm_sdhci_register_types) diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs index ef0fc3d3f7..b3e69c3018 100644 --- a/hw/sd/Makefile.objs +++ b/hw/sd/Makefile.objs @@ -10,7 +10,7 @@ common-obj-$(CONFIG_SDHCI) += sdhci.o obj-$(CONFIG_MILKYMIST) += milkymist-memcard.o obj-$(CONFIG_OMAP) += omap_mmc.o obj-$(CONFIG_PXA2XX) += pxa2xx_mmci.o -obj-$(CONFIG_RASPI) += bcm2835_sdhost.o +obj-$(CONFIG_RASPI) += bcm2835_sdhost.o bcm2835_sdhci.o # emulated SD/MMC devices common-obj-$(CONFIG_SD) += sd.o From patchwork Mon Jan 8 15:42:51 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: 856890 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="ZbBqZBby"; 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 3zFfzZ2lbXz9ryr for ; Tue, 9 Jan 2018 02:57:14 +1100 (AEDT) Received: from localhost ([::1]:41362 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZnU-0004KK-Dd for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:57:12 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbh-0002VM-2L for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbg-00082Q-7b for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:01 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:36215) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbg-00082C-30; Mon, 08 Jan 2018 10:45:00 -0500 Received: by mail-qk0-x242.google.com with SMTP id d21so3644267qkj.3; Mon, 08 Jan 2018 07:44:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OoS2yqXSmLhI1DroCQbSJIrXVyuwogG1ulUTy17/uAs=; b=ZbBqZBbyG0/Wlag6xJu36XViNuoFRZBSku0KZKnu7IvcBRfmk9qEbbgwHctQCodEkv LDzpPTKap0RhkjpiTEPrbrR8zG2ZXlAlNjXZIGQ27G3HLRPTeDqtdSbIUEQlP8b4MwSs 9CooDluDxp9gY8nKlbhq7mMcDwJasd9JO2FlnHPvVoenfeEeBdnJd/qlXHTdq3MWA/Gl 4vmBKEeRMYNB7GSD1Kd0ZalQe1qMXXh24oMSN4KUQYQ/9+oGvo/up70On4ksiXOpNATY mALCLtY3KEjC7CJck8Fb5skWMZHz1XN30EQnRPsoy5tzJ07crdAEUsN9GeClk8cLb+AW tmaw== 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=OoS2yqXSmLhI1DroCQbSJIrXVyuwogG1ulUTy17/uAs=; b=UTLErE6QRpbtfQYh7NzytsPLgPYaL6cYlQDBWTj2NMZPCTYhAbrtIkDmcI105ooOgi EMFqVrK3V0GdHQJuOcSbXcvKF/Nm7IIyNZiTkXjFJGTF4l/5fqDs7hE2xNHqccH1ni8F knQ9joKqxt9lWh0olTx+allLGJ+1eyZWxmpn1f5SpzFNjwnM2WDKFA8YelZ6caWpsq1w wyhNTdE6tDKfbDdVh+WCKAY+iZQQcGVxiHOPD4YEENeYs6hj6n9FxmQk5kxDl71K9cPb ST0tuWPxY/Rtul6Jad2pLfT/czIDTZM5ynGoXOFatBk3Eg/kc4L42WF0ArHcJ/tnj62/ 6gBA== X-Gm-Message-State: AKwxytfZKageQJwaIRY3zpr0SvPAhnGDqSO7BezyvqY+PiqwZ+EXn7CO DJU3KYh1EYc1Vaq3UvBd/OU= X-Google-Smtp-Source: ACJfBotwnxuUQlsclOc4e0oYA2xYMzGA5N4FnaJIE7ZzJxcCFF13Q4OV6V/RkCtBa1tFHkBOz2ulhg== X-Received: by 10.55.17.143 with SMTP id 15mr15966858qkr.148.1515426299540; Mon, 08 Jan 2018 07:44:59 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:44:58 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:51 -0300 Message-Id: <20180108154303.6522-20-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 19/31] hw/arm/bcm2835_peripherals: use the "brcm, bcm2835-sdhci" device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 12e0dd11af..6a9fd79bcf 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); @@ -91,7 +88,7 @@ static void bcm2835_peripherals_init(Object *obj) qdev_set_parent_bus(DEVICE(&s->rng), sysbus_get_default()); /* Extended Mass Media Controller */ - object_initialize(&s->sdhci, sizeof(s->sdhci), TYPE_SYSBUS_SDHCI); + object_initialize(&s->sdhci, sizeof(s->sdhci), "brcm,bcm2835-sdhci"); object_property_add_child(obj, "sdhci", OBJECT(&s->sdhci), NULL); qdev_set_parent_bus(DEVICE(&s->sdhci), sysbus_get_default()); @@ -255,20 +252,6 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp) 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; - } - - object_property_set_bool(OBJECT(&s->sdhci), true, "pending-insert-quirk", - &err); - if (err) { - error_propagate(errp, err); - return; - } - object_property_set_bool(OBJECT(&s->sdhci), true, "realized", &err); if (err) { error_propagate(errp, err); From patchwork Mon Jan 8 15:42:52 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: 856905 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="nkBkk9d/"; 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 3zFgGF6yQbz9ryv for ; Tue, 9 Jan 2018 03:09:57 +1100 (AEDT) Received: from localhost ([::1]:41748 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZzo-0007Bn-1I for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:09:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42499) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbl-0002ZU-UW for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbk-00086B-Ti for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:05 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:43544) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbk-00085e-P5; Mon, 08 Jan 2018 10:45:04 -0500 Received: by mail-qt0-x243.google.com with SMTP id w10so14073896qtb.10; Mon, 08 Jan 2018 07:45:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=H82LAP42JoubDjEfVrLf8lWGvDT3hODw0HitNmp3Wog=; b=nkBkk9d/3bl0gafRrCax27WpVHSH/GDNCBGe9g2dmKmqfOkoo+dmBweln+5Yvs84bT itnfGQl0zg8+WsVcaVP/A7C+p64EYcJyNto1j2xYUiESN658G8yYVgg6vXFrVgXYP37C MVN7yXqMSsdnypRPP72MCwMbkOHhu5EbaGJTuq664qiMCg7wTH6GXbpVbVQeEjGp7HhC zOa8/AQNFA9/JkWDnlnNLNhNzEBr5beqoeKevV/45FsSfNWVXiIRSgI66NMciUx00hp3 ikaQZMxY6JxKxtttfdaBBJMAkjBtWLrYF19wkmlQrsVO7ufQ86M/vgg7yt/RCmV0sOJ4 OcEA== 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=H82LAP42JoubDjEfVrLf8lWGvDT3hODw0HitNmp3Wog=; b=hF04oyoxvvN9zzMLomrerGIx9Cutn0JaqEjBpO92KD3ibo9uNs/geiZA26tygJzcUc FkmEITr82Ag4bg5KqN0XA/l01ixqnl3YXruDjctaLKazi+/Iutfe5WqrEFN/+jUxfWo8 sFNdGTB/rTuWV8E17GIYIml5lSsn3dUwon+FG4OGj0SgQlSbRuEKdiCpPDiDtL20sX1F TdVoqT21Z7OoiHEyAELEp8IX3e+/X0XyefyfGimrZNfrt5vvxfHQ26KtyH6gatQpM2IC lH/28ghe6PNCTyORJQSIv7QpdIwu/40B0No839oYCqUyirfFwejS5wHiAn+6O3EAuQOK 0fxg== X-Gm-Message-State: AKwxyte+LBRBrqsm5jF8s99pOLDg7DCBYUCol5ezOkOBazLP2iDPyhoM M7ooD5lh5q1RboYHx1MY/k4= X-Google-Smtp-Source: ACJfBouK112d3T631f1VoegvyGGS4EbpPLlq8la8AutKt+UxbinuKo+N/2jgTwkcpJ77KU2t2/lh/Q== X-Received: by 10.237.63.184 with SMTP id s53mr16317861qth.217.1515426304207; Mon, 08 Jan 2018 07:45:04 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.44.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:03 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:52 -0300 Message-Id: <20180108154303.6522-21-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 20/31] sdhci: add the Freescale controller for i.MX X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/fsl-sdhc.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/sd/Makefile.objs | 1 + 2 files changed, 59 insertions(+) create mode 100644 hw/sd/fsl-sdhc.c diff --git a/hw/sd/fsl-sdhc.c b/hw/sd/fsl-sdhc.c new file mode 100644 index 0000000000..aa8075a9e5 --- /dev/null +++ b/hw/sd/fsl-sdhc.c @@ -0,0 +1,58 @@ +/* + * Freescale SD Host Controller for i.MX emulation + * + * Copyright (C) 2018 Philippe Mathieu-Daudé + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * (at your option) any later version. See the COPYING file in the + * top-level directory. + */ +#include "qemu/osdep.h" +#include "hw/sd/sdhci.h" +#include "qapi/error.h" + +/* UHS-I SDIO3.0 SDR104 1.8V ADMA */ +static void fsl_imx6q_usdhc_realize(DeviceState *dev, Error **errp) +{ + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_GET_CLASS(dev); + Object *obj = OBJECT(dev); + Error *local_err = NULL; + + object_property_set_uint(obj, 3, "sd-spec-version", &local_err); + object_property_set_uint(obj, 52, "timeout-freq", &local_err); + object_property_set_uint(obj, 52, "max-frequency", &local_err); + object_property_set_bool(obj, true, "adma1", &local_err); + object_property_set_bool(obj, true, "1v8", &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + cc->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } +} + +static void fsl_imx6q_usdhc_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_CLASS(klass); + + cc->parent_realize = dc->realize; + dc->realize = fsl_imx6q_usdhc_realize; +} + +static const TypeInfo fsl_imx6q_usdhc_info = { + .name = "fsl,imx6q-usdhc", + .parent = TYPE_SYSBUS_SDHCI, + .class_init = fsl_imx6q_usdhc_class_init, +}; + +static void fsl_imx_sdhc_register_types(void) +{ + type_register_static(&fsl_imx6q_usdhc_info); +} + +type_init(fsl_imx_sdhc_register_types) diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs index b3e69c3018..b058a9328e 100644 --- a/hw/sd/Makefile.objs +++ b/hw/sd/Makefile.objs @@ -4,6 +4,7 @@ common-obj-$(CONFIG_SD) += core.o # SD/MMC host adapters common-obj-$(CONFIG_PL181) += pl181.o common-obj-$(CONFIG_ZYNQ) += arasan_sdhci.o +common-obj-$(CONFIG_IMX) += fsl-sdhc.o common-obj-$(CONFIG_EXYNOS4) += dw-mshc.o common-obj-$(CONFIG_SSI_SD) += ssi-sd.o common-obj-$(CONFIG_SDHCI) += sdhci.o From patchwork Mon Jan 8 15:42:53 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: 856893 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="JmrVetmb"; 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 3zFg173Tb1z9ryr for ; Tue, 9 Jan 2018 02:58:35 +1100 (AEDT) Received: from localhost ([::1]:41385 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZon-0005aI-HO for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:58:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbq-0002g6-Nu for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbp-0008BB-UE for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:10 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:41517) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbp-0008AM-PW; Mon, 08 Jan 2018 10:45:09 -0500 Received: by mail-qk0-x241.google.com with SMTP id a8so14627863qkb.8; Mon, 08 Jan 2018 07:45: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=TBua8QNjia8xGb26hZDM5AsbHlxFkqUI/K9hvrfeLgk=; b=JmrVetmbphbrhrW2npi5ZbTlQ146x54nJLgxX3fpAOMJtSXbIFiomSx8Ry67WHztHW KQ0gmi9RkAoo9N4kBSudZz63KMr0Mkc2q1CI1c1v/8oUuAg3BxYHrp2bT2BNSX13Zw4C JEIGMLhyr0Is++g1wd+Ygu1NQVlU5Zk2lpFTW1pdRCJiIZgPdSceYWn4gD3ZdCudXHwu vv5hov+r8+R6wEpKxzZY3ERz2Vtsn4dRHBHSG33fR5LU9NPcEFQM7RMEbNdoHx2LHwE8 lKmI8JaJ1a5/1ob3zpo3cSg8aug5e2VCPpNSDHEmIgDYeaF0bZ1E4vqvaQ4143FLpRWh sHAg== 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=TBua8QNjia8xGb26hZDM5AsbHlxFkqUI/K9hvrfeLgk=; b=P7wmq9SgoFu1hJJoqPLI4ArGf9CKYE6ZgUvLblX2DG+F/+0yOXIlEA0xjRD6clAqfn 29JDjy83G+t0OChEFL30L/FT3iosMRaJ6Wn95sQVLYSCniB0b4KhKshOPivaT8ElL7Lz OLuZVKUvslPDn4OJE8sHUSviTF1z709rOkj/psaLs5f14Lpm/eInnxo/HIFu1A+vDvhL CYjq2PhxeV6bm0643aXsGN9WPHk88Ew+23WJh84QSzLssYgZvLR5sL8cPuXBj2x/fIGI s32TI1tQFev8X5jj1+gq4XwSJhRVMWkCKA2lxCp94dAB0tObc3XGmBcKcj2vYmC5QEAv nb1g== X-Gm-Message-State: AKwxytcBlKJ6KzLzCAZUTXEdspi0RElTOm2R1yLg0E70dVL1/tijXS4m U3Pcm7bomOM5yWjZqlbUFQs= X-Google-Smtp-Source: ACJfBouR/b+dOlFRpKkOPSzpRihR4gTZUBJ3mXL02ImbHGMVNqGeWATBVsVCFeUV8MY3SFpqwjzBcw== X-Received: by 10.55.201.210 with SMTP id m79mr15422670qkl.287.1515426309264; Mon, 08 Jan 2018 07:45:09 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:08 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:53 -0300 Message-Id: <20180108154303.6522-22-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 21/31] hw/arm/fsl-imx6: use the "fsl, imx6q-usdhc" controller X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 59ef33efa9..f632ec7519 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -93,7 +93,7 @@ static void fsl_imx6_init(Object *obj) } for (i = 0; i < FSL_IMX6_NUM_ESDHCS; i++) { - object_initialize(&s->esdhc[i], sizeof(s->esdhc[i]), TYPE_SYSBUS_SDHCI); + object_initialize(&s->esdhc[i], sizeof(s->esdhc[i]), "fsl,imx6q-usdhc"); qdev_set_parent_bus(DEVICE(&s->esdhc[i]), sysbus_get_default()); snprintf(name, NAME_SIZE, "sdhc%d", i + 1); object_property_add_child(obj, name, OBJECT(&s->esdhc[i]), NULL); From patchwork Mon Jan 8 15:42: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: 856889 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="cAuunGN2"; 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 3zFfxL1yYYz9ryr for ; Tue, 9 Jan 2018 02:55:18 +1100 (AEDT) Received: from localhost ([::1]:41337 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZlc-0002ds-B2 for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:55:16 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZbv-0002nB-TU for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZbu-0008Ip-Qz for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:15 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:39776) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbu-0008IY-Lh; Mon, 08 Jan 2018 10:45:14 -0500 Received: by mail-qk0-x241.google.com with SMTP id r8so10337831qke.6; Mon, 08 Jan 2018 07:45:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GqHB0CwKfOyZtj3a6K9/xpUJPYfxrSC9/8p3HUlvTI4=; b=cAuunGN28j1p4j+SjNValmdvI5I5JgzgTdP3xI0NxHN0TZO4rnzd93d8PrnGTyctcZ PW7/4W8Xz1ZZkxVZUv77Ezqxq89jlMNGSGRJD+c52rIwTmWtiPc+7aO9wDXW2yuCpl0e HRY08hOenwB3DBzeczBywPJ/+rAFkh/0o7/QFW1b+f88egSuF5yCU3Fni3++drn4BFOA Ysu7dk4LNgmB3JdU4IU9w7KKyNPVZoSH8jFb2i/hGux+vKcUd5JlP8wS6uUvfxiSdxRx Qa85xdKiSRrJW6PdOeFkelHXhbpTu5AaufznfgHXvxeVgNEXz20wMTYPtAdhdOwFY8hT KoTA== 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=GqHB0CwKfOyZtj3a6K9/xpUJPYfxrSC9/8p3HUlvTI4=; b=fk9ELV7iDURcg37s6tD39BpeUPfkhGvWq0BdvLgO3gmkd7TuCQz7OCroGHGYQDBnWZ ujEnzwrERSf/B/a/A3hJpQjTwTIn4M01vFOTrSUO2o/rEKeDgB3Gfh/utC5MDJPM8Ywm yfI/4t82Idg6Hz9qTRjMbJHymFDxvamjcuxQplspyS6UVNwAHY7xh+IvnNR84BVS2XM/ JFljhxfcqbRlzQ8a+ch/AyrdkTJox+bjBQOnspjLj6f3nHHvwHh7BcVphfgIcvh+gAST aGC5QV+DQ3lPhxXeBCQnS7/LdCf2oFBU1Spfuc68IANcbizeGUnMVL5h8m2/BMz9dnZA sDWQ== X-Gm-Message-State: AKGB3mKPiZf3YPkD+cvGBvRf3cPuzQGq5JSE3IdqazzgFqP7fqxhBvkv PqbcolJEDVXGfIfD1+3dtE8= X-Google-Smtp-Source: ACJfBotjyCXqlMF1oG1EcAz57QbH2Qx/mXPO+YWYYOpnA35RnB0//yBPrcEoeORttgANJR36/no/Kw== X-Received: by 10.55.91.69 with SMTP id p66mr16969991qkb.247.1515426314062; Mon, 08 Jan 2018 07:45:14 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:13 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:54 -0300 Message-Id: <20180108154303.6522-23-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 22/31] sdhci: add the generic Arasan SDHCI 8.9a PHY X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/arasan_sdhci.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/hw/sd/arasan_sdhci.c b/hw/sd/arasan_sdhci.c index c6d96b2583..11160baa22 100644 --- a/hw/sd/arasan_sdhci.c +++ b/hw/sd/arasan_sdhci.c @@ -49,6 +49,42 @@ static void arasan4_9a_sdhci_realize(DeviceState *dev, Error **errp) } } +/* 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 + */ +static void arasan8_9a_sdhci_realize(DeviceState *dev, Error **errp) +{ + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_GET_CLASS(dev); + Object *obj = OBJECT(dev); + Error *local_err = NULL; + + object_property_set_uint(obj, 3, "sd-spec-version", &local_err); + object_property_set_bool(obj, true, "suspend", &local_err); + object_property_set_bool(obj, true, "1v8", &local_err); + object_property_set_bool(obj, true, "64bit", &local_err); + object_property_set_uint(obj, 0b111, "bus-speed", &local_err); + object_property_set_uint(obj, 0b111, "driver-strength", &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + cc->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } +} + static void arasan4_9a_sdhci_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -58,15 +94,31 @@ static void arasan4_9a_sdhci_class_init(ObjectClass *klass, void *data) dc->realize = arasan4_9a_sdhci_realize; } +static void arasan8_9a_sdhci_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SDHCICommonClass *cc = SYSBUS_SDHCI_COMMON_CLASS(klass); + + cc->parent_realize = dc->realize; + dc->realize = arasan8_9a_sdhci_realize; +} + static const TypeInfo arasan4_9a_sdhci_info = { .name = "arasan,sdhci-4.9a", .parent = TYPE_SYSBUS_SDHCI, .class_init = arasan4_9a_sdhci_class_init, }; +static const TypeInfo arasan8_9a_sdhci_info = { + .name = "arasan,sdhci-8.9a", + .parent = TYPE_SYSBUS_SDHCI, + .class_init = arasan8_9a_sdhci_class_init, +}; + static void arasan_sdhci_register_types(void) { type_register_static(&arasan4_9a_sdhci_info); + type_register_static(&arasan8_9a_sdhci_info); } type_init(arasan_sdhci_register_types) From patchwork Mon Jan 8 15:42: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: 856892 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="P0rP0FiZ"; 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 3zFg0c3ff3z9ryr for ; Tue, 9 Jan 2018 02:58:08 +1100 (AEDT) Received: from localhost ([::1]:41372 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZoM-00057p-Ep for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 10:58:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZc3-0002uK-CU for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZc0-0008Nz-9O for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:23 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:40748) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZbz-0008NU-St; Mon, 08 Jan 2018 10:45:19 -0500 Received: by mail-qt0-x242.google.com with SMTP id u42so14083070qte.7; Mon, 08 Jan 2018 07:45: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=sdasKPjyoac7pDqWSK2PJXnMQJ3q2/Kt3koVAAmzdmY=; b=P0rP0FiZ4CEMjJTDDcfqg40y2hVRiv4ect+sKoC1M8GU1nxTGe/ZtZqKzwemqRfNjk 3MiMrkOGh/NNmb9a+s42YEx2ZfMZHvlOz+IxuJ86Ghkhq3e8UHpxNc0k+5lGejIjR9XY 2hEp/1rzhBGvGvp+hTt1+uXayhTxW91khnSretwS78MEbYTunSPtydYBpceqVocfTMWn +7dhYrgm47fpt+6Lj/6ZaOuAQSDgg1Any95++LGB7/pxjMyVg6YROHmMQhrTMIyl4LcJ fE/csLMcYTdWB4rABZ7teHfHgEnRo9RgH2OIb3xqAT7AyhQ9k9Lw9LgMxFSSgP95bLkE ozCA== 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=sdasKPjyoac7pDqWSK2PJXnMQJ3q2/Kt3koVAAmzdmY=; b=ZSS4rRAFQbRD7MJbfTv++QGeEOXspvq//9xNIVtm92ZSABx8AiUZ8SgStfBkUVtdKR wgceHgDV/9lkSGAIdScoCci+oLCgQbGp+QOlgrLewD+WD+hJad49yvK7WgVYhmYNhIm0 dV50XguMHF9niQj7sgNWQOz09/AIWHv94/HbawSnL4AwiuzPGYFQzgxsuBKVuq8hfwAB yqba38pEuR8/0NXKFZygNlXO3CvT5EIBKJWyW+FM9PgAMdC728wc/vdqeWkDZ820HeM2 v1EPFyVZ3mDn3vtB54ABq05+bpXn3wZjViC60u+dBORqEZ66aIcXeYEzVuobYLD0pARN Sk9w== X-Gm-Message-State: AKwxyteY8+GJEUu+IjbBc0HLO/+kH6Z6m4+SFI2stYEMM7teUbzE6f// i/Pc2mNo0RiJKBUz9MKng3g= X-Google-Smtp-Source: ACJfBosPisgtAymLAkSyZmQROS7SXYEfVKIO2ocP5FGi4snyAH40H2CvrSZOkFHdm/PEbHxDp2u8yw== X-Received: by 10.200.47.237 with SMTP id m42mr16943900qta.170.1515426319356; Mon, 08 Jan 2018 07:45:19 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:18 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:55 -0300 Message-Id: <20180108154303.6522-24-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 23/31] hw/arm/xilinx_zynqmp: use the "arasan, sdhci-8.9a" device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , "Edgar E. Iglesias" , Eduardo Habkost 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index 325642058b..e4f9193adc 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -164,7 +164,7 @@ static void xlnx_zynqmp_init(Object *obj) for (i = 0; i < XLNX_ZYNQMP_NUM_SDHCI; i++) { object_initialize(&s->sdhci[i], sizeof(s->sdhci[i]), - TYPE_SYSBUS_SDHCI); + "arasan,sdhci-8.9a"); qdev_set_parent_bus(DEVICE(&s->sdhci[i]), sysbus_get_default()); } From patchwork Mon Jan 8 15:42: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: 856895 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="YcMTOKQf"; 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 3zFg336DKdz9ryr for ; Tue, 9 Jan 2018 03:00:15 +1100 (AEDT) Received: from localhost ([::1]:41396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZqP-0007Or-UA for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:00:13 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42687) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZc6-0002wW-1A for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZc4-0008SY-Uk for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:25 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:37225) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZc4-0008Rw-Mn; Mon, 08 Jan 2018 10:45:24 -0500 Received: by mail-qk0-x241.google.com with SMTP id p13so14639285qke.4; Mon, 08 Jan 2018 07:45: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=OTlRvqDP8Lqevmy46I/QnaSIws0g2YzsJeazxRLC+Yo=; b=YcMTOKQfMVP7UxVZMjMlEYxTFfGjOAXnxZ/QrmMZh0agKwDFGPbkiZbgBX2GXo/WRx zzjCdtDXx3NRgFxqav4pycmZRBC0OqK7FZqFCR3csOxJLtkwB2k+vDoW5A/6X7GKVv6v X8f53jE4xWHYDRqQiYWAHEdlrQDRI3/1h5cQWkoCoQLBtYBTb0c2CBDoYl8fQi4uU5fC qQZyBb8h4r2sJRBvbi6PR9j827X/5vN2T4urRzw1G1C2kPvqqppKovZVav5IPoLBYIQj dFBzvMo2/Mg85eM//DeF4x0GPxuf041e2ienFBymf+yUiXJaO/ImfoPsuKw+PLdzWXyb e+Yg== 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=OTlRvqDP8Lqevmy46I/QnaSIws0g2YzsJeazxRLC+Yo=; b=KxrhheIfh/lUU63ECnqi/RurmCF++dIKjO4Pzhz6Lr+Hf8Trf3948iw2Im5C/oD3pY 8RMCR3NiEg9SBHvOulVGbLHCSDBnl2HIWQkH+KoeZxmbTlDN3Hiiitb7O9Oxkt9YvVtf HslHJVmLG0aCTEeoUoozW0L2C+mBNSgW8XzX8r7HkSTDtkc6Zydzp86ees/n/4H7stxk v2E5tjyjaovh8cAKrIBnm/0/z7+b+g7tboDttM/1Rq+PZo/xiefDsRgf6zdEHWrioMst 1IOkoF0l7EMqBeRYsqVUq4d+AbkgCSd/xB5BrS2I0FOOrdabHqLEegBnug5dIgEX1S4H QJig== X-Gm-Message-State: AKwxytd7NJCrr0AVNugE738nmYbBlrmsHOwYp162Nf4Ut6MBQeMTXTmp 1U9XtIJX6/BD/SWeBX++Ouk= X-Google-Smtp-Source: ACJfBosa8x4I/UzyOuCZ0zUVNQcj3oHDUGDe5oeBrkk+fKR17VTciPJYlMR94eI7dIWpC/jd0Z3sLg== X-Received: by 10.55.110.67 with SMTP id j64mr16071115qkc.88.1515426324139; Mon, 08 Jan 2018 07:45:24 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:23 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:56 -0300 Message-Id: <20180108154303.6522-25-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 24/31] sdhci: let the SYSBUS_SDHCI type be abstract X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" all boards previously using it now use a SYSBUS_SDHCI child. Signed-off-by: Philippe Mathieu-Daudé --- hw/sd/sdhci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index d7e247cb48..34bda73b66 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1463,6 +1463,7 @@ static void sdhci_sysbus_class_init(ObjectClass *klass, void *data) } static const TypeInfo sdhci_sysbus_info = { + .abstract = true, .name = TYPE_SYSBUS_SDHCI, .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(SDHCIState), From patchwork Mon Jan 8 15:42:57 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: 856898 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="kt++xkU/"; 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 3zFg4p4d94z9s82 for ; Tue, 9 Jan 2018 03:01:46 +1100 (AEDT) Received: from localhost ([::1]:41424 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZrs-0000AM-J1 for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:01:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42737) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcD-00033O-TV for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZcA-00006E-LO for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:33 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:37228) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZcA-00005p-Fg; Mon, 08 Jan 2018 10:45:30 -0500 Received: by mail-qk0-x243.google.com with SMTP id p13so14639704qke.4; Mon, 08 Jan 2018 07:45: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=Q/21oj98KwgOw1mt9bBDqn3YjCkzmwZFbIMbXSvA+Ic=; b=kt++xkU/rOX5OKByBjtLb+oNRPnAZmBd7K+Dm8/HbkKO7PigpVuFrmKxaxFTcIYBXI hvxaNhj0C1JqHuUClNOxbD6gplcDwP12w0+nbW3NkHu7v/VJrIIkWCE5dTt5IM79pNm7 UmjQfmrEwNhGEwkQBIlHqGyar28D3vbkXktmBn+4I/gMDGZl/FXuwK9UPQeb29VoJbUB um667rhJHeqVGmvXmvlfghS1Ed3xSFdhE2+m/yaJ5LMhOiLOuMFn15LQZVax7nl8skWo ELdiOJ40mKrpV/++3lcq0BjkXL4xrstlOYI6Dq43BqUhGCMGlg1g3QdNcMJmJz7tY/Rd 7MvA== 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=Q/21oj98KwgOw1mt9bBDqn3YjCkzmwZFbIMbXSvA+Ic=; b=BQywfwGWL/VcoVCuDkEmPEsUOj2wdPXxvBad8DQNwuZdOJt4GicAf/YmsscSUs4tRj qyz/YIi0rnbV+/Ku1xAELY/TxFb6DeaN3xqsGbuuYr/N+uFkOSadzHQ0W6/gnPqXDgqy 5v/7Hmi2pj+AzivE+lOQiBdsr4Z9LHrBN15aRarXwU7g8Kc+RHmmMek2ql1WV/RMRq/P SaPXAP1ge9bM+J+McTHhy11xcetLGaDnE7l7UEvkzLNEc5T8sJDlFMhW1LmIiqgJ52Il 5wWzQ1n1xtojf+0V47+Tgx7i4CFLWBVC+pWDz/G+ZfQZvdnKpVlwrB9kRkoOUG36hALk 0F/A== X-Gm-Message-State: AKwxytfrA4qmnEJcNf46sBsKzMNQjtEHLtuJNhOMJ3+vNPKU15pgwwoy 3Z8gwjdGrd0UwlS2gBNaHak= X-Google-Smtp-Source: ACJfBot/nPj7Odjcpu/Fw20WlEfef/cIz9D3XLNLftxBmgVRh2JldMh+KMQu44gfJ/IqW6I9GrBZRg== X-Received: by 10.55.25.146 with SMTP id 18mr15891025qkz.214.1515426329774; Mon, 08 Jan 2018 07:45:29 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:29 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:57 -0300 Message-Id: <20180108154303.6522-26-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 25/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 2d7058ca4c..0cf327425e 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -360,6 +360,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 Mon Jan 8 15:42: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: 856899 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="YG2eXpm7"; 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 3zFg790NJVz9ryv for ; Tue, 9 Jan 2018 03:03:49 +1100 (AEDT) Received: from localhost ([::1]:41433 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZtr-0001hj-4N for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:03:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42784) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcG-00035i-PX for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZcF-0000DV-Tn for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:36 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:37100) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZcF-0000Cu-HO; Mon, 08 Jan 2018 10:45:35 -0500 Received: by mail-qt0-x242.google.com with SMTP id f2so14083958qtj.4; Mon, 08 Jan 2018 07:45: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=xXf1UFbqOcyp/TRXmWa1zv1Yy+jpEBavi3Wi39hKZGs=; b=YG2eXpm7p1MAigRAQSmspvEBz2jsUXCJqhsib/NsZC5xL4iCrVYcN64MJLvZ/8XBBU GYCx1YdemivR8VVtxZkSwlyFnB7HQs3YmBW38YcB+E77pIVFYp4QZs5Fom1cgjH4caWu HJCNAR405Gts9LZ9UGuUUd59x72fruV3McDnga8ANX+IF0vtuUbvq6lqBLiQimvM/ECI DXTfZlHXuOW+lf+zRNpFuoWbF7cJANIHv7RSJxpZy8lL0ZvduuLcHWqbNl4zI7VuLeUm w+PaxpdSnBaJUdwhzeWdQxlpRIg99qR/maIk0XLBF0YOdQO77apeSFBssBszye8w/k3A oSaQ== 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=xXf1UFbqOcyp/TRXmWa1zv1Yy+jpEBavi3Wi39hKZGs=; b=VRD0ki5LdBvpt/kGtREGhtydmuEIvRLLcbSlcb3MDTfDhTEKNPP52nvLPxJio9EKl4 l9tK85+a8a4kqWpNg45d8xEQr3HByawXcPEt6g34nsLvMmURbBqRDD30UcFI2ocrXLGW Lt0LvrXDI3sHTQiM9D1PB73oVCoXEz5l/nf8VNYPbmoLTPHZfCp/y1XLjgPm7kLLBWLn 6RqZlOWBCA1fJk7M8mU+98nkiaecHxZi08c1Z97QA7DbxVbcQB0AJPfZmbtlcn0YxMoG b/3XXwoNhRQY489S+NoJrTE9s15Xy3C9T/Wq5Pne/w8Ou6+Q0+x969qebX4qBWgomsiZ XsAA== X-Gm-Message-State: AKwxytcRA7N7Lumnt/Sdg+Kg1KDE0DMpaHWDgeAYubOxkUV1fNrx/aaW Hncao9Tx4wbhHnT3a3P+khs= X-Google-Smtp-Source: ACJfBouuNplHjF5RH3abcVNcRMhmrvxFvHx5qmixpODseu6xzWU/NjZEz+JKAlLou+FiLIi6dX0V8Q== X-Received: by 10.237.53.201 with SMTP id d9mr15771884qte.138.1515426335016; Mon, 08 Jan 2018 07:45:35 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:34 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:58 -0300 Message-Id: <20180108154303.6522-27-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 26/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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é Reviewed-by: Alistair Francis --- 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 34bda73b66..ae914a6ef9 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1194,9 +1194,7 @@ static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) } s->version = (SDHC_HCVER_VENDOR << 8) | (s->spec_version - 1); - if (s->capareg == UINT64_MAX) { - sdhci_init_capareg(s, errp); - } + sdhci_init_capareg(s, errp); } static void sdhci_initfn(SDHCIState *s) @@ -1345,9 +1343,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 Mon Jan 8 15:42: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: 856897 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="ErSlRbJO"; 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 3zFg4X62Kgz9ryv for ; Tue, 9 Jan 2018 03:01:32 +1100 (AEDT) Received: from localhost ([::1]:41415 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZre-0008P6-Te for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:01:30 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42822) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcM-0003AW-6z for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZcL-0000IN-4X for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:42 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35055) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZcK-0000I0-Vu; Mon, 08 Jan 2018 10:45:41 -0500 Received: by mail-qk0-x241.google.com with SMTP id w184so6458037qka.2; Mon, 08 Jan 2018 07:45: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=k6sbl/indurMO60PqiU27VM0Ou/IYENUxu4LHz1GzBM=; b=ErSlRbJO0keNNhng1WnsLIWv22K7iKDzFa23V5kwjCi0bmcO/fdZq14FdcQ8CqLYbp hBAZ14QH1Gmaxuw2NH/pfuk2GGO4aGzkrLqt2vY/8011CujZKKLhvuqvAdsBbkagaNB1 jhS5YH3F40SN/TJA1+BYrEddvQ+YKGmwOP3YXibIZSuOLRtc2A8IzgT6wXkK5eVdSCFu P0AIJCIHgYOchO3dwrLd/1wKKfp8DAKzA7b6aUuKBzvH+lKrJl1X2fzsZwnm2WdQbGtW F1kJ2K7yZhuddQVMfm+3U7Du2PFUqdbp7ok2qikujGeBF6U9T2HcDGYbWzzlbJOccc0J c1GA== 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=Hj13CjYnr598zuN/3CFgO80BBRfuYjBxakcufi/DLc38IkwFofkTA7wgltIsad5H07 fgsLXuUly5KKm/OakLFszvdAnDvrQYTrUMNL9v76O+cQCwnHi/ET5dZxSijo9CnqPOKB 6x829mx9Ca9gaT2zjRrxgsx0Lu4CzXuk+iNdiFKB7Sl2ePQ1hq7bPM80sptUP/NMbgEN LjFx9qE0gdOQ5AE9vG3j5ySqrGeXC2aUUloO8YJU3q01qnd2GQVT9thOHuGn+67RIJ4w vPqNprd6J0Iik5g7eX2ycqjxYcKBSMNgYr5KUuUIjgf9B9fBCiIzdIabQW1jzmsfVB3B zKCw== X-Gm-Message-State: AKGB3mJBxUSF8MrMQt/y+dmKvHPn9jUFle51CO6gNWpYlnGcXkFdljSv iX9K4J/LGeafT69YHCvLAhE= X-Google-Smtp-Source: ACJfBovea8L72haDOv2v05FAbteEwjrYyXu6rTuLC8gU5udVCJ1E/ZiT3WMYC2cXoraR8nkWYMnQEg== X-Received: by 10.55.106.195 with SMTP id f186mr15587965qkc.53.1515426340460; Mon, 08 Jan 2018 07:45:40 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:39 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:42:59 -0300 Message-Id: <20180108154303.6522-28-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 27/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 Mon Jan 8 15:43: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: 856901 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="fbtanog/"; 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 3zFg8F4msGz9ryv for ; Tue, 9 Jan 2018 03:04:45 +1100 (AEDT) Received: from localhost ([::1]:41438 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZul-0002TL-9n for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:04:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42880) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcQ-0003Ef-VE for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZcQ-0000Os-4P for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:47 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:43548) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZcQ-0000OO-0M; Mon, 08 Jan 2018 10:45:46 -0500 Received: by mail-qt0-x243.google.com with SMTP id w10so14076779qtb.10; Mon, 08 Jan 2018 07:45:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LB2vR+xX5B7po0OaUd258WDwiRr1Lql0ZJ7HTew9kDU=; b=fbtanog/HFIiOleYf2efbN0DYKXVhO39loMNgvOD17b+scNKBySiaw1xmb3hy45JxX s7Z3lo/1bmIQB6GObctIWTJIinoAurLuE0SRm5sdtFVwAJAzNqCL+XExgniIUeEhx8Qu YBQIdQsIWxSs8gyC7A7MErIlpgI8J/sSgg44VSWHeWjrrnm4X9rH2HtweczjDI2/zLGd qTuli1umYR5AIb6SL53iQAE7/OBbFexWK1TrJqqnEZ4E02Xs8KNsH6czknXe/1SS+1YH AOHl+tH8HSHC/fvEFYlNTTHpDcVz55JEyvSVxfbRtrqw1OeTLic2A0sFrtWQtl8jKyhB UY1w== 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=YdgSFmFPCs58e8WF5mLFRNQNMS4Cn+BfP5eUtL0cbLK4tdCrkrLWZerKx+DjH61rep b336yiU6MCzPjG25cvveIUY99piQHoXaP7ea7t0qJc0ITQcBqYq0S5xLO4qwOV+idvLV z6YsEV9wXRUvLv5G3Xv8MAolGohkkNGAYZxsap8Zka1ddHUFDGj2IgcK9Zu/H5yp3w1V 2v+9JshvLiO0BZ9kfrKqPk9EF+Q22Oj3L7wp8p83M1THkfA+Z/NyEnLpAkT7bD0PjnGA FxGxEqofDGf6poCw7gs8RnM6JczvvqonVFMhB1V0rEVql6qhdPbDaeJtqeCTNXr1A/TL /ceg== X-Gm-Message-State: AKwxytf0M7XBLKfPG6fOmqxbw4bQqJ9TaoM5UTDuf7FogY0QLMkFFJ8l ULqVyCvUW2SR4moJZ2E+izU= X-Google-Smtp-Source: ACJfBovVRuMIgVUrcJYTVh9Ay8WW0CDZVOOrC/FLw2vV5QRTMXWkmA8+NdR6z+JEbJ0VxNYBTSm/Ig== X-Received: by 10.200.45.148 with SMTP id p20mr16634813qta.249.1515426345501; Mon, 08 Jan 2018 07:45:45 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:44 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:43:00 -0300 Message-Id: <20180108154303.6522-29-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 28/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 Mon Jan 8 15:43:01 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: 856903 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="GczFHeFH"; 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 3zFgCg1l1Sz9ryv for ; Tue, 9 Jan 2018 03:07:43 +1100 (AEDT) Received: from localhost ([::1]:41722 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZxd-0005B7-81 for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:07:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42953) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcW-0003JC-6O for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZcV-0000UM-FU for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:52 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:32781) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZcV-0000Tw-B2; Mon, 08 Jan 2018 10:45:51 -0500 Received: by mail-qk0-x241.google.com with SMTP id i17so10257586qke.0; Mon, 08 Jan 2018 07:45: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=Zi5btWNAivsb8igglLB2UASurWb1iE36wSNjba799BU=; b=GczFHeFH+sgm44kWNtL/9mYGrdFBrZHZvowqjSO6jH74U3VeNNoBMqEglNCWFRKf1X hxn6hrc3CSGQ9jj6Ztu4v2lh9BaWFSNIsw0dFtgs8YCYIrH/zAxkiEK9tU8t6op4uL3u LI6pye6T/Tqnzbza1eGHDyAYvQ1Sg03l6XyPjtdizQyZJ37uqoYpSA5GFN6GDzkOUIas SRKgVu477tugsvM3dJJNPEp7amWgimdGxkAJaLgqS48n9+g5HZlMM9qKxrDtHd11fr7D e5lRkqXm2RmppVxat3AtvPaIg3xU6nBtk0HAVUA1RKcE9LIJMw8fthFtwQbjEiKIojQj XZsA== 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=foR718qgTAnyRvtnhjsjryvPfrBmNse0lWnlu2kK4PR+Ah8esyW0IKj4UUZEzgJd2H FsIUZRyaLln+IobCl0PsT8fpFpi9igqB3Meti7cAN8cRbbAGURTWHhFIJoUUg9xUh9xs I93qaYuU0vYNVk71VUGeT920ZJ9AWQH7US3Vzlwdm2xjtoZaDKWY85RrY1CP8+KqNbq9 q41mfcESqDhBf7gXYUKUDX0BADTOnoHb7kMpDc7uiCJzHfIk3Uha0yRW0Q4qxFroKiwj +vsFF4EPsF7ROHNGOm6IF7x0PMCPiDlv96YE7XYSmR16RR7+ukFGqdMiGlV+K0eIYd/Z 9XHA== X-Gm-Message-State: AKwxyteTapFRxWdLLnSvadeWwmAnFEiUDB6zpMvk1NIqeySwb/M37jlS jOIE2LdfI7WYAdf0wAkDQdQ= X-Google-Smtp-Source: ACJfBotlx+DUZzphVzD6TEeRD2fESb1n1nlziKadfLDLN7FkAgk+YBJTD4QT3cuAScWpRzNsZG/t7Q== X-Received: by 10.55.78.143 with SMTP id c137mr17549934qkb.122.1515426350787; Mon, 08 Jan 2018 07:45:50 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:50 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:43:01 -0300 Message-Id: <20180108154303.6522-30-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 29/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 Mon Jan 8 15:43: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: 856906 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="cNMRdX4M"; 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 3zFgM66DdBz9ryT for ; Tue, 9 Jan 2018 03:14:10 +1100 (AEDT) Received: from localhost ([::1]:42141 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYa3s-0003fr-JQ for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:14:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42990) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcb-0003N2-DE for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:46:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZca-0000Z9-HQ for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:45:57 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:45260) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZca-0000Yn-CL; Mon, 08 Jan 2018 10:45:56 -0500 Received: by mail-qk0-x241.google.com with SMTP id o126so14630261qke.12; Mon, 08 Jan 2018 07:45:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6bwuV6OYuX9oSfhGslGZdroqy838Q0FU0pN9u0oOcvo=; b=cNMRdX4MMIocDTDJtwwe1kTK4f8Psl8z2ugrv1AvIn74EGYgi6DPpRzXk2F4zZoyw9 nNYACAi6STd0c7orOllMF78s99vuDMfVt2hUwmsdePO96GYkWj22Uu7yAVt/MpQAbqa7 Ewe5scGVsycdmb2l+eJUdGrdQpbcmss6t+IeM2QdG07NfJye4m/dpMghkZ1crZofpA4p 6IdjajGBV6J+IwgoadorSvASZF1MR8MJS7j/cMkK1twiWpMjMWLBtWr1Q+jEp1Y86LIK JmNQ5Rvvm5SdWe1Zs/hUZn5ra56aRuDwBrARE50Pw9RG+CckefppY51J7FppiDcjIWl2 cf7Q== 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=XzuunuT7Wge1z0y/GsU3l/mwjhmlssHEwjdRVBoda9TnJJ9c1GKL3Mhd8P5pMqutJT t6NgN1jpacScumgTcGa9JpTjXHBTDUVrnbv288OvfZ0vPUcq6Iw6p3ILgeEHjrG2g1wa uFp7ipDOfE5QwiAKRRUyDPAbu/ZzTGposDi8H42kc65fOxmEjVcfVyTXc3H+3WeuBScJ hrOynWOwVL+4NQZxqS5uzunUKbVMhDvMqGp2DzxAznb5wpsT0tZ0b3MxrPmMqwPCq6M6 k+sVQav5C4LXPrk1iTZ/G4L3YEC6PyHIzAH0tO0UYAbPLJfEsRhnG8KHsdaBnyemB3Wg O4kg== X-Gm-Message-State: AKwxytcUq+DA4my7TitdWP3dm7DzcfOzCLlrf8PmhLfQ07TLRZpvawii CdLvd48AhVMKSNs4kRxcICE= X-Google-Smtp-Source: ACJfBoso0LKV+PeFUm+CSRVD7o+fY6sJpIT2IyX7hY0LqataUxP6vXgTzctHk37u/an7lVy5y63VSQ== X-Received: by 10.55.43.222 with SMTP id r91mr17070064qkr.309.1515426355785; Mon, 08 Jan 2018 07:45:55 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:45:55 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:43:02 -0300 Message-Id: <20180108154303.6522-31-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 30/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost 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 Mon Jan 8 15:43: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: 856904 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="i2SJTb8y"; 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 3zFgGC0NNmz9ryv for ; Tue, 9 Jan 2018 03:09:54 +1100 (AEDT) Received: from localhost ([::1]:41743 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZzk-00078i-Ks for incoming@patchwork.ozlabs.org; Mon, 08 Jan 2018 11:09:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43043) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYZcg-0003Tv-Sa for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:46:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYZcg-0000eG-3M for qemu-devel@nongnu.org; Mon, 08 Jan 2018 10:46:02 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:33795) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYZcf-0000dq-VJ; Mon, 08 Jan 2018 10:46:02 -0500 Received: by mail-qk0-x243.google.com with SMTP id b76so1780442qkc.1; Mon, 08 Jan 2018 07:46:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qs+EJ2CmI/mNE1M/GPWrrMlCCZshfb9QWG1+yPga2fA=; b=i2SJTb8yGE2rjp1B0j2QAwFeoMYsuHTsbGKbvUix5ubGFQ6U0voeqIclyz/Wi7+DlH tHIgfKXweWiII7OBWmqlkEgV/09ieVE6FiRPsTX+EYnl4FVq9iZUZQ82GeDm5sveJdKF nmfL0moOMcxeJM2k4PIh/XbjibzBmm3zUD+WR6l1/IqSl+0ekNM2ASLuWooehJBsqs1K l/sdR1uOU5RTnqfXeh+hHDiTm6Vj9kU8xAxJXkBCBGYf1TOgfk/uQPlOvVAkwHe1hqVU qUSHxeRdb0WWpyEe7p1as18Z2tKxIq4NoVpsRLKtx9lpb9m5pZDQJSVjVKs2qqowYpWA ul3w== 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=ISqAtmVbKIJEJV5WlhZyyVt6Spmb66yLKfWupjNa4KjXHjgh2miGx5WYbeLVJN5ghy hQzqSun37i1uiJbEI61EjvZkcI4HEj9X3K57QVMsJDRhXghHU10e6B9+w4YZ4Vil63f8 5FJl9ffA0DYUBVcBxQnpAFybQfVST3CoKXD+TTUVtJpgrQretF4ai1CKklP0aPwTCDbi U5IX8hnyvqQ/C0V9OgL/sChJZYh6FdK9VlcTMpNMFUw02+zb1QxoAqCZFvaWybYXdL1i eOrUC4Cub0hlVHnBJoN5J+eCGo27IfsGkiChJd5WM9R8qTzaN0+WGj7JnV82ZrNmhVM5 S+yw== X-Gm-Message-State: AKwxytdNxLxFyjaPpiQjrZXzcC6Ppebu/82RCN2n9EDlcaXyGcy5OSZp 1XTsYX7X4+ODj5dBQrFGiKM= X-Google-Smtp-Source: ACJfBot96ApdrLC9DwS0BWNnl/zZ8WVaWdwCJ+Ik/l/atZ+XuPd4Jcxhk/MVnfN98bMSo7rKQIsYfg== X-Received: by 10.55.25.146 with SMTP id 18mr15893335qkz.214.1515426361441; Mon, 08 Jan 2018 07:46:01 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id u36sm7832382qtc.58.2018.01.08.07.45.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 07:46:00 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Andrey Smirnov , Igor Mitsyanko Date: Mon, 8 Jan 2018 12:43:03 -0300 Message-Id: <20180108154303.6522-32-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180108154303.6522-1-f4bug@amsat.org> References: <20180108154303.6522-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 v5 31/31] 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: "Edgar E . Iglesias" , Prasad J Pandit , =?utf-8?q?Gr=C3=A9gory_Estrade?= , qemu-devel@nongnu.org, Peter Crosthwaite , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Krzysztof Kozlowski , Jean-Christophe Dubois , Sai Pavan Boddu , qemu-arm@nongnu.org, Clement Deschamps , Andrew Baumann , Eduardo Habkost Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Acked-by: Alistair Francis --- 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