From patchwork Wed Jan 3 18:34:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855171 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hShnVngA"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBfsY6MyNz9s7n for ; Thu, 4 Jan 2018 05:41:37 +1100 (AEDT) Received: from localhost ([::1]:60809 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnyp-0000TF-Tr for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 13:41:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34056) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWnsh-0003bJ-0d for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWnsg-0007j9-0v for qemu-devel@nongnu.org; Wed, 03 Jan 2018 13:35:15 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:47078) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWnsf-0007ha-F6; Wed, 03 Jan 2018 13:35:13 -0500 Received: by mail-qt0-x242.google.com with SMTP id r39so3193817qtr.13; Wed, 03 Jan 2018 10:35:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y7leIEOif2Jddyf8ZwrzdSeJmqMALN4aBTDFz2uxsAs=; b=hShnVngAse2txfKxzy3vKXGwrDzDYr05Qb8PnrKZ0k79oUgdphrEuGHVaXcohPxADv 6PyMSpYFxwof1NU1iusrPy4PBPoUgqKyjY4lyUBEOS6eWdyNFxD4exZg7mWJzfbmZfK/ TYyS4bsvg6BgzjS2cRKye+MzpSGrfva1XifXZ0E13FJP3qNC6exvHKKS98Eq1eJ7OtSt 1hf7jsZXcDruxjfiNg7aByQjjp0Ciil8Xh64/b3/K3qkJgDHyMDX197F2EDjOR8kNjIs HoL2mfwqTEe6kslqcIH+QtNLY+yRBFptFUhT2hQqaWW2efrHb/0QotCW+bQybNB8D8Dw 85cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=y7leIEOif2Jddyf8ZwrzdSeJmqMALN4aBTDFz2uxsAs=; b=qy1C0VRRU8RL2prH4JpAoBZP/pzyXP15RHU4KJlilEVMRbUykbLTlwMPc2r67QyqWq uYd2sI06/KkV/GyLcoAQflYghSJ0vYTS+XJsrJGPcKQYSHSeO/Ga6mzxmn2uI/DoD4Q7 xLNNQcFwPI1Qv5+vDpGuE13FhP+xHKWAFJ9fW/O3qhqjLK9OiqZtRQMmr/zkDTfp6K6Z tPykkUXeH4zkkY+Gv8ggUIanBrI2Lk55FQjhefemxSP1LLg7hxyhpIHm2iTKljUdTCdz A9JQdHlmR8kWdJ2kOPNIyQ8oWUEj6vebNJDuTqQsAMlBFuD91mO/etZvR9af+teIWHNh nivg== X-Gm-Message-State: AKGB3mLvqpHURNShc9Nu+l6eAwXVXwvR5dLchw/JycEcFazAwdjA5oei U/bolSBxj80Ba9jVG4LyjeRayyzb X-Google-Smtp-Source: ACJfBos3EaTve5YANqqxXqvZ3FPWJmqWPA/5kay05zhqrVlH1Nvw4hlDE1UE4hLL5PZ/PU1tx1WHsg== X-Received: by 10.237.37.162 with SMTP id x31mr3044425qtc.58.1515004512932; Wed, 03 Jan 2018 10:35:12 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 185sm992854qkd.1.2018.01.03.10.35.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 10:35:12 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrey Smirnov , =?utf-8?q?Gr=C3=A9gory_Estrade_gregory_?= =?utf-8?q?=2E_estrade_=40_gmail_=2E_com_Clement_Deschamps?= , Andrew Baumann , Ashok kumar Date: Wed, 3 Jan 2018 15:34:09 -0300 Message-Id: <20180103183418.23730-17-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103183418.23730-1-f4bug@amsat.org> References: <20180103183418.23730-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v4 16/25] hw/arm/bcm2835_peripherals: implement SDHCI Spec v3 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Crosthwaite , qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/bcm2835_peripherals.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 12e0dd11af..b1a7bc1617 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -18,9 +18,6 @@ /* Peripheral base address on the VC (GPU) system bus */ #define BCM2835_VC_PERI_BASE 0x7e000000 -/* Capabilities for SD controller: no DMA, high-speed, default clocks etc. */ -#define BCM2835_SDHC_CAPAREG 0x52034b4 - static void bcm2835_peripherals_init(Object *obj) { BCM2835PeripheralState *s = BCM2835_PERIPHERALS(obj); @@ -254,14 +251,30 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp) memory_region_add_subregion(&s->peri_mr, RNG_OFFSET, sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->rng), 0)); - /* Extended Mass Media Controller */ - object_property_set_int(OBJECT(&s->sdhci), BCM2835_SDHC_CAPAREG, "capareg", - &err); - if (err) { - error_propagate(errp, err); - return; - } - + /* Extended Mass Media Controller + * + * Compatible with: + * - SD Host Controller Specification Version 3.0 Draft 1.0 + * - SDIO Specification Version 3.0 + * - MMC Specification Version 4.4 + * + * - 32-bit access only + * - default clocks + * - no DMA + * - SD high-speed (SDHS) card + * - maximum block size: 1kB + * + * For the exact details please refer to the Arasan documentation: + * SD3.0_Host_AHB_eMMC4.4_Usersguide_ver5.9_jan11_10.pdf ¯\_(ツ)_/¯ + */ + object_property_set_uint(OBJECT(&s->sdhci), 3, "sd-spec-version", &err); + object_property_set_uint(OBJECT(&s->sdhci), 52, "timeout-freq", &err); + object_property_set_uint(OBJECT(&s->sdhci), 52, "clock-freq", &err); + object_property_set_bool(OBJECT(&s->sdhci), false, "dma", &err); + object_property_set_bool(OBJECT(&s->sdhci), true, "1v8", &err); + /* FIXME verify/validate with someone from Broadcom? + object_property_set_uint(OBJECT(&s->sdhci), 1024, "max-block-length", &err); + */ object_property_set_bool(OBJECT(&s->sdhci), true, "pending-insert-quirk", &err); if (err) {