From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188408984977.3260330119936; Fri, 9 Feb 2018 07:00:08 -0800 (PST) Received: from localhost ([::1]:60239 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA9o-0005kO-7b for importer@patchew.org; Fri, 09 Feb 2018 10:00:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33575) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4b-0001YO-7b for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4Y-0004w0-EK for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:45 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:37028) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4Y-0004vf-9o for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:42 -0500 Received: by mail-qt0-x242.google.com with SMTP id s27so10833132qts.4 for ; Fri, 09 Feb 2018 06:54:42 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54:41 -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=cxvoLeLgOTAA8Ua2y+GoG/6l7qwUH6JgyGpjAlhAYM4=; b=R3333Z5is4GCGTwXOjs0rtMbC+L1rY6ZyXXefEkZK2/pMk2DHOM3BNaHSI2xN/KpvF RB8lYuBG/ZO6cxWZLSHwIob3s1+qnDw+Ag3gR3oZ9e+YGt4+bcAgutcOuhC+i6FJiDmN TmZ8Sxt3NEJiJ+tPOFNpSOTCbelGDF8sd6XyD+xDVDtLNGIXwHGA8LzpVCcfhwyj+Quf 4Au77SkYmE7oqZMyXpaMrQrXjo1jS5Diaa/ICH1V7q7oYg1FUJk1gik8q8TrDmiwv/EA 4rEL8BmT1qpiEhlLOfN8dn1NuymKaNW9g8MCfsG4lOlu5yyEsnrY7/f0cVOv2qNxcc1u KiEw== 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=cxvoLeLgOTAA8Ua2y+GoG/6l7qwUH6JgyGpjAlhAYM4=; b=iodc5iNCGUM2YELRzT/hoaggCNb2GH9D4qFvX1PI8xZMI32Yb48W1LCGWgiTQ2Z7OC LRaslJ58/Bkl511vnrEFW/4jmS0sIdDOR+6Lz2xvTBPdNWOMzUI0wzTNshipORR+p0Fw E3/h8KzWZNUzeatj5fUS2gcdcKOik/zINSjyuqBwYHJ98KSbCieBuBitdxzljTSdUi6R w6vzWcwh0vQYtKhhaWsKyBQ5THHB32EjGmVCmnR5luCnxFLryHIXK0v25X9uyYpxaq2i RzxPSpAv1P/fI/DzNKAYC4rs+iJv2A9wLDZuWW5ZMaxZSW6OF+vpt5CP+7IBXkBpnUU6 P4SA== X-Gm-Message-State: APf1xPCUih6i5ROiWMjR+TnB+1Zdltzi4DZ7COpKcqp6le1feKbUZ59f m7+Kez720FPQmG+bpWf0lcw= X-Google-Smtp-Source: AH8x226tFyA+VGdZ5w7/eZNGLRX3Lyrg6xV/uOZUt0IV1oQ/fQ5PWMGeyzJORMvIGl2PA7toLPmoIg== X-Received: by 10.237.48.2 with SMTP id 2mr4681591qte.232.1518188081725; Fri, 09 Feb 2018 06:54:41 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:01 -0300 Message-Id: <20180209145430.26007-2-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 01/30] sdhci: use error_propagate(local_err) in realize() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 avoid the "errp && *errp" pattern (not recommended in "qapi/error.h" commen= ts). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b395ac577d..f20a58068b 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1303,10 +1303,12 @@ static Property sdhci_pci_properties[] =3D { static void sdhci_pci_realize(PCIDevice *dev, Error **errp) { SDHCIState *s =3D PCI_SDHCI(dev); + Error *local_err =3D NULL; =20 sdhci_initfn(s); sdhci_common_realize(s, errp); - if (errp && *errp) { + if (local_err) { + error_propagate(errp, local_err); return; } =20 @@ -1384,9 +1386,11 @@ static void sdhci_sysbus_realize(DeviceState *dev, E= rror ** errp) { SDHCIState *s =3D SYSBUS_SDHCI(dev); SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); + Error *local_err =3D NULL; =20 sdhci_common_realize(s, errp); - if (errp && *errp) { + if (local_err) { + error_propagate(errp, local_err); return; } =20 --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151818822520172.02197616995534; Fri, 9 Feb 2018 06:57:05 -0800 (PST) Received: from localhost ([::1]:60209 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA6n-00036r-2h for importer@patchew.org; Fri, 09 Feb 2018 09:57:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4c-0001ZB-S8 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4b-0004xB-JW for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:46 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:44890) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4b-0004wv-Ds for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:45 -0500 Received: by mail-qk0-x241.google.com with SMTP id n188so10266319qkn.11 for ; Fri, 09 Feb 2018 06:54:45 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54: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=2wBVbOhGyHHi+tsuttipqDYs9jNr5nYfekMhF1BiN8g=; b=SCEjEgl+JCWu7iayTmI7/zqxlv6ck/+t7/VnIkymORUD7GMeQs6Pb5pEYmtHz9GZdd ST1ZJRDTOFZBWnH13wy+fDj+Le4m/In0VKom3UyGtmDgRCiCpVjRM4u41vnRIcSSQFlk KotjCjq6yFy0k6jyZzUgnNZZLY7c7HqRZlb9LVZdtD+hZBKroYFRc7SeWlomwqo9ENg4 BLUUoUoK1YtCN35BI2gy760l3I/ry8wNtN8pJWtPSs4ub6R2xkC23/ztbPa6OZWz+USp NZeoIAWwH/jz2QllnjWtPsCT79lWRtIqaiAI7FdILyJ19s+3Oy6uJRm8RdtPjv+yWviA BRIw== 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=2wBVbOhGyHHi+tsuttipqDYs9jNr5nYfekMhF1BiN8g=; b=GkPWLzPPMx5k7ecKqiHZIydNfZjtnR2C7U5rt5usZtgkeAU8MN7oU70YlGTP1OWIHC 0rsMRzfuDtIcNmaRElm3iULDhiCMLx5nXQn/FMfb5zXpkRLcvwPNTjIosQKZr14kaNd/ JtQjDqBTRaCoDuMd7esI0l9pjUUhCENQ4UKDZPjiuJJfKysMv7d4MAxqIoP3wuwgpcZA Z4ttBykRfgu1IKCY4F3IeX4FrlphRMUoqa/6+vMkfGml4xi+2kB8h+n9TSaNStUBF/Ni WUchTVSeW1EOkEntncxi7UFoV/LHsx4WKAd/veBVgCpO3HR0s0juK3PXnjp7zMw9alkA 0KSw== X-Gm-Message-State: APf1xPCp0fUFuJssnrS1IH/hApto+sOmBE0jRoUYRTjukNkYpBXGB0uX QK/APL6WQ+Xyw73FfEseyBs= X-Google-Smtp-Source: AH8x227JOhjSCPT4EVa+CJRls0IcfwEtp7dL4xxJUDJwS8xVaCg9no9I+sii6ZsPFSPrLjwonr04VQ== X-Received: by 10.55.163.211 with SMTP id m202mr4151826qke.77.1518188084776; Fri, 09 Feb 2018 06:54:44 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:02 -0300 Message-Id: <20180209145430.26007-3-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v12 02/30] sdhci: add qtest to check the SD capabilities 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 The PCI model is tested with the pc/x86_64 machine, the SysBus model with the smdkc210/arm machine. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Paolo Bonzini --- tests/sdhci-test.c | 145 +++++++++++++++++++++++++++++++++++++++++++++= ++++ tests/Makefile.include | 3 + 2 files changed, 148 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..82f3785a72 --- /dev/null +++ b/tests/sdhci-test.c @@ -0,0 +1,145 @@ +/* + * QTest testcase for SDHCI controllers + * + * Written by Philippe Mathieu-Daud=C3=A9 + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#include "qemu/osdep.h" +#include "hw/registerfields.h" +#include "libqtest.h" +#include "libqos/pci-pc.h" +#include "hw/pci/pci.h" + +#define SDHC_CAPAB 0x40 +#define SDHC_HCVER 0xFE + +static const struct sdhci_t { + const char *arch, *machine; + struct { + uintptr_t addr; + uint8_t version; + uint8_t baseclock; + struct { + bool sdma; + uint64_t reg; + } capab; + } sdhci; + struct { + uint16_t vendor_id, device_id; + } pci; +} models[] =3D { + /* PC via PCI */ + { "x86_64", "pc", + {-1, 2, 0, {1, 0x057834b4} }, + .pci =3D { PCI_VENDOR_ID_REDHAT, PCI_DEVICE_ID_REDHAT_SDHCI } }, + + /* Exynos4210 */ + { "arm", "smdkc210", + {0x12510000, 2, 0, {1, 0x5e80080} } }, +}; + +typedef struct QSDHCI { + struct { + QPCIBus *bus; + QPCIDevice *dev; + } pci; + union { + QPCIBar mem_bar; + uint64_t addr; + }; +} QSDHCI; + +static uint64_t sdhci_readq(QSDHCI *s, uint32_t reg) +{ + uint64_t val; + + if (s->pci.dev) { + qpci_memread(s->pci.dev, s->mem_bar, reg, &val, sizeof(val)); + } else { + val =3D qtest_readq(global_qtest, s->addr + reg); + } + + return val; +} + +/* tests */ + +static void check_capab_capareg(QSDHCI *s, uint64_t expected_capab) +{ + uint64_t capab; + + capab =3D sdhci_readq(s, SDHC_CAPAB); + g_assert_cmphex(capab, =3D=3D, expected_capab); +} + +static QSDHCI *machine_start(const struct sdhci_t *test) +{ + QSDHCI *s =3D g_new0(QSDHCI, 1); + + if (test->pci.vendor_id) { + /* PCI */ + uint16_t vendor_id, device_id; + uint64_t barsize; + + global_qtest =3D qtest_startf("-machine %s -device sdhci-pci", + test->machine); + + s->pci.bus =3D qpci_init_pc(NULL); + + /* Find PCI device and verify it's the right one */ + s->pci.dev =3D qpci_device_find(s->pci.bus, QPCI_DEVFN(4, 0)); + g_assert_nonnull(s->pci.dev); + vendor_id =3D qpci_config_readw(s->pci.dev, PCI_VENDOR_ID); + device_id =3D qpci_config_readw(s->pci.dev, PCI_DEVICE_ID); + g_assert(vendor_id =3D=3D test->pci.vendor_id); + g_assert(device_id =3D=3D test->pci.device_id); + s->mem_bar =3D qpci_iomap(s->pci.dev, 0, &barsize); + qpci_device_enable(s->pci.dev); + } else { + /* SysBus */ + global_qtest =3D qtest_startf("-machine %s", test->machine); + s->addr =3D test->sdhci.addr; + } + + return s; +} + +static void machine_stop(QSDHCI *s) +{ + g_free(s->pci.dev); + qtest_quit(global_qtest); +} + +static void test_machine(const void *data) +{ + const struct sdhci_t *test =3D data; + QSDHCI *s; + + s =3D machine_start(test); + + check_capab_capareg(s, test->sdhci.capab.reg); + + machine_stop(s); +} + +int main(int argc, char *argv[]) +{ + const char *arch =3D qtest_get_arch(); + char *name; + int i; + + g_test_init(&argc, &argv, NULL); + for (i =3D 0; i < ARRAY_SIZE(models); i++) { + if (strcmp(arch, models[i].arch)) { + continue; + } + name =3D 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 f41da235ae..52be9b3fa5 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -294,6 +294,7 @@ check-qtest-i386-y +=3D tests/migration-test$(EXESUF) check-qtest-i386-y +=3D tests/test-x86-cpuid-compat$(EXESUF) check-qtest-i386-y +=3D tests/numa-test$(EXESUF) check-qtest-x86_64-y +=3D $(check-qtest-i386-y) +check-qtest-x86_64-y +=3D tests/sdhci-test$(EXESUF) gcov-files-i386-y +=3D i386-softmmu/hw/timer/mc146818rtc.c gcov-files-x86_64-y =3D $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files= -i386-y)) =20 @@ -367,6 +368,7 @@ gcov-files-arm-y +=3D arm-softmmu/hw/block/virtio-blk.c check-qtest-arm-y +=3D tests/test-arm-mptimer$(EXESUF) gcov-files-arm-y +=3D hw/timer/arm_mptimer.c check-qtest-arm-y +=3D tests/boot-serial-test$(EXESUF) +check-qtest-arm-y +=3D tests/sdhci-test$(EXESUF) =20 check-qtest-aarch64-y =3D tests/numa-test$(EXESUF) =20 @@ -822,6 +824,7 @@ tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer= .o tests/test-qapi-util$(EXESUF): tests/test-qapi-util.o $(test-util-obj-y) tests/numa-test$(EXESUF): tests/numa-test.o tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o test= s/acpi-utils.o +tests/sdhci-test$(EXESUF): tests/sdhci-test.o $(libqos-pc-obj-y) =20 tests/migration/stress$(EXESUF): tests/migration/stress.o $(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"L= INK","$(TARGET_DIR)$@") --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188638567531.3190927031009; Fri, 9 Feb 2018 07:03:58 -0800 (PST) Received: from localhost ([::1]:60269 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekADM-0000Gg-W9 for importer@patchew.org; Fri, 09 Feb 2018 10:03:49 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33603) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4e-0001b3-Pm for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4d-0004yi-Ve for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:48 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:33610) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4d-0004yO-Qk for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:47 -0500 Received: by mail-qk0-x243.google.com with SMTP id c82so10272245qka.0 for ; Fri, 09 Feb 2018 06:54:47 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KYxQWY71SW2g4HYPzmz9r9jCN3AyBdWQH802Ccas7e8=; b=c2I+b5MA9mhciJydJs8x2I5ICFyBNT40heYwy9HaIqvsD0me37t0jOCKJnUar6Clyu MtzAkTo0FZrUXQg8UajDmGvnY0Sm+eXm5ze2I9gQ+ic6U+khL6MOAgYX4TvDIxFEnoMh 6od3lFaXCsnbMJcFam8YOq28UNcDWPn3a+btQpjceP3ttGdJpbbu7xPB7J3me+lauvOe v+O9yV7ezuF9V6eIwaMQvwQR7piwOrPH314PC+7IDFDL2geksAIAfUpzfMVI33tgTZJR usP/IBNY8twHI5NZPB3StEzalqGntntWCCGWCCX8VVIcPcVsyIaso4YGmLrYoRf1cCLi X0qw== 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=KYxQWY71SW2g4HYPzmz9r9jCN3AyBdWQH802Ccas7e8=; b=EGztlwscrA8EOUWfO7YROoC+vKxmjQMGPGKR2S/jgzX1yexj5G8kzgOvafM9qdb37x hTT9PbAW+yuOy5U9LbVWMjHc0on3b/Z/sBSHhlDb2YHXkFfGbcjPnMWmf+yuGaK4UZNI YcXCc8eUi9FkMMniNU8GLUHxpC0ZhpIo4j7UfB7uY+lC78mXNKkUCDR77eUwMhGdonrk 9AnwlBN4/JqjFsQH9os+IJTzrlSEiFHkhD9XAG/CgzuZAoTkrv3MLzrqs+h2YUxvgshs ZHhHazjoHGOgXj1h5sa0fHSUf0fRQ8wr9/j6MTpd2eAhM+bJmvMlzwhd5jST9OBklUHb HKog== X-Gm-Message-State: APf1xPADUhmCHtMTcgo7DTJ2Rtehblv0nruCW6OaM1pLQ4cKMvrDKryQ I7GpfGwNpxXk15UC9s9kS10= X-Google-Smtp-Source: AH8x2258ePm8R3ccFIMQCQvUIAJ9vvmUVdWPXXr0amZRJ+HepePJeJz0f/Mac1QsxS2lY8C1llNkFg== X-Received: by 10.55.19.76 with SMTP id d73mr2045318qkh.288.1518188087248; Fri, 09 Feb 2018 06:54:47 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:03 -0300 Message-Id: <20180209145430.26007-4-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v12 03/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 82f3785a72..51af5eac67 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -65,6 +65,15 @@ static uint64_t sdhci_readq(QSDHCI *s, uint32_t reg) return val; } =20 +static void sdhci_writeq(QSDHCI *s, uint32_t reg, uint64_t val) +{ + if (s->pci.dev) { + qpci_memwrite(s->pci.dev, s->mem_bar, reg, &val, sizeof(val)); + } else { + qtest_writeq(global_qtest, s->addr + reg, val); + } +} + /* tests */ =20 static void check_capab_capareg(QSDHCI *s, uint64_t expected_capab) @@ -75,6 +84,20 @@ static void check_capab_capareg(QSDHCI *s, uint64_t expe= cted_capab) g_assert_cmphex(capab, =3D=3D, expected_capab); } =20 +static void check_capab_readonly(QSDHCI *s) +{ + const uint64_t vrand =3D 0x123456789abcdef; + uint64_t capab0, capab1; + + capab0 =3D sdhci_readq(s, SDHC_CAPAB); + g_assert_cmpuint(capab0, !=3D, vrand); + + sdhci_writeq(s, SDHC_CAPAB, vrand); + capab1 =3D sdhci_readq(s, SDHC_CAPAB); + g_assert_cmpuint(capab1, !=3D, vrand); + g_assert_cmpuint(capab1, =3D=3D, capab0); +} + static QSDHCI *machine_start(const struct sdhci_t *test) { QSDHCI *s =3D g_new0(QSDHCI, 1); @@ -121,6 +144,7 @@ static void test_machine(const void *data) s =3D machine_start(test); =20 check_capab_capareg(s, test->sdhci.capab.reg); + check_capab_readonly(s); =20 machine_stop(s); } --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188419232967.1475634637353; Fri, 9 Feb 2018 07:00:19 -0800 (PST) Received: from localhost ([::1]:60240 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA9x-0005qo-05 for importer@patchew.org; Fri, 09 Feb 2018 10:00:17 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33614) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4h-0001eB-JL for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4g-0004ze-NP for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:51 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:37109) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4g-0004zW-Ic for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:50 -0500 Received: by mail-qk0-x242.google.com with SMTP id c128so10271522qkb.4 for ; Fri, 09 Feb 2018 06:54:50 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54: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=SauahonrmTtixgwy8mK3ZO5tl7yNBs9Ewk65/VkyDcA=; b=ux05f8ZAYmHSzDpR8YTZYkWgEKxTRLd12tImAXF3AfUFNYjkKeUwWxZEfhT2wuI0X5 0hUtm0dEgf3PLeCtUVHXCMzLHXFiWEdzgBVsWMHKqyju4s1pkPdU0y+gnc3oHIoNRLtm 5p/b6w/1z0znBKYxnQPLXkJzXmdTkX5uSlIwLCEgchGi6eQOafgwXS6wjXmCZ9tyJxK+ x4oKbIU1xv0lMOJiQAVPXFoW2jddxFa2yw4x4XXWYopPgaUix2wRPvFwu8cLOqTXoIxu tLACBL8ln+91C+FJizvqAlqUe/WtqXwI0Hoah/XAZg38F1FkHQSdh9jRMGN3aaUWu4dJ Pa3A== 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=SauahonrmTtixgwy8mK3ZO5tl7yNBs9Ewk65/VkyDcA=; b=CmF/oeOE9H9ip95Cx5cE6BFIwOFlRMUqr0qI2SJeqT0Z9H+I7PH9aBrBKvzNVvZr6V NDCUi5HURAS6gSMwbkZIOFsD+W1UzW1erxVRukmxk4FCR5MYT9vFfv3A1iCs3BRzzhlZ jJFj40h7TzC7lj/Ii9AVeS1A6Et+SiXfLWLTL21uwGQlMHw5QKPra1CAF3XteCP3SZyR o0IwubSYmjqTeuiTcPBOHCfRrMOrE7o+WQNGlIS/sefCq91GWbhWYGcG0u60SlPIiegx aSftfj6nlDLxkuRjR+I95O3Vmv5zC+7eGt58UAMc0muk/3OCoTH427+unKBOAYHKhru2 uA+A== X-Gm-Message-State: APf1xPCwlKTOOJ43omMarXma5byGo8H1RrA4cOC2657C8TtEk9GZo9zA FOmWHhCtsPCvmEk3u3Rwtz4Lxw3L X-Google-Smtp-Source: AH8x227Un15OZBnhkPSHQyRc9dN19gQiIIRyVhu5k8MSshOVFVpP0rG/7HUyLWIi/ho5Wu2Z/w5j1w== X-Received: by 10.55.154.13 with SMTP id c13mr4225852qke.197.1518188089979; Fri, 09 Feb 2018 06:54:49 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:04 -0300 Message-Id: <20180209145430.26007-5-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v12 04/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 51af5eac67..d6eb3c3a48 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -14,6 +14,7 @@ #include "hw/pci/pci.h" =20 #define SDHC_CAPAB 0x40 +FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); /* since v2 */ #define SDHC_HCVER 0xFE =20 static const struct sdhci_t { @@ -98,6 +99,18 @@ static void check_capab_readonly(QSDHCI *s) g_assert_cmpuint(capab1, =3D=3D, capab0); } =20 +static void check_capab_baseclock(QSDHCI *s, uint8_t expected_freq) +{ + uint64_t capab, capab_freq; + + if (!expected_freq) { + return; + } + capab =3D sdhci_readq(s, SDHC_CAPAB); + capab_freq =3D FIELD_EX64(capab, SDHC_CAPAB, BASECLKFREQ); + g_assert_cmpuint(capab_freq, =3D=3D, expected_freq); +} + static QSDHCI *machine_start(const struct sdhci_t *test) { QSDHCI *s =3D g_new0(QSDHCI, 1); @@ -145,6 +158,7 @@ static void test_machine(const void *data) =20 check_capab_capareg(s, test->sdhci.capab.reg); check_capab_readonly(s); + check_capab_baseclock(s, test->sdhci.baseclock); =20 machine_stop(s); } --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151818863620292.73577931032423; Fri, 9 Feb 2018 07:03:56 -0800 (PST) Received: from localhost ([::1]:60270 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekADT-0000Mq-8O for importer@patchew.org; Fri, 09 Feb 2018 10:03:55 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33664) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4n-0001i9-Hy for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4j-00050a-67 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:56 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:46965) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4j-00050G-1U for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:53 -0500 Received: by mail-qk0-x242.google.com with SMTP id d144so3446569qkg.13 for ; Fri, 09 Feb 2018 06:54:52 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54:52 -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=1d4J1U5LXDO0yqCTUXqrk9Gir3hMmhvKwibceVNCHEY=; b=HioCGj6stgB6VyvpMKper68xS1YynSI3Ja7hju5RtlT71y658m1hCVE5mVML3b6qx7 wkzw9DPYPXaTro+nV6PHLrzXySXXyRJ3yud6YId/R1Onrd1uT+8OU8wIbUilz+0nzFZC nATMJfh+D9pj3z+DV9ekKQDS118p4RL/u26XNdRyPai0Wd8AWa9yxTy0Pr5/nI9J4cmd Rjb9WL+AqHOa96tbKYciPDjIQdVOmbya0aMJn+lRq8KacJDX77YMRp37bBaXYd1KBvXt l8tDXlB17KS8dS3NGiiwNZHyVE++bLOYGtrL1JeHxIQHvFiPq2pARpeqlHwx6a+hR45m Rbdw== 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=1d4J1U5LXDO0yqCTUXqrk9Gir3hMmhvKwibceVNCHEY=; b=RL8qxJbpem4aAGIoQgNZDHfQPf4AXbNjZ/Vz8aLyLMNJJLLhtAY7Cwmqh11kjIrCp2 9p8/rv6DQa3Ox8u8/eZ12eI+hKzzyoZm3MSh9HUbsxOUhqVEAHjLv7FQnYcYZrOGoNdh vZAFW6zkk26NXZm0Sew6NxKiPX3qWylcZECKLKDD8Ol/ajWV6B6f6Smjt9e4OyrsqWFY zyq4mdo8zUHgbokZ1sdBD0LLwmO0b33j0faS7nwkrHYQ8XZ5NFRiVjwW7HcmHfhXKuDK O9UxUmncj5iTFPqX6NEeVUvCjtN4AbksYxOOBLf5LazmAf/P0adyV+/WpOLyFo50JkJ5 eHrw== X-Gm-Message-State: APf1xPBkKHeUe6KNFctJSZ56QrLxr6whebC7XKJR57af6Pv49/qecXed R27fl3ld1uRwsYVLMNDWWys= X-Google-Smtp-Source: AH8x224XnlPqhj53Fc3/pkNRTQrLZTwU3eKZ+xVXOY+pGM2HPxukP9q/9ECbc3S10/ug7iMARPmQZA== X-Received: by 10.55.86.195 with SMTP id k186mr4135875qkb.338.1518188092528; Fri, 09 Feb 2018 06:54:52 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:05 -0300 Message-Id: <20180209145430.26007-6-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v12 05/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: 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 d6eb3c3a48..7c50c0482b 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -15,6 +15,7 @@ =20 #define SDHC_CAPAB 0x40 FIELD(SDHC_CAPAB, BASECLKFREQ, 8, 8); /* since v2 */ +FIELD(SDHC_CAPAB, SDMA, 22, 1); #define SDHC_HCVER 0xFE =20 static const struct sdhci_t { @@ -111,6 +112,15 @@ static void check_capab_baseclock(QSDHCI *s, uint8_t e= xpected_freq) g_assert_cmpuint(capab_freq, =3D=3D, expected_freq); } =20 +static void check_capab_sdma(QSDHCI *s, bool supported) +{ + uint64_t capab, capab_sdma; + + capab =3D sdhci_readq(s, SDHC_CAPAB); + capab_sdma =3D FIELD_EX64(capab, SDHC_CAPAB, SDMA); + g_assert_cmpuint(capab_sdma, =3D=3D, supported); +} + static QSDHCI *machine_start(const struct sdhci_t *test) { QSDHCI *s =3D g_new0(QSDHCI, 1); @@ -158,6 +168,7 @@ static void test_machine(const void *data) =20 check_capab_capareg(s, test->sdhci.capab.reg); check_capab_readonly(s); + check_capab_sdma(s, test->sdhci.capab.sdma); check_capab_baseclock(s, test->sdhci.baseclock); =20 machine_stop(s); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188845134714.6720595140391; Fri, 9 Feb 2018 07:07:25 -0800 (PST) Received: from localhost ([::1]:60298 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAGq-0003ND-8k for importer@patchew.org; Fri, 09 Feb 2018 10:07:24 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33663) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4n-0001i8-Hx for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4l-00051z-Lr for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:56 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:36632) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4l-00051q-GZ for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:55 -0500 Received: by mail-qt0-x242.google.com with SMTP id q18so4072745qtl.3 for ; Fri, 09 Feb 2018 06:54:55 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54:54 -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=9GkCd2o33roPUiEBbNgJarqIeD0fCwOumOTkz9kSBb4=; b=nL/Dx6VLVwdFyG2eezf4P7mzUIcW6fXlacTMFe1juC7J4tT7Y1YuX9sLeDek7ueLKi 7KxdX1Dc7vNefiOA7ow8ydw2X4LfTNMAO9p+Y1yl9VBAmH2sbB/zOd4jLDh82HrFIF9n XgJkReuHmRA2rKdjent/psi8eoyry9WJTZi30JJ/xFodj2Hr53IQYgS0Umub4SdUCIqI 6F74kRIKg5osbZqjFk6y/rYAUAUNV9IFnc9BdgZjFly5mNX0wTlrQCjfHWkvOA7M6XJA nBMmKEqkuM3g6JHcxeeFXcDcsMGTFp2IR+3QdRm4m3L6XnqWk2BTg/UQD1rUBQX7OkDE n70Q== 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=9GkCd2o33roPUiEBbNgJarqIeD0fCwOumOTkz9kSBb4=; b=DcWgYvAFEOBfh6Un8mD9QlZLnfaGocXz11YxPjeT+TSf9QZ3TT32wdhOBoIsMUMjfF 2GpfdxfdTZToupcOo8j9PxN9JLdbyiwo/lU9ue1QqaQATze8uvKkoYc/WJdfe9+mqZwi zZF79eOGu26gYzNIZkfDzLsuahVEn1NtE6X2cp72YPOtbPPUlWhTxErfggzo5WKuTUAA x0z2G9NkAlJwSW4G/kF6n+YrYQjZcucb0tNmnBCFooOTUMEJx9DyOVNbA/L1tTS+nWoL rR+M2iHzNmcdTyEpbrflSbLkd0G92SZR/uWmzKg6VI3FtqQL8petsXHs2K9AsccOArz3 INzA== X-Gm-Message-State: APf1xPCYkcgRCAk+xeYXesIgAdebYF+0cVrLJ5OBwLRXeQT1ErRrFcBW m1qwebU58Zx3ViriLDnNxKnkQeKz X-Google-Smtp-Source: AH8x227MtiWim26WgarAgWex6ZXsPnmBWBEIlOtKt6DKKpMjL6Lc5hgRE50kdpop1wrjpoDiZZD05Q== X-Received: by 10.200.24.21 with SMTP id q21mr952640qtj.309.1518188094991; Fri, 09 Feb 2018 06:54:54 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:06 -0300 Message-Id: <20180209145430.26007-7-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 06/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 7c50c0482b..24feea744a 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -54,6 +54,19 @@ typedef struct QSDHCI { }; } QSDHCI; =20 +static uint32_t sdhci_readl(QSDHCI *s, uint32_t reg) +{ + uint32_t val; + + if (s->pci.dev) { + qpci_memread(s->pci.dev, s->mem_bar, reg, &val, sizeof(val)); + } else { + val =3D qtest_readl(global_qtest, s->addr + reg); + } + + return val; +} + static uint64_t sdhci_readq(QSDHCI *s, uint32_t reg) { uint64_t val; @@ -78,6 +91,16 @@ static void sdhci_writeq(QSDHCI *s, uint32_t reg, uint64= _t val) =20 /* tests */ =20 +static void check_specs_version(QSDHCI *s, uint8_t version) +{ + uint32_t v; + + v =3D sdhci_readl(s, SDHC_HCVER); + v &=3D 0xff; + v +=3D 1; + g_assert_cmpuint(v, =3D=3D, version); +} + static void check_capab_capareg(QSDHCI *s, uint64_t expected_capab) { uint64_t capab; @@ -166,6 +189,7 @@ static void test_machine(const void *data) =20 s =3D machine_start(test); =20 + check_specs_version(s, test->sdhci.version); check_capab_capareg(s, test->sdhci.capab.reg); check_capab_readonly(s); check_capab_sdma(s, test->sdhci.capab.sdma); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188239288780.3723503643487; Fri, 9 Feb 2018 06:57:19 -0800 (PST) Received: from localhost ([::1]:60210 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA74-0003MS-CI for importer@patchew.org; Fri, 09 Feb 2018 09:57:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4q-0001lF-77 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4o-00055N-TH for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:00 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:33610) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4o-00054c-MS for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:54:58 -0500 Received: by mail-qk0-x241.google.com with SMTP id c82so10272953qka.0 for ; Fri, 09 Feb 2018 06:54:58 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:54:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4iCWfg5fxX+7zuhf56hm7SeVtAR3s4JuI1VjF2jKSn8=; b=WYOGXofohzLrRhF7dRFecW/lVYoxsHdeoMp9e7JXKlyX4g7aUWwDkkjzzrYCngzhMc Mn5rYqReAG/zl7yTuWNedBr05+LOuH4mXjC5pOTvsvHWgge1hn65awmAqAs5ua5xWHwR DYMFuTajiQvZnzp8q8bzOIQrWsCAVSXt/3xAvnaxRkw6UpZhw5pmI8CTKgvUoZZDVrZo 808pXozVrVvPlPOX3cvdOd8rKus37d6NqEpdtUS4iD8hL102EfJsBJYG+E/3ZxR+lIRL GfIKrP51iMJoDDTcRXnWzZRa5rV38uHStL2pafOnaXKSDbsa2uTO0KB7dgUaOYkYgjSz IYNg== 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=4iCWfg5fxX+7zuhf56hm7SeVtAR3s4JuI1VjF2jKSn8=; b=f6NS203UQ9ckKOEbhIyHiDLDXppmrCKol+N4ZA/8SSIUIBdSffrNzOFuRZ3NukXMlc 8wqeABhiJ5TeHNHbuRb2/NJYYPTBbDePViyIU9F2YM6Gbq2aNWjfPCvej30FefblZMPb xXZ9CQPSLctvoWsuP8Gl04pDLKzgBsprTBaaFsU1MSOzCit1SIhqoEeZkIBRa81idKNE WwIX5HSUCrk5H6Sn8mDSM583PVQ1p7O2r3hTscOn/qLvMgCMKXtH7dxVlJ/6IeY8Rzqx X3zNDAGE940JKMi6c/FV2x0wAMGwfSSrLdXfWuklW1CCSX7ueO3c+zYzWrCdDLFvVrEG NFhw== X-Gm-Message-State: APf1xPDQ/K7iC+GJicW+sDqBwJtyc+I4aWNk8TuyCe49R/SDKb0txIhv 7YiH1g3mC634Hcvihvt5ICQ= X-Google-Smtp-Source: AH8x226naSZWEYRRS/ZTBsCkF7GynAz+fp+LS6/I64l5/ov+lv80CD9aD2cIML+xMIS0NS+bXvUONw== X-Received: by 10.55.146.195 with SMTP id u186mr4106861qkd.278.1518188098010; Fri, 09 Feb 2018 06:54:58 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:07 -0300 Message-Id: <20180209145430.26007-8-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v12 07/30] sdhci: add a 'spec_version property' (default to v2) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 4 ++-- include/hw/sd/sdhci.h | 2 ++ hw/sd/sdhci.c | 27 +++++++++++++++++++++++---- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 0991acd724..64556480a9 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -216,9 +216,9 @@ /* Slot interrupt status */ #define SDHC_SLOT_INT_STATUS 0xFC =20 -/* HWInit Host Controller Version Register 0x0401 */ +/* HWInit Host Controller Version Register */ #define SDHC_HCVER 0xFE -#define SD_HOST_SPECv2_VERS 0x2401 +#define SDHC_HCVER_VENDOR 0x24 =20 #define SDHC_REGISTERS_MAP_SIZE 0x100 #define SDHC_INSERTION_DELAY (NANOSECONDS_PER_SECOND) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index f8d1ba3538..2a26b46f05 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -78,6 +78,7 @@ typedef struct SDHCIState { /* Read-only registers */ uint64_t capareg; /* Capabilities Register */ uint64_t maxcurr; /* Maximum Current Capabilities Register */ + uint16_t version; /* Host Controller Version Register */ =20 uint8_t *fifo_buffer; /* SD host i/o FIFO buffer */ uint32_t buf_maxsz; @@ -93,6 +94,7 @@ typedef struct SDHCIState { /* Configurable properties */ bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ uint32_t quirks; + uint8_t sd_spec_version; } SDHCIState; =20 /* diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index f20a58068b..48924feb07 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -174,7 +174,8 @@ static void sdhci_reset(SDHCIState *s) =20 timer_del(s->insert_timer); timer_del(s->transfer_timer); - /* Set all registers to 0. Capabilities registers are not cleared + + /* Set all registers to 0. Capabilities/Version registers are not clea= red * and assumed to always preserve their value, given to them during * initialization */ memset(&s->sdmasysad, 0, (uintptr_t)&s->capareg - (uintptr_t)&s->sdmas= ysad); @@ -919,7 +920,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset,= unsigned size) ret =3D (uint32_t)(s->admasysaddr >> 32); break; case SDHC_SLOT_INT_STATUS: - ret =3D (SD_HOST_SPECv2_VERS << 16) | sdhci_slotint(s); + ret =3D (s->version << 16) | sdhci_slotint(s); break; default: qemu_log_mask(LOG_UNIMP, "SDHC rd_%ub @0x%02" HWADDR_PRIx " " @@ -1175,11 +1176,22 @@ static inline unsigned int sdhci_get_fifolen(SDHCIS= tate *s) } } =20 +static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) +{ + if (s->sd_spec_version !=3D 2) { + error_setg(errp, "Only Spec v2 is supported"); + return; + } + s->version =3D (SDHC_HCVER_VENDOR << 8) | (s->sd_spec_version - 1); +} + /* --- qdev common --- */ =20 #define DEFINE_SDHCI_COMMON_PROPERTIES(_state) \ - /* Capabilities registers provide information on supported features - * of this specific host controller implementation */ \ + DEFINE_PROP_UINT8("sd-spec-version", _state, sd_spec_version, 2), \ + \ + /* Capabilities registers provide information on supported + * features of this specific host controller implementation */ \ DEFINE_PROP_UINT64("capareg", _state, capareg, SDHC_CAPAB_REG_DEFAULT)= , \ DEFINE_PROP_UINT64("maxcurr", _state, maxcurr, 0) =20 @@ -1207,6 +1219,13 @@ static void sdhci_uninitfn(SDHCIState *s) =20 static void sdhci_common_realize(SDHCIState *s, Error **errp) { + Error *local_err =3D NULL; + + sdhci_init_readonly_registers(s, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } s->buf_maxsz =3D sdhci_get_fifolen(s); s->fifo_buffer =3D g_malloc0(s->buf_maxsz); =20 --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151818884263675.534377743601; Fri, 9 Feb 2018 07:07:22 -0800 (PST) Received: from localhost ([::1]:60297 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAGn-0003Ji-Ol for importer@patchew.org; Fri, 09 Feb 2018 10:07:21 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33887) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4x-0001uR-1b for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4r-00058M-BN for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:07 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:46968) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4r-00057s-77 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:01 -0500 Received: by mail-qk0-x243.google.com with SMTP id d144so3447094qkg.13 for ; Fri, 09 Feb 2018 06:55:01 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.54.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XgcV1DxPbwecE+x/PSLVariBirqTZYxkPoMnXlwq4/s=; b=MtMtGr2BTS/zl0QAIpq8YU6rwHT4ExwP8ZYHPZEvDgQVWUEkN1xy5YNykoFnT39v2n TL8k4qeSH9Dt+ncBRP0jezK5yH7OL6L9GlsgHLMeVZ1xKAc2hQyFOxuiwyDEjqUNE18M 1LhJYHt1mwUvR9QSMsogk9htzu5wA5N8lt09kvEuOgthtiwCsYdr9cVye5uJd8GZWWUO jcxnkne0zHpzlDiCUjvb4lltDVQ+UPwcxmbU8fwWTgulNXRGRSQugJMDEdpBTVTUgnNg SthUFwPPjth/xrebSRTx0C3FoyFjWwuKhP8Y/zM7oGfI/rerZg5Sid5x8aHGHro/jBig 818Q== 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=XgcV1DxPbwecE+x/PSLVariBirqTZYxkPoMnXlwq4/s=; b=b2PMiqXjf0c2tTZEi1O2s99Sw4QV0IGFpvWxONCb1L6nkrTmmAVV1tcps+qSvVDHhu kfSDqCT7R8zh9uumD7bDbi/zEhETbL4tk+Hr+8qAebOiBkMj3NcnZgIU/RyEzDEFJinC 3FtLD0HnwWx6aob1K3Vs2nuuW5taxGNb2lgxTcCTjg1+zxqcoV2BNT08k9rRkvmoMkX3 77N0ko5rxlLBVPca0GS4x9XgA1iSblnS/reDf9zZ0n2m4Ax4tcTY9u2qz7M7gHrwlgyH 32GUCE2YEY6HwoF3vF1EjYUFEoQb6FshWG/KOtYtsxTZAnxsiIGWFtaK28O0XqJYQBfs 2xnA== X-Gm-Message-State: APf1xPAxx+7GShIt/l7yr/9Dqc630Fuedr9e8gYa2DsYXqHv7qaUZ5DL io9g0Rw079s6YbeoL22Qe90= X-Google-Smtp-Source: AH8x225Ma2Dpm+cDAxmoUnTLoTkPtMRFCvwttipt9BBifULnieCRetP4/JUdydhiQ4w65cvuQSdLRA== X-Received: by 10.55.154.13 with SMTP id c13mr4226614qke.197.1518188100648; Fri, 09 Feb 2018 06:55:00 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:08 -0300 Message-Id: <20180209145430.26007-9-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v12 08/30] sdhci: use a numeric value for the default CAPAB 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 using many #defines is not portable when scaling to different HCI. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 74 +++++++++++++------------------------------------------= ---- 1 file changed, 16 insertions(+), 58 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 48924feb07..39eeccc4d5 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -39,67 +39,25 @@ #define TYPE_SDHCI_BUS "sdhci-bus" #define SDHCI_BUS(obj) OBJECT_CHECK(SDBus, (obj), TYPE_SDHCI_BUS) =20 +#define MASKED_WRITE(reg, mask, val) (reg =3D (reg & (mask)) | (val)) + /* Default SD/MMC host controller features information, which will be * presented in CAPABILITIES register of generic SD host controller at res= et. - * If not stated otherwise: - * 0 - not supported, 1 - supported, other - prohibited. + * + * support: + * - 3.3v and 1.8v voltages + * - SDMA/ADMA1/ADMA2 + * - high-speed + * max host controller R/W buffers size: 512B + * max clock frequency for SDclock: 52 MHz + * timeout clock frequency: 52 MHz + * + * does not support: + * - 3.0v voltage + * - 64-bit system bus + * - suspend/resume */ -#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 - * 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 -#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_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 ||\ - SDHC_CAPAB_TOUNIT > 1 -#error Capabilities features can have value 0 or 1 only! -#endif - -#if SDHC_CAPAB_MAXBLOCKLENGTH =3D=3D 512 -#define MAX_BLOCK_LENGTH 0ul -#elif SDHC_CAPAB_MAXBLOCKLENGTH =3D=3D 1024 -#define MAX_BLOCK_LENGTH 1ul -#elif SDHC_CAPAB_MAXBLOCKLENGTH =3D=3D 2048 -#define MAX_BLOCK_LENGTH 2ul -#else -#error Max host controller block size can have value 512, 1024 or 2048 onl= y! -#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_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_ADMA2 << 19) | (MAX_BLOCK_LENGTH << 16) | \ - (SDHC_CAPAB_BASECLKFREQ << 8) | (SDHC_CAPAB_TOUNIT << 7) | \ - (SDHC_CAPAB_TOCLKFREQ)) - -#define MASKED_WRITE(reg, mask, val) (reg =3D (reg & (mask)) | (val)) +#define SDHC_CAPAB_REG_DEFAULT 0x057834b4 =20 static uint8_t sdhci_slotint(SDHCIState *s) { --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189051463235.1851404417049; Fri, 9 Feb 2018 07:10:51 -0800 (PST) Received: from localhost ([::1]:60330 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAK2-0006Iy-4c for importer@patchew.org; Fri, 09 Feb 2018 10:10:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33929) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4z-0001wQ-0Q for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4u-0005BZ-2H for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:08 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:45098) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4t-0005B8-To for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:03 -0500 Received: by mail-qk0-x244.google.com with SMTP id x127so10258560qkb.12 for ; Fri, 09 Feb 2018 06:55:03 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=X0+X5z6pINiMGVyX/F3m+b6yOLcj2g4p4BPRq/lVCoY=; b=ICMMJmJZ7AaNHx21kqvaMkJSIu8lCr6y523g5qAi3sxbTLfOfknA25F05w8bFQlzqc Er2V7qEkcETuSVOVd2/DMvGSvrZU3j9id6Pt3CCj3GTkKYzo2H5RrDPvHEogRc1fo3mT K/cCpdCa985MgIAALyQi3dmL10sf7g1+h3f2Ed6bKmLjVMpioWRVPOhCzY2c3hC02W6s /zswIsAUmEZ0fzDESwDeLg58VsZEBH7ILZZnhdUcH+1guiYc/tgy7SAhLUZZbxaDWnNl S1sO2dcAB9goByWsAoYRWzd0E4JkXbJ8sth5FG0k+sgtGy1r1iMISNRwSw3FPXiW1xNL gqDg== 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=X0+X5z6pINiMGVyX/F3m+b6yOLcj2g4p4BPRq/lVCoY=; b=DbFHQEa7WAQDGh3uXXhKdiFm12TVhKiAOWATn0LSjYACg4OkZlDJN3EbEwEQPTVjpq 1KiHy8ZVPig3mzD6Zc8HQcvmWc1OEuJU4ruxdXi1e0mw9bH9A4DXU7NMYSNNrxrEBsK3 NNROUuMkl1q0Vri3QmqDIaVAUiuu2JNpPjDj8UW61YPlRc6LDr9a5Y+5qNQTdQR5Ahjg 7EhcuMJLiGefIbFZwkUWMcByua9SQSliQIttMYtwoXXSnBk2eTcc6iOhdYaAZT+cOA+9 bYUl1Gvr5qyQlFxzEMduEeRqWXPvbylVfyGT3ba5uwE1//kDjJE0nT66jE0/n70ghGEr hciQ== X-Gm-Message-State: APf1xPABoWUPMrsTFCdrc5djBJwC02UDCrC+jY8fFcSgiSY50Yc2LfIH IhXE1ibwgQGhtwYdcNZc0fo= X-Google-Smtp-Source: AH8x226DUhdL29AFRDBzJ40bwWhQ0dZ9/s5nmVsCqahH+BFFpnH0Rxa1KeLzcdJYTTB0U1Lj1NYHvQ== X-Received: by 10.55.222.5 with SMTP id h5mr4375892qkj.312.1518188103326; Fri, 09 Feb 2018 06:55:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:09 -0300 Message-Id: <20180209145430.26007-10-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v12 09/30] sdhci: simplify sdhci_get_fifolen() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 4 +++- hw/sd/sdhci.c | 20 +++++--------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 64556480a9..def1c7f7aa 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -24,6 +24,8 @@ #ifndef SDHCI_INTERNAL_H #define SDHCI_INTERNAL_H =20 +#include "hw/registerfields.h" + /* R/W SDMA System Address register 0x0 */ #define SDHC_SYSAD 0x00 =20 @@ -185,7 +187,7 @@ #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, MAXBLOCKLENGTH, 16, 2); =20 /* HWInit Maximum Current Capabilities Register 0x0 */ #define SDHC_MAXCURR 0x48 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 39eeccc4d5..e25f1da0f3 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -59,6 +59,11 @@ */ #define SDHC_CAPAB_REG_DEFAULT 0x057834b4 =20 +static inline unsigned int sdhci_get_fifolen(SDHCIState *s) +{ + return 1 << (9 + FIELD_EX32(s->capareg, SDHC_CAPAB, MAXBLOCKLENGTH)); +} + static uint8_t sdhci_slotint(SDHCIState *s) { return (s->norintsts & s->norintsigen) || (s->errintsts & s->errintsig= en) || @@ -1119,21 +1124,6 @@ static const MemoryRegionOps sdhci_mmio_ops =3D { .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 -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; - } -} - static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) { if (s->sd_spec_version !=3D 2) { --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151818825535065.97010092859466; Fri, 9 Feb 2018 06:57:35 -0800 (PST) Received: from localhost ([::1]:60211 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA7K-0003YP-FS for importer@patchew.org; Fri, 09 Feb 2018 09:57:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33925) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA4y-0001wH-Ud for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA4w-0005EK-T0 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:08 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:37033) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA4w-0005Dv-NV for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:06 -0500 Received: by mail-qt0-x243.google.com with SMTP id s27so10834780qts.4 for ; Fri, 09 Feb 2018 06:55:06 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:05 -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=yCTRlpOm+RJtvree0QsWpvkOni6/xEmifvqw+2Eg4Qc=; b=OMmLCPh1as4QmnVUvkEJ71/l6gf1jn72FMfKUwl/+jvMUNKlRPyBe4Utv6YGNj16OE v3ERfy49ixskznKzVSVEGHEHtJNM8zMWZUcO11GgLkVz3TOOmZhilox3LUCEvgZQRpxT FZB9gJi7QF96l02IceWRbDt+6RBaIVSlQyVZjSlo/tvdngeigQpbEZGkS26GcX+d9iSI cRD8ts3r3Eq0fwLaXUMNDyAO8F1b+6/RAmIy7MCewbXq5zMxCevpPVhh/WG2ZTcGiZO5 uAcBrAXAD4hERi5ewllQbRVDTXOJPBU9MFCfq55RCwh/0byHuqYZ/fB0idpBP+ecNMS4 dM6g== 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=yCTRlpOm+RJtvree0QsWpvkOni6/xEmifvqw+2Eg4Qc=; b=VN3IHlbTmDvn/btVMrDr4h7SgC5wFAn4AUUE3ZypXqn065/XsZDXIIUY3Wv1mInzjS yMCp2CDsdMNzZV61bvErUEtnIni1L/v5MN0IHy3Uqw5lEPZ1f3rImifA3b3aS7aybzng DwJ55paT4kq8r9GzjNzsHUwVAjyImcL2TpYD+TOr4InAdSG+1NSxqAo3bglsp98FND1G DqdbSMlWI1JJ4v01qPlX5/SYh3TyypAitUz2OXr2a53hXE0A6zDGvnG5nOoQq9m+4Yb1 bnWLUbi8SK86y4oUH55jQtncOd28n0N8UOJeirPPKC8/G5lv3ckrPi/2Bmh1txyV6kQw BVlg== X-Gm-Message-State: APf1xPBb5LZFCwmv9luS3gXN7q2IwDLv75rftUBt2eEHFnl7XrAxqQDq ITNdJuDSFrtCgwbo+5e6nCU= X-Google-Smtp-Source: AH8x224Uht/H4ZzvSyd7YmhWvzZIdr0Pi9RUR7S1FIhG+eJB4pMnwZzoGjmSIEl8ZvJhnFM016Ujtw== X-Received: by 10.200.42.168 with SMTP id b37mr4779732qta.321.1518188106038; Fri, 09 Feb 2018 06:55:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:10 -0300 Message-Id: <20180209145430.26007-11-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v12 10/30] sdhci: check the Spec v1 capabilities correctness X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Incorrect value will throw an error. Note than Spec v2 is supported by default. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 22 ++++++++++- hw/sd/sdhci.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++= +++- hw/sd/trace-events | 1 + 3 files changed, 118 insertions(+), 4 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index def1c7f7aa..96d7f4dde7 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -86,7 +86,9 @@ =20 /* R/W Host control Register 0x0 */ #define SDHC_HOSTCTL 0x28 -#define SDHC_CTRL_LED 0x01 +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 @@ -102,6 +104,7 @@ /* R/W Power Control Register 0x0 */ #define SDHC_PWRCON 0x29 #define SDHC_POWER_ON (1 << 0) +FIELD(SDHC_PWRCON, BUS_VOLTAGE, 1, 3); =20 /* R/W Block Gap Control Register 0x0 */ #define SDHC_BLKGAP 0x2A @@ -124,6 +127,7 @@ =20 /* R/W Timeout Control Register 0x0 */ #define SDHC_TIMEOUTCON 0x2E +FIELD(SDHC_TIMEOUTCON, COUNTER, 0, 4); =20 /* R/W Software Reset Register 0x0 */ #define SDHC_SWRST 0x2F @@ -180,17 +184,31 @@ =20 /* 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); =20 /* 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) +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); =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); =20 /* W Force Event Auto CMD12 Error Interrupt Register 0x0000 */ #define SDHC_FEAER 0x50 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index e25f1da0f3..5ed463ca77 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "sysemu/block-backend.h" @@ -64,6 +65,92 @@ static inline unsigned int sdhci_get_fifolen(SDHCIState = *s) return 1 << (9 + FIELD_EX32(s->capareg, SDHC_CAPAB, MAXBLOCKLENGTH)); } =20 +/* return true on error */ +static bool sdhci_check_capab_freq_range(SDHCIState *s, const char *desc, + uint8_t freq, Error **errp) +{ + switch (freq) { + case 0: + case 10 ... 63: + break; + default: + error_setg(errp, "SD %s clock frequency can have value" + "in range 0-63 only", desc); + return true; + } + return false; +} + +static void sdhci_check_capareg(SDHCIState *s, Error **errp) +{ + uint64_t msk =3D s->capareg; + uint32_t val; + bool unit_mhz; + + switch (s->sd_spec_version) { + case 2: /* default version */ + + /* fallback */ + case 1: + unit_mhz =3D FIELD_EX64(s->capareg, SDHC_CAPAB, TOUNIT); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, TOUNIT, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, TOCLKFREQ); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, TOCLKFREQ, 0); + trace_sdhci_capareg(unit_mhz ? "timeout (MHz)" : "timeout (KHz)", = val); + if (sdhci_check_capab_freq_range(s, "timeout", val, errp)) { + return; + } + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, BASECLKFREQ); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, BASECLKFREQ, 0); + trace_sdhci_capareg(unit_mhz ? "base (MHz)" : "Base (KHz)", val); + if (sdhci_check_capab_freq_range(s, "base", val, errp)) { + return; + } + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, MAXBLOCKLENGTH); + if (val >=3D 0b11) { + error_setg(errp, "block size can be 512, 1024 or 2048 only"); + return; + } + msk =3D FIELD_DP64(msk, SDHC_CAPAB, MAXBLOCKLENGTH, 0); + trace_sdhci_capareg("max block length", sdhci_get_fifolen(s)); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, HIGHSPEED); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, HIGHSPEED, 0); + trace_sdhci_capareg("high speed", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, SDMA); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, SDMA, 0); + trace_sdhci_capareg("SDMA", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, SUSPRESUME); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, SUSPRESUME, 0); + trace_sdhci_capareg("suspend/resume", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, V33); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, V33, 0); + trace_sdhci_capareg("3.3v", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, V30); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, V30, 0); + trace_sdhci_capareg("3.0v", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, V18); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, V18, 0); + trace_sdhci_capareg("1.8v", val); + break; + + default: + error_setg(errp, "Unsupported spec version: %u", s->sd_spec_versio= n); + } + if (msk) { + qemu_log_mask(LOG_UNIMP, + "SDHCI: unknown CAPAB mask: 0x%016" PRIx64 "\n", msk= ); + } +} + static uint8_t sdhci_slotint(SDHCIState *s) { return (s->norintsts & s->norintsigen) || (s->errintsts & s->errintsig= en) || @@ -991,7 +1078,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 &=3D ~SDHC_TRNS_DMA; } MASKED_WRITE(s->trnmod, mask, value & SDHC_TRNMOD_MASK); @@ -1126,11 +1213,19 @@ static const MemoryRegionOps sdhci_mmio_ops =3D { =20 static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp) { + Error *local_err =3D NULL; + if (s->sd_spec_version !=3D 2) { error_setg(errp, "Only Spec v2 is supported"); return; } s->version =3D (SDHC_HCVER_VENDOR << 8) | (s->sd_spec_version - 1); + + sdhci_check_capareg(s, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } } =20 /* --- qdev common --- */ @@ -1538,7 +1633,7 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) /* * First, save bits 7 6 and 0 since they are identical */ - hostctl =3D value & (SDHC_CTRL_LED | + hostctl =3D value & (R_SDHC_HOSTCTL_LED_CTRL_MASK | SDHC_CTRL_CDTEST_INS | SDHC_CTRL_CDTEST_EN); /* diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 0a121156a3..78d8707669 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -13,6 +13,7 @@ sdhci_adma_transfer_completed(void) "" sdhci_access(const char *access, unsigned int size, uint64_t offset, const= char *dir, uint64_t val, uint64_t val2) "%s%u: addr[0x%04" PRIx64 "] %s 0x= %08" PRIx64 " (%" PRIu64 ")" sdhci_read_dataport(uint16_t data_count) "all %u bytes of data have been r= ead from input buffer" sdhci_write_dataport(uint16_t data_count) "write buffer filled with %u byt= es of data" +sdhci_capareg(const char *desc, uint16_t val) "%s: %u" =20 # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x = value 0x%08x" --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 66.187.233.73 as permitted sender) smtp.mailfrom=famz@redhat.com Return-Path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by mx.zohomail.com with SMTPS id 1518486068074801.0655466523814; Mon, 12 Feb 2018 17:41:08 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4C1A88151D4A for ; Tue, 13 Feb 2018 01:41:07 +0000 (UTC) Received: from localhost (ovpn-12-89.pek2.redhat.com [10.72.12.89]) by smtp.corp.redhat.com (Postfix) with ESMTP id AE7BA2024CA1 for ; Tue, 13 Feb 2018 01:41:06 +0000 (UTC) Received: by 10.103.56.144 with SMTP id n16csp4053663vsi; Mon, 12 Feb 2018 10:00:48 -0800 (PST) Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id z31si3219290otc.308.2018.02.12.10.00.47 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Feb 2018 10:00:48 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8CB7B61460 for ; Mon, 12 Feb 2018 18:00:47 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 836465D6B7; Mon, 12 Feb 2018 18:00:47 +0000 (UTC) Received: from mx1.redhat.com (ext-mx03.extmail.prod.ext.phx2.redhat.com [10.5.110.27]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7A0C980C1; Mon, 12 Feb 2018 18:00:46 +0000 (UTC) Received: from mail-qt0-f195.google.com (mail-qt0-f195.google.com [209.85.216.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5849180F9C; Mon, 12 Feb 2018 18:00:45 +0000 (UTC) Received: by mail-qt0-f195.google.com with SMTP id q18so597551qtl.3; Mon, 12 Feb 2018 10:00:45 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id m3sm7434762qkm.56.2018.02.12.10.00.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Feb 2018 10:00:43 -0800 (PST) Resent-From: Fam Zheng Resent-Date: Tue, 13 Feb 2018 09:41:05 +0800 Resent-Message-ID: <20180213014105.GA27322@lemon.usersys.redhat.com> Resent-To: importer@patchew.org X-Google-Smtp-Source: AH8x225vz2Tg4pGks7dzaqvMh/dHMdevskv5I3C+Qj9OX72jbW9sQemmQ4M3xDcYjeybin8/qSqx X-Received: by 10.202.83.135 with SMTP id h129mr7955244oib.330.1518458448200; Mon, 12 Feb 2018 10:00:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518458448; cv=none; d=google.com; s=arc-20160816; b=jxEX/asLRTRGZmt/0qCHBuQqU8uOpA1WPIaeLvLsvOM4z+vPBN1ilXCqHXZtIa7Pz5 1FcbcYY6dEnjSnk5QylWq59gcxDFbv06vJI4kcFuLvAAcOhgscc+R8iqWM2iU9t/lJgR 2mktFG/v5x/K57Cn6w3kP44uMO7KzvUHoKfl6uWgD+tS441rxSiakibpTOtMyJ1wHOPW Y3HOttBCzY0ParXABRGX6eVN40924kdOrLnovxgIu33ycyArdOCqkAUDs350yIZjW8WQ T1fUA61j4IAgTVsvBQvNehpe2oXiHq6y2BwzHTGNt0h8D/gfVpg3gpnNZgAb8aWR+K5A OmWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature :delivered-to:arc-authentication-results; bh=DlJXmu6pOxEfclwdJTYA1jbKMHKlyFY5md62EwxW6is=; b=cCAFL4dwk5UUgEqOH1YuE9KBiV+H5tr970pn3Xj58Id4A30oQUVzixb/ZSwXO7E6je Ci79TK4lelnkp4xE/ENdCLeSecOab2k7tJg1DYMRnr07xoPDaKDyIm2lCKTnuzsw21kc iT7guNpq9ZB23/LsmyZYv9ZoYCjIyF0595yqQd8yFJjcuy+pgbCoRqWAqdLaUNEcqeSk g5//4JfKIfGiZINxl4LcSuTj6zCYOHwR48WgZXXmMH+KifEoeqNqpe5Y7EwAB2e9oqZM x994shIoqx6/zVc3piDzoznF0xCukcMqbn0t+qz+FP4aBG35Qvz1bAk3ytyapQ/Xdwyv YKlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MhpYVl/c; spf=pass (google.com: domain of philippe.mathieu.daude@gmail.com designates 209.85.216.195 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received-SPF: pass (zoho.com: domain of redhat.com designates 66.187.233.73 as permitted sender) client-ip=66.187.233.73; envelope-from=famz@redhat.com; helo=mx1.redhat.com; Received-SPF: pass (google.com: domain of philippe.mathieu.daude@gmail.com designates 209.85.216.195 as permitted sender) client-ip=209.85.216.195; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MhpYVl/c; spf=pass (google.com: domain of philippe.mathieu.daude@gmail.com designates 209.85.216.195 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com 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=DlJXmu6pOxEfclwdJTYA1jbKMHKlyFY5md62EwxW6is=; b=MhpYVl/cAo1kaXUsfOdtufbuARzgSmirnbUsDVci01mrvHAW7+mGNZ+15JsaX+lx3P GtQwqwbL13JBgceLSJT1S4YXfXH95nnlO4CSQ2yeiu9RcS8Pcl6tD3XjewBJnqrdpHC5 0mkPQNvNfcvanVU4vlo1Tf3mFZwE6syLhoYWvXGkGtXYp52+cMdWpo8ivFoNCsIJFqfj anuwWVKw27Sdh0q+HskZQ0BuZTVrXJO8S9L8eEzT5AhGf4as3UYh3LdelgCht+yRx85K glP41DVhPV95X1sKH7YEfvXPExNXBxMZ4SxTwDk6HHhBmRsGjIJTWlqGGY7NmZR1a+Rz PODQ== 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=DlJXmu6pOxEfclwdJTYA1jbKMHKlyFY5md62EwxW6is=; b=Ejm4heKfED1Zmq94INoAU8nT5DMlGHtUWLBMk6xvuGUcQFeEx7lrUXPNerCVD+UiHA W6lnGkap4ZYLuq5rIVLXLLvg4UblGYivCymYnRuqBqCkkr1XaA8c7bks2+Sxo+HbPcbt SxbJIE+OA2A6UkUggOxz0Xu8PyAq3oO7ih27ASr0giZolwXerxDeT1RBJa5dW9Tn2BMu nAtNHzHsQfgS4z6sVYsXqy8RMG1kYlXM0Px1R/4qjR1nCXWda2UPboPznLUsYK9pK/i4 IHhhIaexJR9GFhpRiipP2KfnJBlZA1GtOhZnGTfD96WbwDlxLGJv5cgALQ/9Kvs6wVNa Wqdg== X-Gm-Message-State: APf1xPDXWWesxtK5alLUSv4rw53FJGyqygdnv6XwhcnYQM6OQ2TIgZPW /TD+qvtbyZm3M3YrDnJkqDNAWedp X-Received: by 10.200.81.83 with SMTP id h19mr19161385qtn.63.1518458444235; Mon, 12 Feb 2018 10:00:44 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini , Fam Zheng Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Peter Maydell , Alistair Francis , "Edgar E . Iglesias" Subject: [PATCH RESEND v12 11/30] sdhci: replace DMA magic value by BLOCK_SIZE_MASK Date: Mon, 12 Feb 2018 15:00:32 -0300 Message-Id: <20180212180032.22198-1-f4bug@amsat.org> In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 12 Feb 2018 18:00:45 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 12 Feb 2018 18:00:45 +0000 (UTC) for IP:'209.85.216.195' DOMAIN:'mail-qt0-f195.google.com' HELO:'mail-qt0-f195.google.com' FROM:'philippe.mathieu.daude@gmail.com' RCPT:'' X-RedHat-Spam-Score: 0.47 (DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS) 209.85.216.195 mail-qt0-f195.google.com 209.85.216.195 mail-qt0-f195.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.27 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 12 Feb 2018 18:00:47 +0000 (UTC) X-TUID: rJTRcx+92/2f X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Tue, 13 Feb 2018 01:41:07 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Tue, 13 Feb 2018 01:41:07 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'famz@redhat.com' RCPT:'' Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 5ed463ca77..a563a7c88d 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -35,6 +35,7 @@ #include "sdhci-internal.h" #include "qapi/error.h" #include "qemu/log.h" +#include "qemu/cutils.h" #include "trace.h" =20 #define TYPE_SDHCI_BUS "sdhci-bus" @@ -344,6 +345,7 @@ static void sdhci_end_transfer(SDHCIState *s) /* * Programmed i/o data transfer */ +#define BLOCK_SIZE_MASK (4 * K_BYTE - 1) =20 /* Fill host controller's read buffer with BLKSIZE bytes of data from card= */ static void sdhci_read_block_from_card(SDHCIState *s) @@ -355,7 +357,7 @@ static void sdhci_read_block_from_card(SDHCIState *s) return; } =20 - for (index =3D 0; index < (s->blksize & 0x0fff); index++) { + for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { s->fifo_buffer[index] =3D sdbus_read_data(&s->sdbus); } =20 @@ -400,7 +402,7 @@ static uint32_t sdhci_read_dataport(SDHCIState *s, unsi= gned size) value |=3D s->fifo_buffer[s->data_count] << i * 8; s->data_count++; /* check if we've read all valid data (blksize bytes) from buffer = */ - if ((s->data_count) >=3D (s->blksize & 0x0fff)) { + if ((s->data_count) >=3D (s->blksize & BLOCK_SIZE_MASK)) { trace_sdhci_read_dataport(s->data_count); s->prnsts &=3D ~SDHC_DATA_AVAILABLE; /* no more data in a buff= er */ s->data_count =3D 0; /* next buff read must start at position= [0] */ @@ -447,7 +449,7 @@ static void sdhci_write_block_to_card(SDHCIState *s) } } =20 - for (index =3D 0; index < (s->blksize & 0x0fff); index++) { + for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { sdbus_write_data(&s->sdbus, s->fifo_buffer[index]); } =20 @@ -492,7 +494,7 @@ static void sdhci_write_dataport(SDHCIState *s, uint32_= t value, unsigned size) s->fifo_buffer[s->data_count] =3D value & 0xFF; s->data_count++; value >>=3D 8; - if (s->data_count >=3D (s->blksize & 0x0fff)) { + if (s->data_count >=3D (s->blksize & BLOCK_SIZE_MASK)) { trace_sdhci_write_dataport(s->data_count); s->data_count =3D 0; s->prnsts &=3D ~SDHC_SPACE_AVAILABLE; @@ -512,8 +514,8 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) { bool page_aligned =3D false; unsigned int n, begin; - const uint16_t block_size =3D s->blksize & 0x0fff; - uint32_t boundary_chk =3D 1 << (((s->blksize & 0xf000) >> 12) + 12); + const uint16_t block_size =3D s->blksize & BLOCK_SIZE_MASK; + uint32_t boundary_chk =3D 1 << (((s->blksize & ~BLOCK_SIZE_MASK) >> 12= ) + 12); uint32_t boundary_count =3D boundary_chk - (s->sdmasysad % boundary_ch= k); =20 if (!(s->trnmod & SDHC_TRNS_BLK_CNT_EN) || !s->blkcnt) { @@ -602,7 +604,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) static void sdhci_sdma_transfer_single_block(SDHCIState *s) { int n; - uint32_t datacnt =3D s->blksize & 0x0fff; + uint32_t datacnt =3D s->blksize & BLOCK_SIZE_MASK; =20 if (s->trnmod & SDHC_TRNS_READ) { for (n =3D 0; n < datacnt; n++) { @@ -678,7 +680,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) static void sdhci_do_adma(SDHCIState *s) { unsigned int n, begin, length; - const uint16_t block_size =3D s->blksize & 0x0fff; + const uint16_t block_size =3D s->blksize & BLOCK_SIZE_MASK; ADMADescr dscr =3D {}; int i; =20 --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188433549297.30297463954776; Fri, 9 Feb 2018 07:00:33 -0800 (PST) Received: from localhost ([::1]:60241 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAAC-00065A-Lo for importer@patchew.org; Fri, 09 Feb 2018 10:00:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33985) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA53-00024I-4u for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA52-0005Og-6L for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:13 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:43019) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA52-0005OS-22 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:12 -0500 Received: by mail-qk0-x241.google.com with SMTP id d129so6979048qke.10 for ; Fri, 09 Feb 2018 06:55:11 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:11 -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=kSxivJpOo+GjEiiXG4H2Phz9DgkkN/1ScOhxKDdWyLo=; b=aGTVW+N3A9YJoBaKk0OJ9G4MiBpSWvkDl3mGZgHM2AdpG0qMGPgjW1zCNARrCuc9LM ixj0T3XWM6lYSoW2a4h2lpMUFlmwivXvVKxOMtzlsDIqCh6iaPoVfjGubjX+RPzDiRn8 JumJtehii5HJtmYFFrtFNkdmFb/WE6nK2Oy/2evfPmcY3K2vNQ75y716MbH6wnF94NFG 4CzsCEKuaJ2fU7HYwEse/9BZ1Tlw6AJF50gBCwRVlcDfcH57/8ilB3oWlbRoussu0xqL vQQfK3Xq+eYQnbnEUeRUxoXJVBRJPO8ZL3CxrKgj0FodF1q3OlPr+3Bd0AF/rYBIhG5g 43sw== 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=kSxivJpOo+GjEiiXG4H2Phz9DgkkN/1ScOhxKDdWyLo=; b=g5T8cU+edVPrUkMaREbUAVWrq52GLYyHo27SA2s8Hwj4leorrs+9Fn5grj0g3ro1Kp s15q0fM9bEdI4G8bMuVhyCaqHMbnev576XwWAcSCRY17GCjQAkgfum7/8zIlnjf+SQXk Q5NJD3+IeF5XzAIGYPBMdECsZzeMrDiM7WslxKOaRAqCxuV+/Up0mdvTBKXzIbEY1iU+ fDgexRa8wGXtkqZFcff9/fAubvjCwkIZrJXXPQaOnYpZW2NKm2n/94nS2kbc33cimD0W Mlf/0awc7WiJbWwb3//kG/Oy+pNE06ZfPk2W4uVOEjCApXEZ/ktoLc2pRBAuhz7vi0wi ScHQ== X-Gm-Message-State: APf1xPDmkmOgTxgIwo357JLXT76Ygs63AnxhbtA/m0O+ycaXYK/GqztD OPGKi84JTzS4YWSz+f3uoJE= X-Google-Smtp-Source: AH8x224CzYR3qrkpALMR+L8MrxD8fCBtzzLYIm/Hdg1ztk4YwmLIJ5M8n0XlurxroILyllOl8Cojcw== X-Received: by 10.55.209.12 with SMTP id s12mr4091246qki.219.1518188111545; Fri, 09 Feb 2018 06:55:11 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:12 -0300 Message-Id: <20180209145430.26007-13-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-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::241 Subject: [Qemu-devel] [PATCH v12 12/30] sdhci: Fix 64-bit ADMA2 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sai Pavan Boddu , Peter Maydell , "Edgar E . Iglesias" , qemu-devel@nongnu.org, Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 a563a7c88d..4c8a321942 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -668,8 +668,8 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) dscr->length =3D le16_to_cpu(dscr->length); dma_memory_read(s->dma_as, entry_addr + 4, (uint8_t *)(&dscr->addr), 8); - dscr->attr =3D le64_to_cpu(dscr->attr); - dscr->attr &=3D 0xfffffff8; + dscr->addr =3D le64_to_cpu(dscr->addr); + dscr->attr &=3D (uint8_t) ~0xC0; dscr->incr =3D 12; break; } --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188874015543.0210246856158; Fri, 9 Feb 2018 07:07:54 -0800 (PST) Received: from localhost ([::1]:60299 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAHF-0003gr-JJ for importer@patchew.org; Fri, 09 Feb 2018 10:07:49 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34015) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5A-0002B2-44 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA55-0005Qk-8L for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:20 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:41316) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA54-0005QJ-Tl for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:15 -0500 Received: by mail-qk0-x241.google.com with SMTP id p23so10268689qke.8 for ; Fri, 09 Feb 2018 06:55:14 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=2s754x+11PNC9BmbOyVtsVLUKQ5qCVNfc9leD6hTvZQ=; b=BwPm9nFxnOYvdVoMtowpUK3pCIME/ACW9m8+8pNTOrPDaHGZJNGEpT6D4JiSSOA+Ag K5AJHisACv3eFPFPrDToDRq4d7EmfLeN1AmfwFBeYfke5W/cxFthjH7wfs+3Bvs7HPoh KU8ZkGJtoP9nR+Z0idoZhupOY8TnxvKf+Rn5unWHNW6oWQ7sQ8ZTnES1Szrhc6Sy1Zvm ejuLMaVgT+LZZmqMi0iPnn7zlDUMJq6aU8QTUySlUKXwBV6k8FzcrhJh54nG7AtnSYXN C3N+ocnsnsCflTn2VQJJqXn7QXlGDIfXaKJjjIyAYBS9YGihXuenDhRkKyE6pBF7mEKI 09Yw== 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=2s754x+11PNC9BmbOyVtsVLUKQ5qCVNfc9leD6hTvZQ=; b=VqHCGlj+M1ueUk6BOJJk0aVwcDPaOE2aLsYKvPb+WxZwoIK6u2XKx8tGR9kxeCAbEN DTvHoJ9nGrlvjYuM4j7uRFrBoaF9D9MWT9jMoNnDtLjPNENmBrM/AFGKYpL2EKF3A9bY cwivmuZCwm9opzZwdUmOuxhhRxMsk+yMDfWR2OA+hVfboB1Fxo6ScjozfhVDH8+4VpoF Y+M3mWDbQTE5COcifAVkrMoSaSfsucoQ2N6A3KYzoNHNHxcXhRohlJqfvwQynlWEOSKA zJkrUCGH4z4WQ5Sbi68w0sBweipgm20epHtuvWUauXSK12Xpe6m//9Ywq4IAyYLS6re5 Ve1g== X-Gm-Message-State: APf1xPD0GPw/lKFlVIl7CpOlk5Hd+1c3EK0BglYz3rd+mqIcym9fJYl8 WBrev+85ysa0tMxjT/BWSW4= X-Google-Smtp-Source: AH8x224VqbqthKcdrkp0Ufx9v4ha3r/3ydJH/s+MoObFpDWUChJuAgA+9vBtli4d7aopYPxlxQgoqw== X-Received: by 10.55.1.78 with SMTP id 75mr3974389qkb.310.1518188114365; Fri, 09 Feb 2018 06:55:14 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:13 -0300 Message-Id: <20180209145430.26007-14-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v12 13/30] sdhci: check Spec v2 capabilities (DMA and 64-bit bus) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Incorrect value will throw an error. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 14 +++++++------- hw/sd/sdhci.c | 19 +++++++++++++++---- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 96d7f4dde7..fe68b21e92 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -89,12 +89,12 @@ 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) #define SDHC_CTRL_4BITBUS 0x02 #define SDHC_CTRL_8BITBUS 0x20 #define SDHC_CTRL_CDTEST_INS 0x40 @@ -190,19 +190,19 @@ FIELD(SDHC_ACMD12ERRSTS, INDEX_ERR, 4, 1); =20 /* 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 */ =20 /* HWInit Maximum Current Capabilities Register 0x0 */ #define SDHC_MAXCURR 0x48 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 4c8a321942..f0b9af4976 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -90,6 +90,17 @@ static void sdhci_check_capareg(SDHCIState *s, Error **e= rrp) =20 switch (s->sd_spec_version) { case 2: /* default version */ + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, ADMA2); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, ADMA2, 0); + trace_sdhci_capareg("ADMA2", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, ADMA1); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, ADMA1, 0); + trace_sdhci_capareg("ADMA1", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, BUS64BIT); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, BUS64BIT, 0); + trace_sdhci_capareg("64-bit system bus", val); =20 /* fallback */ case 1: @@ -833,7 +844,7 @@ static void sdhci_data_transfer(void *opaque) =20 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; } @@ -841,7 +852,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; } @@ -849,8 +860,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; } --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188659902896.0775642892385; Fri, 9 Feb 2018 07:04:19 -0800 (PST) Received: from localhost ([::1]:60271 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekADr-0000g3-3O for importer@patchew.org; Fri, 09 Feb 2018 10:04:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34013) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5A-0002B1-3O for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA58-0005Sp-6y for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:20 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:40828) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA58-0005ST-1p; Fri, 09 Feb 2018 09:55:18 -0500 Received: by mail-qt0-x244.google.com with SMTP id s39so10838642qth.7; Fri, 09 Feb 2018 06:55:17 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wY//D2TOSIUxA/+3Tz/qnHcjRg6V0zzmBzdlX6DyMlw=; b=mgxwE91zGV7qQTeHjAxwLKu2ekBxwkWYW4JLMRhm0zWb545LnoALZvAe9aLv3+6lif G9ys6giKe2sUSdqkX7DFdLHyl9q/lBo6spGI6rXPiX4IzOzQoRAetNJS3GREmILns/a5 Wi4BgfokPsU1y1KWf8iSoFf5YPCaU422oJWAEeWACGFo1ff2kAf/w9vQfNQSkvlCSusw /9Lg00N8v9+S5zF/Sd6VeTtd3aEn/e8/GLPOQObt6LqLhRpRWpjZ9EJ7l9WOutr8lsEH HGSA/P83zWmNJFSVt6r+JrfjlQIXKG0GjDmh4EbaKzLgSaRckUVtfPYLMHantM2mWHxI 90UQ== 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=wY//D2TOSIUxA/+3Tz/qnHcjRg6V0zzmBzdlX6DyMlw=; b=LDrID36fCNCvO6kQEu4M63OYJAyvshO6gifh2cCBA9U6jXV+QaOX/6m1Fwt2m0hQ38 g1F6ukT4M35bFFliYhxRY4MrrXJ6o5dLVG4BzMqzGa9/LrWN3C/HVtJ+WG8EqY37K+d6 9OJk2boBE76T0qfSP+4A94dm4XJXseo0oaX01RSN6zLfCbUpKrbGNw24wPa4a8ASzQmg 6CRINmrsw7OrJjvXOWx5a2Y08jAdaCI0TfG19wMzPBCRExQv1A/JrjNUTgV606WVEM5c vyMjJ6Juu/lBgv9X1LN4OmvSSiXeJBh/lb4BytNHcpxdI3125SdErNbf41n/JE8xRCgn Zssg== X-Gm-Message-State: APf1xPAyS3rRuxeYZZhvpvZyiSu1p3k5V2gs9sLsnw/7fHGKlOGnfnbM anX46awYp6mcAt0kc1aPLWI= X-Google-Smtp-Source: AH8x226MPxzK3hVAC+7YZF+PPpX2wRaSNuEkQ91e4uvaUwA2Q9WSpGpr/i4+PSCpHaJ85InxEzNk6g== X-Received: by 10.237.55.33 with SMTP id i30mr4948536qtb.95.1518188117449; Fri, 09 Feb 2018 06:55:17 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:14 -0300 Message-Id: <20180209145430.26007-15-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v12 14/30] hw/arm/exynos4210: access the 64-bit capareg with qdev_prop_set_uint64() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, Igor Mitsyanko , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:Exynos" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 We only set a 32-bit value, but this is a good practice in case this code is used as reference. (missed in 5efc9016e52) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/arm/exynos4210.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c index e8e1d81e62..d89322c7ea 100644 --- a/hw/arm/exynos4210.c +++ b/hw/arm/exynos4210.c @@ -378,7 +378,7 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_m= em) DriveInfo *di; =20 dev =3D qdev_create(NULL, TYPE_SYSBUS_SDHCI); - qdev_prop_set_uint32(dev, "capareg", EXYNOS4210_SDHCI_CAPABILITIES= ); + qdev_prop_set_uint64(dev, "capareg", EXYNOS4210_SDHCI_CAPABILITIES= ); qdev_init_nofail(dev); =20 busdev =3D SYS_BUS_DEVICE(dev); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189115964875.3085426096105; Fri, 9 Feb 2018 07:11:55 -0800 (PST) Received: from localhost ([::1]:60338 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekALD-0007If-5B for importer@patchew.org; Fri, 09 Feb 2018 10:11:55 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34034) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5C-0002Bl-6i for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5B-0005V6-1f for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:22 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:35348) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5A-0005Ul-SU; Fri, 09 Feb 2018 09:55:20 -0500 Received: by mail-qt0-x244.google.com with SMTP id g14so10840748qti.2; Fri, 09 Feb 2018 06:55:20 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=sZp8aF6avIv4FuO7MfmdU5DFjxinRjlcQGqTNkIJbBA=; b=JmytaxZ+0c/EVJcOVm76U65GDwNhkbFUZNx7oKgU6dUsZO/hRblay9n40yOY2l6Vsl hdwZMUOYI94aLHoo2hTsnmDiJNzlz4lnuk4iLMtmtAnf/SvPlcihGMdnpohoq7b1oiWV 7ubrnl9gHi5cgqP3HjIR4kNiFJ3ozNUJEF6O4FhZGqzvi7nXFENO2/8G5j29VIWlRe3L o8VGt+UcPb2Th4veDszbRrCQ0FZ9AOITfNCoDvBWZKoGO/1WWnhAgcZa2+N/5q+oWH1l VLdtKbJgtU6yjwYfPzPgj1SFZyjsqcW93YBqYc+bvnRvAVjWOFeQePCINblCnGHYux7f zKeg== 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=sZp8aF6avIv4FuO7MfmdU5DFjxinRjlcQGqTNkIJbBA=; b=umImZsOROATDwQgay7CdS1NOEh7O2Gsd1uYLjPXwpQFGpX4XW6JwtEbJt25iJDGtsc 65qGFk2PSNOgfvAoC3AcHJ3KF+KDQyYpLweuoJoI8FKUqi/22FzWeEj16AJL+GKe5Vkt Haz6FES+ZG5PIBgbJAGyH6yDHJE3etzOwErp9VnItyAkQ0ubmwl4vXsVrY4PdqyWvCAd yjssJM92vwfoY6iRSiCJlXhuqgHX8ztPBpO08lWI4DBP5xid8JC3TYG1h+gJnawAbrdr lMjBA6HOGLJUkOb0DQydnVPb1UuXdcpw6QRT5wq3dc7KFTLVgelM+RbmkLf/AeCRQBAE sTrg== X-Gm-Message-State: APf1xPD7ZS4+0uZHRHJ5FUyt5cye4NytF273Bj5BTw1zmxc1Ij62I1Eq adnuXjd91TyfLBW/EujKTaa8/50Z X-Google-Smtp-Source: AH8x2279e6ID9QWhwfCIU4RR2MxmMZcFUJvwyljy9162TOdGYfVmpCZ4Wr6lHTRbpT+D0b++YBd+Eg== X-Received: by 10.200.55.182 with SMTP id d51mr4787218qtc.61.1518188120364; Fri, 09 Feb 2018 06:55:20 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:15 -0300 Message-Id: <20180209145430.26007-16-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v12 15/30] hw/arm/exynos4210: add a comment about a very similar SDHCI (Spec. v2) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, Igor Mitsyanko , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:Exynos" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- hw/arm/exynos4210.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c index d89322c7ea..06f9d1ffa4 100644 --- a/hw/arm/exynos4210.c +++ b/hw/arm/exynos4210.c @@ -377,6 +377,18 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_= mem) BlockBackend *blk; DriveInfo *di; =20 + /* Compatible with: + * - SD Host Controller Specification Version 2.0 + * - SDIO Specification Version 2.0 + * - MMC Specification Version 4.3 + * - SDMA + * - ADMA2 + * + * As this part of the Exynos4210 is not publically available, + * we used the "HS-MMC Controller S3C2416X RISC Microprocessor" + * public datasheet which is very similar (implementing + * MMC Specification Version 4.0 being the only difference noted) + */ dev =3D qdev_create(NULL, TYPE_SYSBUS_SDHCI); qdev_prop_set_uint64(dev, "capareg", EXYNOS4210_SDHCI_CAPABILITIES= ); qdev_init_nofail(dev); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189337677834.3206429821378; Fri, 9 Feb 2018 07:15:37 -0800 (PST) Received: from localhost ([::1]:60433 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAOm-0001yo-FU for importer@patchew.org; Fri, 09 Feb 2018 10:15:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5F-0002Fy-Ev for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5E-0005Y0-CI for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:25 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:37113) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5E-0005Xe-5O; Fri, 09 Feb 2018 09:55:24 -0500 Received: by mail-qk0-x242.google.com with SMTP id c128so10273779qkb.4; Fri, 09 Feb 2018 06:55:23 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6I0eLeCnx4eW7xx/FEABgkNDEMBh/XvlA3Ez3K+OV/Q=; b=rDqfizuNjVrExvSn0QNf0SUJrYxB7xLebDQ6YTfbkvbcsUKkJ7HyA/rgDddZclFU/J xIH2l6d3tcuBGvUZfMws5GFwT6hcWH94K5jPIu6veLlp8VMDK9E5294rZnOJO7kB/iN6 3cECc1S1jeln5bwyDqHCdSUc08M9CSWhYugThKowb9lEeN4o7U9O5aV1kU034mjeLBZw E7VbPVAW5UPI7U8mLQykN8y0fujFsr7KWqsKSe3pMD138YY4lX7LlPBxexJHkuo1jImJ h6ZFH5D9Tsfhu9/oQeDUYHNSgUe8nH1uit/AieaeWrM/pT6WV9g++wIncNyYnYaCTQv0 +Bgg== 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=6I0eLeCnx4eW7xx/FEABgkNDEMBh/XvlA3Ez3K+OV/Q=; b=UzLnbhsogDf2m5HSlFX9XdrVFMe0Ru+of72eno3r+Ay6tT6UO1/XowOX6DLBSnOCjD TwZFW7uSPfQD1Oo6Pp6XFJgUptRA+kPhr1tQlNQQwFFUcXmoTgc7v35ZceF1C3i5+frw 4/S0na+6cnRrgkh3eIuOh8izRu8iZySJQSj34ZcXF9T1TtU6EVPNk/d9Pp8L3aaX+obY zOU/VyTdSlMDFYuPcZm/MECA791S/9/JnQ15Kbt8jSMn+MHMQ4+eqCLusxuHsHWj7z2h UpJj7aJa9M9wBbHkEmLuC/LH7wCjeO14zWDGR4kWGkmQ9dtaZ/EoOV9PaV9oB5ZUNX7B u0Sg== X-Gm-Message-State: APf1xPDyJIzMZaSlmOUf0OQ5bpK/+yQFFla5V2aZ2CncQLFem9MGJYyq XZKfuwcjrMfhOEGWA12H/wz5bptm X-Google-Smtp-Source: AH8x226fXUioPQZMG/BlH8W/su0lp5ILnPX5pZPiaH/IqPxK1Q/rEv0Dl4pFt5MrEQ4QI9Z+ug4h2A== X-Received: by 10.55.215.132 with SMTP id t4mr4422220qkt.64.1518188123528; Fri, 09 Feb 2018 06:55:23 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:16 -0300 Message-Id: <20180209145430.26007-17-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v12 16/30] hw/arm/xilinx_zynq: fix the capabilities register to match the datasheet X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:Xilinx Zynq" , "Edgar E. Iglesias" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 checking Xilinx datasheet "UG585" (v1.12.1) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/arm/xilinx_zynq.c | 53 ++++++++++++++++++++++++++++--------------------= ---- tests/sdhci-test.c | 5 +++++ 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 1836a4ed45..0f76333770 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -61,6 +61,8 @@ static const int dma_irqs[8] =3D { #define SLCR_XILINX_UNLOCK_KEY 0xdf0d #define SLCR_XILINX_LOCK_KEY 0x767b =20 +#define ZYNQ_SDHCI_CAPABILITIES 0x69ec0080 /* Datasheet: UG585 (v1.12.1) = */ + #define ARMV7_IMM16(x) (extract32((x), 0, 12) | \ extract32((x), 12, 4) << 16) =20 @@ -165,10 +167,8 @@ static void zynq_init(MachineState *machine) MemoryRegion *address_space_mem =3D get_system_memory(); MemoryRegion *ext_ram =3D g_new(MemoryRegion, 1); MemoryRegion *ocm_ram =3D g_new(MemoryRegion, 1); - DeviceState *dev, *carddev; + DeviceState *dev; SysBusDevice *busdev; - DriveInfo *di; - BlockBackend *blk; qemu_irq pic[64]; int n; =20 @@ -247,27 +247,32 @@ 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]); =20 - dev =3D 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 =3D drive_get_next(IF_SD); - blk =3D di ? blk_by_legacy_dinfo(di) : NULL; - carddev =3D qdev_create(qdev_get_child_bus(dev, "sd-bus"), TYPE_SD_CAR= D); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); - object_property_set_bool(OBJECT(carddev), true, "realized", &error_fat= al); - - dev =3D 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 =3D drive_get_next(IF_SD); - blk =3D di ? blk_by_legacy_dinfo(di) : NULL; - carddev =3D qdev_create(qdev_get_child_bus(dev, "sd-bus"), TYPE_SD_CAR= D); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); - object_property_set_bool(OBJECT(carddev), true, "realized", &error_fat= al); + for (n =3D 0; n < 2; n++) { + int hci_irq =3D n ? 79 : 56; + hwaddr hci_addr =3D n ? 0xE0101000 : 0xE0100000; + DriveInfo *di; + BlockBackend *blk; + DeviceState *carddev; + + /* Compatible with: + * - SD Host Controller Specification Version 2.0 Part A2 + * - SDIO Specification Version 2.0 + * - MMC Specification Version 3.31 + */ + dev =3D qdev_create(NULL, TYPE_SYSBUS_SDHCI); + qdev_prop_set_uint8(dev, "sd-spec-version", 2); + qdev_prop_set_uint64(dev, "capareg", ZYNQ_SDHCI_CAPABILITIES); + qdev_init_nofail(dev); + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, hci_addr); + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[hci_irq - IRQ_OFFSE= T]); + + di =3D drive_get_next(IF_SD); + blk =3D di ? blk_by_legacy_dinfo(di) : NULL; + carddev =3D 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); + } =20 dev =3D qdev_create(NULL, TYPE_ZYNQ_XADC); qdev_init_nofail(dev); diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 24feea744a..898c43ff4f 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -41,6 +41,11 @@ static const struct sdhci_t { /* Exynos4210 */ { "arm", "smdkc210", {0x12510000, 2, 0, {1, 0x5e80080} } }, + + /* Zynq-7000 */ + { "arm", "xilinx-zynq-a9", /* Datasheet: UG585 (v1.12.1) */ + {0xe0100000, 2, 0, {1, 0x69ec0080} } }, + }; =20 typedef struct QSDHCI { --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189327484841.6100015553139; Fri, 9 Feb 2018 07:15:27 -0800 (PST) Received: from localhost ([::1]:60432 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAOc-0001ue-GN for importer@patchew.org; Fri, 09 Feb 2018 10:15:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34124) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5L-0002LL-Qq for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5H-0005ac-2c for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:31 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:33867) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5G-0005a4-TF for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:26 -0500 Received: by mail-qt0-x243.google.com with SMTP id d14so10836144qtg.1 for ; Fri, 09 Feb 2018 06:55:26 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:25 -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=uL/ORiM0tTjbREeZZkyqnChgNMxDxFDsIUckKvLN1Qw=; b=p0gRfz7w5S3oojhQBQFGjWNwCp2hVkgcizIGSHwpDH6g3udusZzrdW6FpfPOR731LX JjtXWkNF4sh0kEthN8+3MWNmqqm1w2xTjYXnlWq2H5T4ceu4JyViiILH1BdGrwYDF+Uy i834Ql0gMJiCNwj/sHi1NIx5jnZSRxZ6xGyEgFQm7VsgVqsOqf37Ni7ahcHbnpHE54Cd 8a3xVqfgpVLq5x8uxuj/qQ9TuqU1vcm9kKQHhxEMmrIlLxMgUXQmGUGrovGZnQrs1KEf Jz5+DHXndVvBqzP9O1KChCJzrZUYhft5aqxdwi+Dpj98Xkcop58nXB5nDcIOzQTPtsKW s6GQ== 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=uL/ORiM0tTjbREeZZkyqnChgNMxDxFDsIUckKvLN1Qw=; b=svXj+o+7gz9vNaJitIB1v345rHRM+eFqMLdXHANXNeCxuVMZb8ZAlHiZb8QOjSlhp7 jjIgiskMGdtDwLYhTG2Q+Moksp8HnCZlwi1jClCapCO1G6L4Gd+JtWyGdFFjbwLNF/VM 9iqyIeDWY0VHTx5n9Uy+egdF48Z7yknUWzAPKGuUtXCE1p09fD2gJ/XZY0EWLswehwwg za+jJ2E7yxSVB6lVvgiQsoeM8acE2//ZEoN5kxG7jYoxiYkLAZ3SJApkm5m4y6btLHvT omy4h0a2QnfYhnNFMpHLONVr7nre2U77H6V3j6psi6hB+SNqI84MaiqkbBigOes4ht2G OE9Q== X-Gm-Message-State: APf1xPB6mz9Jb3vbvo8A7CyDMNUvQ12yAOn5g/3fBohRhKkiXGGawtWE IEKPIFO0hSnjl+RX/oJY/rGuTKM8 X-Google-Smtp-Source: AH8x224gZVgZG2XyrvL44zWIlPB0+0HIk//EQD5JgNyM8Ep88F+QSnLOmksa9fl73SrbBH2/NwW5ag== X-Received: by 10.237.48.2 with SMTP id 2mr4685129qte.232.1518188126328; Fri, 09 Feb 2018 06:55:26 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:17 -0300 Message-Id: <20180209145430.26007-18-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v12 17/30] sdhci: add support for 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 13 ++++++++++++ hw/sd/sdhci.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++= ++-- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index fe68b21e92..bfb39d614b 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 @@ -194,6 +195,7 @@ 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); @@ -203,6 +205,17 @@ 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_RETUNING, 40, 4); /* since v3 */ +FIELD(SDHC_CAPAB, SDR50_TUNING, 45, 1); /* since v3 */ +FIELD(SDHC_CAPAB, RETUNING_MODE, 46, 2); /* since v3 */ +FIELD(SDHC_CAPAB, CLOCK_MULT, 48, 8); /* since v3 */ =20 /* HWInit Maximum Current Capabilities Register 0x0 */ #define SDHC_MAXCURR 0x48 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index f0b9af4976..0fa58cea84 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -70,6 +70,9 @@ static inline unsigned int sdhci_get_fifolen(SDHCIState *= s) static bool sdhci_check_capab_freq_range(SDHCIState *s, const char *desc, uint8_t freq, Error **errp) { + if (s->sd_spec_version >=3D 3) { + return false; + } switch (freq) { case 0: case 10 ... 63: @@ -89,6 +92,50 @@ static void sdhci_check_capareg(SDHCIState *s, Error **e= rrp) bool unit_mhz; =20 switch (s->sd_spec_version) { + case 3: + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, ASYNC_INT); + trace_sdhci_capareg("async interrupt", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, ASYNC_INT, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, SLOT_TYPE); + if (val) { + error_setg(errp, "slot-type not supported"); + return; + } + trace_sdhci_capareg("slot type", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, SLOT_TYPE, 0); + + if (val !=3D 0b10) { + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, EMBEDDED_8BIT); + trace_sdhci_capareg("8-bit bus", val); + } + msk =3D FIELD_DP64(msk, SDHC_CAPAB, EMBEDDED_8BIT, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, BUS_SPEED); + trace_sdhci_capareg("bus speed mask", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, BUS_SPEED, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, DRIVER_STRENGTH); + trace_sdhci_capareg("driver strength mask", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, DRIVER_STRENGTH, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, TIMER_RETUNING); + trace_sdhci_capareg("timer re-tuning", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, TIMER_RETUNING, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, SDR50_TUNING); + trace_sdhci_capareg("use SDR50 tuning", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, SDR50_TUNING, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, RETUNING_MODE); + trace_sdhci_capareg("re-tuning mode", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, RETUNING_MODE, 0); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, CLOCK_MULT); + trace_sdhci_capareg("clock multiplier", val); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, CLOCK_MULT, 0); + + /* fallback */ case 2: /* default version */ val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, ADMA2); msk =3D FIELD_DP64(msk, SDHC_CAPAB, ADMA2, 0); @@ -1228,8 +1275,11 @@ static void sdhci_init_readonly_registers(SDHCIState= *s, Error **errp) { Error *local_err =3D NULL; =20 - if (s->sd_spec_version !=3D 2) { - error_setg(errp, "Only Spec v2 is supported"); + switch (s->sd_spec_version) { + case 2 ... 3: + break; + default: + error_setg(errp, "Only Spec v2/v3 are supported"); return; } s->version =3D (SDHC_HCVER_VENDOR << 8) | (s->sd_spec_version - 1); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188457759942.9773237754135; Fri, 9 Feb 2018 07:00:57 -0800 (PST) Received: from localhost ([::1]:60248 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAAa-0006Sm-QV for importer@patchew.org; Fri, 09 Feb 2018 10:00:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34123) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5L-0002LK-Qm for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5J-0005bL-KZ for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:31 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35285) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5J-0005bF-Eo for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:29 -0500 Received: by mail-qk0-x241.google.com with SMTP id c4so7979267qkm.2 for ; Fri, 09 Feb 2018 06:55:29 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:28 -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=XTj7Y84mqjTTRro2jwjDDpltuIiILCbtnYf/b24nk9A=; b=hhDHiP22ED/8DgX3wXU1KQgyhMfraRfmDcyZydSzAe2RmL/w5qtd8RmB5bHTkcmTPR KhurZK8uHL0ZGdkdsNhSfEOUCkAtdVfwl9ma1tHLjiyIjYYo3g2gbfA4xiqsD2MNxbAR E6pouHBXUJjD4Gy6vEcVUhlVkxACtbj/6MYIPPOfaGtpC/6xChaopbS6RO66iMe9amHP Z75KS5LBPaJAIr6bXQ8gHqP82aBUP3IIzRn8YYh/FZPc7UQjoZoDtGFLp5kV+B1gFVMi ARU6gx8Ne+UX6kgej78ImCGWxfcUT/PYj8iKlQwwYI2Q8M8KWmptOP/lEV1GKNznLqxB eZ9w== 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=XTj7Y84mqjTTRro2jwjDDpltuIiILCbtnYf/b24nk9A=; b=EWHCWAGQpLLkFmb8SC2KYiZXIShz7an1/O+u5qSair23DYZRdYvFKZFmMOw2xIHwXu aOoOQsIpuUjZqP0RF/LfQIstIO+eUx3MyuMvhy8vn/FOr7FxmkTGl5L2NHFTDUp2g97b 6RRZ9/j/yJhfdUTqJ90BzJuZyPr6fr0hqcg2ehEyQ5/cgmn1NgceVwFVwK0cvLyTV2y3 rwoxHfC2OCZadONVzh/lKZFLtTiTYQFlJTJ3rgE8IwDgw/3OvvVVpP8ojkyp3PvxWQtg hz/N30e/2Pji9/ucobdltSheUubumr4DQhMuuevmxEGRWeu2azxZXuBvF1vhtGO/3RBc NV0A== X-Gm-Message-State: APf1xPC2Fp2Ixnfi0YOioY6i+SkWJp7ddIwVgOezfvGJYGraLfwkO84b DdB1SigCzeGu+0+HldxNi/E= X-Google-Smtp-Source: AH8x224v8WZLzS/5Bp0A9dlehr/UawY686HVMWxKMzzhnRHir7B6jcZFK0okEZ9Qjuv7OWAvyTIvIw== X-Received: by 10.55.106.193 with SMTP id f184mr4440432qkc.211.1518188128920; Fri, 09 Feb 2018 06:55:28 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:18 -0300 Message-Id: <20180209145430.26007-19-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v12 18/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 As per the Spec v3.00 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- include/hw/sd/sdhci.h | 2 +- hw/sd/sdhci.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 2a26b46f05..54594845ce 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -59,7 +59,7 @@ typedef struct SDHCIState { uint16_t cmdreg; /* Command Register */ uint32_t rspreg[4]; /* Response Registers 0-3 */ uint32_t prnsts; /* Present State Register */ - 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 0fa58cea84..f18264688c 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -692,7 +692,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) uint32_t adma1 =3D 0; uint64_t adma2 =3D 0; hwaddr entry_addr =3D (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)); @@ -881,7 +881,7 @@ static void sdhci_data_transfer(void *opaque) SDHCIState *s =3D (SDHCIState *)opaque; =20 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 =3D=3D 1) || !(s->trnmod & SDHC_TRNS_MULTI)) { sdhci_sdma_transfer_single_block(s); @@ -990,7 +990,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset,= unsigned size) ret =3D s->prnsts; break; case SDHC_HOSTCTL: - ret =3D s->hostctl | (s->pwrcon << 8) | (s->blkgap << 16) | + ret =3D s->hostctl1 | (s->pwrcon << 8) | (s->blkgap << 16) | (s->wakcon << 24); break; case SDHC_CLKCON: @@ -1108,7 +1108,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->blk= cnt && - s->blksize && SDHC_DMA_TYPE(s->hostctl) =3D=3D SDHC_CTRL_S= DMA) { + s->blksize && SDHC_DMA_TYPE(s->hostctl1) =3D=3D SDHC_CTRL_= SDMA) { if (s->trnmod & SDHC_TRNS_MULTI) { sdhci_sdma_transfer_multi_blocks(s); } else { @@ -1160,7 +1160,7 @@ 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 || @@ -1381,7 +1381,7 @@ const VMStateDescription sdhci_vmstate =3D { 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), @@ -1599,13 +1599,13 @@ static uint64_t usdhc_read(void *opaque, hwaddr off= set, unsigned size) * manipulation code see comments in a similar part of * usdhc_write() */ - hostctl =3D SDHC_DMA_TYPE(s->hostctl) << (8 - 3); + hostctl =3D SDHC_DMA_TYPE(s->hostctl1) << (8 - 3); =20 - if (s->hostctl & SDHC_CTRL_8BITBUS) { + if (s->hostctl1 & SDHC_CTRL_8BITBUS) { hostctl |=3D ESDHC_CTRL_8BITBUS; } =20 - if (s->hostctl & SDHC_CTRL_4BITBUS) { + if (s->hostctl1 & SDHC_CTRL_4BITBUS) { hostctl |=3D ESDHC_CTRL_4BITBUS; } =20 --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189565660121.74017384284093; Fri, 9 Feb 2018 07:19:25 -0800 (PST) Received: from localhost ([::1]:60603 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekASS-00053g-ND for importer@patchew.org; Fri, 09 Feb 2018 10:19:24 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5N-0002Ms-CF for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5M-0005dQ-GO for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:33 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:45099) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5M-0005d4-Cj for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:32 -0500 Received: by mail-qk0-x241.google.com with SMTP id x127so10260489qkb.12 for ; Fri, 09 Feb 2018 06:55:32 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=fLXniCBEvYse2I7KnyjLoe1KjF35FPAJzLTP9L3OKt8=; b=DpNzA+QBdedvXzXNv7W6n8RthjhLCfEg7eICj8YUc+blidaHYjPY05g9pYXAyevYUp ygHPqRAH6E7B0E62KwzjalTy2WSQNk1NIfVlNQWlk0wsicqWgn30s+oH9uimx2/VpOFi sd9nOTVDaH7fA+6P/YUOiWED3AWW2YR00mgJca9PD5710cXNaaCMFpoqTqr0ygf2+Egw 5k3Xty5tfy7kRHd0C4z1YxjRtDmh5/iqKg7quZ6qA0kKuRx+6IZQtx2gLTIUArJ9cw+C G0kIpz2bWdj4nXu6i5oMfQd2UF/erggNSkSampvp9h0fLlWjIkDWP0kSCvAXe9/DFFLj KRcQ== 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=fLXniCBEvYse2I7KnyjLoe1KjF35FPAJzLTP9L3OKt8=; b=uFGNi9s/x0Y07/jwZoiuYQGG5nRjf/CRYvW4LLG8xOk+6mUeHeCzaYTSZXA/14IOa+ wQLImvuFocL6XJB2VicNZ5e0P3+qH+3goXbsD964M5o3xtrUBhqBBhwGQ6SKPwmyiEW/ f6HZ/AsbfPi2BuPoOcMvqOkfvmM8A7HkzsnMbRc9No+eAQi9rZ++qkh4HH5yBqT+fadl 6okQbTvT4zM/05qqjQVx/+CkUgUJGkhzvVzyS5Eu2Cly4un15rMFdsJ9cDZhCCUZ/rwr ILZWKrPardsFBOmFE2H4xi4EGUAdEZUMsl6n17dXlUQ1dA6DKhLAabMNXuBzNLix+yPR HDIA== X-Gm-Message-State: APf1xPCHmfTIvmY0Ofg55fY1/VASPqAVYO43EU63rQr7jzPuDIJxG+yL IcgNjPNxMGXfVIZfd6cJrVHqqLGL X-Google-Smtp-Source: AH8x227ON6k814bUaXJEUoBXB7CF6jgEoCVdOuKvpa/Twn5a118UNmcZloHw17w5TCbvYZ7lata9WA== X-Received: by 10.55.154.13 with SMTP id c13mr4229021qke.197.1518188131828; Fri, 09 Feb 2018 06:55:31 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:19 -0300 Message-Id: <20180209145430.26007-20-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v12 19/30] sdhci: implement the Host Control 2 register (tuning sequence) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 [based on a patch from Alistair Francis from qemu/xilinx tag xilinx-v2015.2] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 10 ++++++++++ include/hw/sd/sdhci.h | 1 + hw/sd/sdhci.c | 22 +++++++++++++++++++--- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index bfb39d614b..5c69270988 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -189,6 +189,16 @@ FIELD(SDHC_ACMD12ERRSTS, TIMEOUT_ERR, 1, 1); FIELD(SDHC_ACMD12ERRSTS, CRC_ERR, 2, 1); FIELD(SDHC_ACMD12ERRSTS, INDEX_ERR, 4, 1); =20 +/* 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); diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 54594845ce..fd606e9928 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -73,6 +73,7 @@ typedef struct SDHCIState { uint16_t norintsigen; /* Normal Interrupt Signal Enable Register */ uint16_t errintsigen; /* Error Interrupt Signal Enable Register */ uint16_t acmd12errsts; /* Auto CMD12 error status register */ + uint16_t hostctl2; /* Host Control 2 */ uint64_t admasysaddr; /* ADMA System Address Register */ =20 /* Read-only registers */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index f18264688c..b8bc4fd032 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -409,14 +409,29 @@ static void sdhci_end_transfer(SDHCIState *s) static void sdhci_read_block_from_card(SDHCIState *s) { int index =3D 0; + uint8_t data; + const uint16_t blk_size =3D s->blksize & BLOCK_SIZE_MASK; =20 if ((s->trnmod & SDHC_TRNS_MULTI) && (s->trnmod & SDHC_TRNS_BLK_CNT_EN) && (s->blkcnt =3D=3D 0)) { return; } =20 - for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { - s->fifo_buffer[index] =3D sdbus_read_data(&s->sdbus); + for (index =3D 0; index < blk_size; index++) { + data =3D sdbus_read_data(&s->sdbus); + if (!FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { + /* Device is not in tunning */ + s->fifo_buffer[index] =3D data; + } + } + + if (FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { + /* Device is in tunning */ + s->hostctl2 &=3D ~R_SDHC_HOSTCTL2_EXECUTE_TUNING_MASK; + s->hostctl2 |=3D R_SDHC_HOSTCTL2_SAMPLING_CLKSEL_MASK; + s->prnsts &=3D ~(SDHC_DAT_LINE_ACTIVE | SDHC_DOING_READ | + SDHC_DATA_INHIBIT); + goto read_done; } =20 /* New data now available for READ through Buffer Port Register */ @@ -441,6 +456,7 @@ static void sdhci_read_block_from_card(SDHCIState *s) } } =20 +read_done: sdhci_update_irq(s); } =20 @@ -1006,7 +1022,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offse= t, unsigned size) ret =3D s->norintsigen | (s->errintsigen << 16); break; case SDHC_ACMD12ERRSTS: - ret =3D s->acmd12errsts; + ret =3D s->acmd12errsts | (s->hostctl2 << 16); break; case SDHC_CAPAB: ret =3D (uint32_t)s->capareg; --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188684197518.5319340887153; Fri, 9 Feb 2018 07:04:44 -0800 (PST) Received: from localhost ([::1]:60272 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAEB-0000xr-QO for importer@patchew.org; Fri, 09 Feb 2018 10:04:39 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34171) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5P-0002Pu-U8 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5P-0005fX-2W for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:35 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:35349) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5O-0005fG-Uc for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:35 -0500 Received: by mail-qt0-x243.google.com with SMTP id g14so10841717qti.2 for ; Fri, 09 Feb 2018 06:55:34 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PRVVrWr1dkuT1tVe6teh0w/edU9ae96q3kRiLd5UG5I=; b=bLlj6hOoxCQ7LznnmMUU4hsBl/yLuekC0s8khpxKGSChgaUCWeJwwsgOMszrho9Yad g2U30GQ1cbB0yLpbPpMEqp++FUCaGLd7f1wixg6kWM+f7RywHOWOBlV72m6eZuzU0t6X P+otuQZT6y17Kcz/4lOBUjkgMOL75FutAQ0asLoJ9WpRx6HTWwJ6Yk5AmLu0ZFXdERX9 bakhRjcv8H66xUe0kC1lOm3lEwO4O33/Q1HvL2H5M0sfFHSua44cKdP2UaC4LfExvMH/ NyXnu7qZb2Jpl2zjW4ovFUNa68+RWKkcsqiZTEnGZoG1iH0f+hsFk6T1B5l+ZUiVONhM MvLg== 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=PRVVrWr1dkuT1tVe6teh0w/edU9ae96q3kRiLd5UG5I=; b=gSKN5Vbhm3EakjS6ung+OzVMYSRszMS2bmBDrvDWEatCIzyOdG98fmnbp6IwqC6VCj kiO+YJPmHvT+iVpUJAbKnzCWyEUKMTg0Je3KCu7ANVVSeI1ah389THsxE4kd3BvM5hln Ij+/Qs9Ztst+uxzqIP/EP1HGdD3rPrAOJdywsUwAOaEREhcquGpQPTX3YdKu/4yXv8yn tJu6jMlg+wQ7WARP56npbtG3qQZUDoTsU+GHjv1ZMZ9pWhSTeEYwyIOqWRLJ6DOInOMw 1JmyAhNqfSYe0Er+6CtECUSVn4jBrugQFV2Z8jpJWYD87ZiSFX508S5rGlddWzDtohyD 0Pbw== X-Gm-Message-State: APf1xPDkVwH4pR98AsaIDkQb5VoWXqSmSbUWUSUxrijVseK2yxDuhVaY APXhwATKIQxHWjdu5Ns/T+M= X-Google-Smtp-Source: AH8x226os5ydsv+DPUmxwD9JL6qRbDguLPkxtYEMaGhRFVf3zDTH36gbJQ48sTKN0gFxAltwKAWMhw== X-Received: by 10.237.52.70 with SMTP id w64mr4901812qtd.152.1518188134419; Fri, 09 Feb 2018 06:55:34 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:20 -0300 Message-Id: <20180209145430.26007-21-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v12 20/30] sdbus: add trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/core.c | 14 ++++++++++++-- hw/sd/trace-events | 5 +++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/hw/sd/core.c b/hw/sd/core.c index 295dc44ab7..498284f109 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -23,6 +23,12 @@ #include "hw/qdev-core.h" #include "sysemu/block-backend.h" #include "hw/sd/sd.h" +#include "trace.h" + +static inline const char *sdbus_name(SDBus *sdbus) +{ + return sdbus->qbus.name; +} =20 static SDState *get_card(SDBus *sdbus) { @@ -39,6 +45,7 @@ int sdbus_do_command(SDBus *sdbus, SDRequest *req, uint8_= t *response) { SDState *card =3D get_card(sdbus); =20 + trace_sdbus_command(sdbus_name(sdbus), req->cmd, req->arg, req->crc); if (card) { SDCardClass *sc =3D SD_CARD_GET_CLASS(card); =20 @@ -52,6 +59,7 @@ void sdbus_write_data(SDBus *sdbus, uint8_t value) { SDState *card =3D get_card(sdbus); =20 + trace_sdbus_write(sdbus_name(sdbus), value); if (card) { SDCardClass *sc =3D SD_CARD_GET_CLASS(card); =20 @@ -62,14 +70,16 @@ void sdbus_write_data(SDBus *sdbus, uint8_t value) uint8_t sdbus_read_data(SDBus *sdbus) { SDState *card =3D get_card(sdbus); + uint8_t value =3D 0; =20 if (card) { SDCardClass *sc =3D SD_CARD_GET_CLASS(card); =20 - return sc->read_data(card); + value =3D sc->read_data(card); } + trace_sdbus_read(sdbus_name(sdbus), value); =20 - return 0; + return value; } =20 bool sdbus_data_ready(SDBus *sdbus) diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 78d8707669..ea2746c8b7 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -1,5 +1,10 @@ # See docs/devel/tracing.txt for syntax documentation. =20 +# hw/sd/core.c +sdbus_command(const char *bus_name, uint8_t cmd, uint32_t arg, uint8_t crc= ) "@%s CMD%02d arg 0x%08x crc 0x%02x" +sdbus_read(const char *bus_name, uint8_t value) "@%s value 0x%02x" +sdbus_write(const char *bus_name, uint8_t value) "@%s value 0x%02x" + # hw/sd/sdhci.c sdhci_set_inserted(const char *level) "card state changed: %s" sdhci_send_command(uint8_t cmd, uint32_t arg) "CMD%02u ARG[0x%08x]" --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151818980056977.25956876331213; Fri, 9 Feb 2018 07:23:20 -0800 (PST) Received: from localhost ([::1]:60867 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAWF-0008Be-6o for importer@patchew.org; Fri, 09 Feb 2018 10:23:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34217) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5W-0002X0-Pq for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5R-0005gd-U6 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:42 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:42845) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5R-0005gX-P9 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:37 -0500 Received: by mail-qt0-x242.google.com with SMTP id i8so10831375qtj.9 for ; Fri, 09 Feb 2018 06:55:37 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G8i+MgSsW5Ni9zcPGhe4EKCMX+N3tAwxaC3byNEkYxU=; b=pA+CjchFatu4/XMBSY1rOqv3IIvS6bXNmxH0NGro/1nHRxCIKFda+Ai+b8c8oY6IRZ RX8MxPDrowI6N5kp2unDo7IHENmkofDpAKoURwBIQ6CeBvOaqw1k8xbG2YYUhMTU39De 8BprycJXnqv+kvknzBAvb/t6+fjfmLt26YHwOq/+EOJCQUdB3qeT9IpPB6Rm3MtfVSsj U9pmLt503bItk7ix3N4jML7kPKnhMpYZwtuqHsfqYQgfbEke107D/5eu8918A+2+8PM+ 2kA1dfnLJsY2Yt9sFTRQZggoZz324DQNwpscPxGKCC9gGbkiqFVq2qmo7QiO87TC/ZOH wLnA== 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=G8i+MgSsW5Ni9zcPGhe4EKCMX+N3tAwxaC3byNEkYxU=; b=N14aE1Sax4uh43IwhWv6Ni8QIgMIwN0BDp4kxNFTEqFSB8UUMaN/4jMpBtudnr3zgR ZhNCa1JGkuJAfITx4fBhHy9ZV/mDfcpzOHwiPMsPzWLXhVqX4j5AXqqffysRFk4QGfln X3TRblrFaqjPR2W+i9UOTZ3hnFyGZiquOyL+pDtGvnbqMJJeu1OliB0y6jlb4MNFQSqJ M4gZ7SopcAqkfaYNaQDwfG1isycW/nVQ8gyDfmUKQ2clpLHOLxMxL23iw+KdNJ+8bRMe NAFdXaF5HoKAV29dCssxACJb/5//RzS5kOlbXJYUzvJ7IGOsW6vc/U0hi/gvTpeYK1DI sahA== X-Gm-Message-State: APf1xPCdp8qdbPgRAcdbpxA1H0WSM3VLhO2xB+E8eEMBTqYopY0RycrS 93ac39CzODGhJvvERGl3Qvk= X-Google-Smtp-Source: AH8x226Xb3ZsB1+p31PZszFGNACAumZFKdvmObZoSE8fm3qI0dFhg3cxkh2/9vxiCBPumwG5qKgAqg== X-Received: by 10.200.42.168 with SMTP id b37mr4782354qta.321.1518188137209; Fri, 09 Feb 2018 06:55:37 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:21 -0300 Message-Id: <20180209145430.26007-22-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 21/30] sdhci: implement UHS-I voltage switch X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 [based on a patch from Alistair Francis from qemu/xilinx tag xilinx-v2015.2] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- include/hw/sd/sd.h | 16 ++++++++++++++++ include/hw/sd/sdhci.h | 1 + hw/sd/core.c | 13 +++++++++++++ hw/sd/sd.c | 13 +++++++++++++ hw/sd/sdhci.c | 12 +++++++++++- hw/sd/trace-events | 1 + 6 files changed, 55 insertions(+), 1 deletion(-) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 96caefe373..f086679493 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -55,6 +55,20 @@ #define AKE_SEQ_ERROR (1 << 3) #define OCR_CCS_BITN 30 =20 +typedef enum { + SD_VOLTAGE_0_4V =3D 400, /* currently not supported */ + SD_VOLTAGE_1_8V =3D 1800, + SD_VOLTAGE_3_0V =3D 3000, + SD_VOLTAGE_3_3V =3D 3300, +} sd_voltage_mv_t; + +typedef enum { + UHS_NOT_SUPPORTED =3D 0, + UHS_I =3D 1, + UHS_II =3D 2, /* currently not supported */ + UHS_III =3D 3, /* currently not supported */ +} sd_uhs_mode_t; + typedef enum { sd_none =3D -1, sd_bc =3D 0, /* broadcast -- no response */ @@ -88,6 +102,7 @@ typedef struct { void (*write_data)(SDState *sd, uint8_t value); uint8_t (*read_data)(SDState *sd); bool (*data_ready)(SDState *sd); + void (*set_voltage)(SDState *sd, uint16_t millivolts); void (*enable)(SDState *sd, bool enable); bool (*get_inserted)(SDState *sd); bool (*get_readonly)(SDState *sd); @@ -134,6 +149,7 @@ void sd_enable(SDState *sd, bool enable); /* Functions to be used by qdevified callers (working via * an SDBus rather than directly with SDState) */ +void sdbus_set_voltage(SDBus *sdbus, uint16_t millivolts); int sdbus_do_command(SDBus *sd, SDRequest *req, uint8_t *response); void sdbus_write_data(SDBus *sd, uint8_t value); uint8_t sdbus_read_data(SDBus *sd); diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index fd606e9928..f321767c56 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -96,6 +96,7 @@ typedef struct SDHCIState { bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ uint32_t quirks; uint8_t sd_spec_version; + uint8_t uhs_mode; } SDHCIState; =20 /* diff --git a/hw/sd/core.c b/hw/sd/core.c index 498284f109..6d198ea775 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -41,6 +41,19 @@ static SDState *get_card(SDBus *sdbus) return SD_CARD(kid->child); } =20 +void sdbus_set_voltage(SDBus *sdbus, uint16_t millivolts) +{ + SDState *card =3D get_card(sdbus); + + trace_sdbus_set_voltage(sdbus_name(sdbus), millivolts); + if (card) { + SDCardClass *sc =3D SD_CARD_GET_CLASS(card); + + assert(sc->set_voltage); + sc->set_voltage(card, millivolts); + } +} + int sdbus_do_command(SDBus *sdbus, SDRequest *req, uint8_t *response) { SDState *card =3D get_card(sdbus); diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 73e405a04f..a8d7a522c0 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -128,6 +128,18 @@ struct SDState { bool enable; }; =20 +static void sd_set_voltage(SDState *sd, uint16_t millivolts) +{ + switch (millivolts) { + case 3001 ... 3600: /* SD_VOLTAGE_3_3V */ + case 2001 ... 3000: /* SD_VOLTAGE_3_0V */ + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, "SD card voltage not supported: %.3= fV", + millivolts / 1000.f); + } +} + static void sd_set_mode(SDState *sd) { switch (sd->state) { @@ -1926,6 +1938,7 @@ static void sd_class_init(ObjectClass *klass, void *d= ata) dc->reset =3D sd_reset; dc->bus_type =3D TYPE_SD_BUS; =20 + sc->set_voltage =3D sd_set_voltage; sc->do_command =3D sd_do_command; sc->write_data =3D sd_write_data; sc->read_data =3D sd_read_data; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b8bc4fd032..18bf28efda 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1256,7 +1256,16 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t va= l, unsigned size) sdhci_update_irq(s); break; case SDHC_ACMD12ERRSTS: - MASKED_WRITE(s->acmd12errsts, mask, value); + MASKED_WRITE(s->acmd12errsts, mask, value & UINT16_MAX); + if (s->uhs_mode >=3D UHS_I) { + MASKED_WRITE(s->hostctl2, mask >> 16, value >> 16); + + if (FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, V18_ENA)) { + sdbus_set_voltage(&s->sdbus, SD_VOLTAGE_1_8V); + } else { + sdbus_set_voltage(&s->sdbus, SD_VOLTAGE_3_3V); + } + } break; =20 case SDHC_CAPAB: @@ -1311,6 +1320,7 @@ static void sdhci_init_readonly_registers(SDHCIState = *s, Error **errp) =20 #define DEFINE_SDHCI_COMMON_PROPERTIES(_state) \ DEFINE_PROP_UINT8("sd-spec-version", _state, sd_spec_version, 2), \ + DEFINE_PROP_UINT8("uhs", _state, uhs_mode, UHS_NOT_SUPPORTED), \ \ /* Capabilities registers provide information on supported * features of this specific host controller implementation */ \ diff --git a/hw/sd/trace-events b/hw/sd/trace-events index ea2746c8b7..84d2f398b1 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -4,6 +4,7 @@ sdbus_command(const char *bus_name, uint8_t cmd, uint32_t arg, uint8_t crc= ) "@%s CMD%02d arg 0x%08x crc 0x%02x" sdbus_read(const char *bus_name, uint8_t value) "@%s value 0x%02x" sdbus_write(const char *bus_name, uint8_t value) "@%s value 0x%02x" +sdbus_set_voltage(const char *bus_name, uint16_t millivolts) "@%s %u (mV)" =20 # hw/sd/sdhci.c sdhci_set_inserted(const char *level) "card state changed: %s" --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189564729568.805038206199; Fri, 9 Feb 2018 07:19:24 -0800 (PST) Received: from localhost ([::1]:60602 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekASN-0004ym-Gi for importer@patchew.org; Fri, 09 Feb 2018 10:19:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34216) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5W-0002Wz-Pp for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5U-0005hR-S3 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:42 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:33166) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5U-0005hJ-M3 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:40 -0500 Received: by mail-qt0-x242.google.com with SMTP id d8so10861587qtm.0 for ; Fri, 09 Feb 2018 06:55:40 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=twLnjiaLfXwzSS/yTHmicjo35rbkB9F+b0tfO3DYpk4=; b=WdkTCjoSp56nrgFmzEL9veLyNoSfdSR89ubrmY8dCdacWKLypZuPKDiWsVq5YpQeaJ oxAMtWy24hGDI0h5eidOC7wPVDmrUCnxc0cu00wc5glWOqdP4ugOMnnjXELLZ2dYj2an R9OhR/FBoOadQZHpGoKifRWoKAbk/d6XQE7jLxWOUwpnvG+Tw/Pj08pw5o6bpMD08eog gWctOe/9KGS1XxZHD2OlM/JWOxONSU1+WS1n4ad6uP3i/V9D7MM4MjW3o4KP3EmIxlQi wxn2qPdX231fHXI6zfBHPyYrGIvxiQ1rnNGTe6d/odBuJIrypBhb0OPPSBRli16SI3+P Z07w== 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=twLnjiaLfXwzSS/yTHmicjo35rbkB9F+b0tfO3DYpk4=; b=Sga8oQ7uVswWRz92o56BcejLwvzAcprBvo8mmBPO0+ZiUX9eOiCwPdIFHo6WDdpxYG 35YO5dyqnhEnt++fITSrs0odRJYPGJGGMO7u/iR2j5kdiQWZJI8VnIsog4az1aMUPkZO cuFpQpvqMIqRwMVCRZw6K0WPjktQuEojgyfG3dNHwqNRk+oMIJ8Man7EY6hjlXQSTujD PRIdkYW1vWvg3ofVOWNvVO94pEeXj8tEkV9rtwL72woZ9bzbgCbYhAHIbab7juNC7Si/ LjDCxGIkdUTVxaQKXNC8j8n2754ha71Z1+xdu+rKdF+jOPZ1y1yblQcAqdUFZYacDkH3 uSXg== X-Gm-Message-State: APf1xPBAdfaDJ3rM5V1nWJSr/BzNTywvFSn/YxegatdBsA99wDKptr1C gAfHNmejpEcxMwbsfwIf4LI= X-Google-Smtp-Source: AH8x22511G/gMwUCjsVqDLUiT4ByxPv3lcZshV1rG50Fq0ZBrCubMwU412fvolPQ3ezdArrdxpDsGg== X-Received: by 10.237.54.41 with SMTP id e38mr4965995qtb.49.1518188140049; Fri, 09 Feb 2018 06:55:40 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:22 -0300 Message-Id: <20180209145430.26007-23-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 22/30] sdhci: implement CMD/DAT[] fields in the Present State 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 [based on a patch from Alistair Francis from qemu/xilinx tag xilinx-v2015.2] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 2 ++ include/hw/sd/sd.h | 4 ++++ hw/sd/core.c | 34 ++++++++++++++++++++++++++++++++++ hw/sd/sd.c | 16 ++++++++++++++++ hw/sd/sdhci.c | 4 ++++ hw/sd/trace-events | 2 ++ 6 files changed, 62 insertions(+) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 5c69270988..0092627076 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -82,6 +82,8 @@ #define SDHC_CARD_PRESENT 0x00010000 #define SDHC_CARD_DETECT 0x00040000 #define SDHC_WRITE_PROTECT 0x00080000 +FIELD(SDHC_PRNSTS, DAT_LVL, 20, 4); +FIELD(SDHC_PRNSTS, CMD_LVL, 24, 1); #define TRANSFERRING_DATA(x) \ ((x) & (SDHC_DOING_READ | SDHC_DOING_WRITE)) =20 diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index f086679493..bf1eb0713c 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -103,6 +103,8 @@ typedef struct { uint8_t (*read_data)(SDState *sd); bool (*data_ready)(SDState *sd); void (*set_voltage)(SDState *sd, uint16_t millivolts); + uint8_t (*get_dat_lines)(SDState *sd); + bool (*get_cmd_line)(SDState *sd); void (*enable)(SDState *sd, bool enable); bool (*get_inserted)(SDState *sd); bool (*get_readonly)(SDState *sd); @@ -150,6 +152,8 @@ void sd_enable(SDState *sd, bool enable); * an SDBus rather than directly with SDState) */ void sdbus_set_voltage(SDBus *sdbus, uint16_t millivolts); +uint8_t sdbus_get_dat_lines(SDBus *sdbus); +bool sdbus_get_cmd_line(SDBus *sdbus); int sdbus_do_command(SDBus *sd, SDRequest *req, uint8_t *response); void sdbus_write_data(SDBus *sd, uint8_t value); uint8_t sdbus_read_data(SDBus *sd); diff --git a/hw/sd/core.c b/hw/sd/core.c index 6d198ea775..3c6eae6c88 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -41,6 +41,40 @@ static SDState *get_card(SDBus *sdbus) return SD_CARD(kid->child); } =20 +uint8_t sdbus_get_dat_lines(SDBus *sdbus) +{ + SDState *slave =3D get_card(sdbus); + uint8_t dat_lines =3D 0b1111; /* 4 bit bus width */ + + if (slave) { + SDCardClass *sc =3D SD_CARD_GET_CLASS(slave); + + if (sc->get_dat_lines) { + dat_lines =3D sc->get_dat_lines(slave); + } + } + trace_sdbus_get_dat_lines(sdbus_name(sdbus), dat_lines); + + return dat_lines; +} + +bool sdbus_get_cmd_line(SDBus *sdbus) +{ + SDState *slave =3D get_card(sdbus); + bool cmd_line =3D true; + + if (slave) { + SDCardClass *sc =3D SD_CARD_GET_CLASS(slave); + + if (sc->get_cmd_line) { + cmd_line =3D sc->get_cmd_line(slave); + } + } + trace_sdbus_get_cmd_line(sdbus_name(sdbus), cmd_line); + + return cmd_line; +} + void sdbus_set_voltage(SDBus *sdbus, uint16_t millivolts) { SDState *card =3D get_card(sdbus); diff --git a/hw/sd/sd.c b/hw/sd/sd.c index a8d7a522c0..9ac9b63ff8 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -126,8 +126,20 @@ struct SDState { BlockBackend *blk; =20 bool enable; + uint8_t dat_lines; + bool cmd_line; }; =20 +static uint8_t sd_get_dat_lines(SDState *sd) +{ + return sd->enable ? sd->dat_lines : 0; +} + +static bool sd_get_cmd_line(SDState *sd) +{ + return sd->enable ? sd->cmd_line : false; +} + static void sd_set_voltage(SDState *sd, uint16_t millivolts) { switch (millivolts) { @@ -457,6 +469,8 @@ static void sd_reset(DeviceState *dev) sd->blk_len =3D 0x200; sd->pwd_len =3D 0; sd->expecting_acmd =3D false; + sd->dat_lines =3D 0xf; + sd->cmd_line =3D true; sd->multi_blk_cnt =3D 0; } =20 @@ -1939,6 +1953,8 @@ static void sd_class_init(ObjectClass *klass, void *d= ata) dc->bus_type =3D TYPE_SD_BUS; =20 sc->set_voltage =3D sd_set_voltage; + sc->get_dat_lines =3D sd_get_dat_lines; + sc->get_cmd_line =3D sd_get_cmd_line; sc->do_command =3D sd_do_command; sc->write_data =3D sd_write_data; sc->read_data =3D sd_read_data; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 18bf28efda..6e5bea804c 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1004,6 +1004,10 @@ static uint64_t sdhci_read(void *opaque, hwaddr offs= et, unsigned size) break; case SDHC_PRNSTS: ret =3D s->prnsts; + ret =3D FIELD_DP32(ret, SDHC_PRNSTS, DAT_LVL, + sdbus_get_dat_lines(&s->sdbus)); + ret =3D FIELD_DP32(ret, SDHC_PRNSTS, CMD_LVL, + sdbus_get_cmd_line(&s->sdbus)); break; case SDHC_HOSTCTL: ret =3D s->hostctl1 | (s->pwrcon << 8) | (s->blkgap << 16) | diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 84d2f398b1..0f8536db32 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -5,6 +5,8 @@ sdbus_command(const char *bus_name, uint8_t cmd, uint32_t a= rg, uint8_t crc) "@%s sdbus_read(const char *bus_name, uint8_t value) "@%s value 0x%02x" sdbus_write(const char *bus_name, uint8_t value) "@%s value 0x%02x" sdbus_set_voltage(const char *bus_name, uint16_t millivolts) "@%s %u (mV)" +sdbus_get_dat_lines(const char *bus_name, uint8_t dat_lines) "@%s dat_line= s: %u" +sdbus_get_cmd_line(const char *bus_name, bool cmd_line) "@%s cmd_line: %u" =20 # hw/sd/sdhci.c sdhci_set_inserted(const char *level) "card state changed: %s" --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518188886081414.8751562115468; Fri, 9 Feb 2018 07:08:06 -0800 (PST) Received: from localhost ([::1]:60300 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAHV-0003y2-4L for importer@patchew.org; Fri, 09 Feb 2018 10:08:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34247) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5Y-0002Yu-LI for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5X-0005im-ST for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:44 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:33867) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5X-0005iX-NW; Fri, 09 Feb 2018 09:55:43 -0500 Received: by mail-qt0-x241.google.com with SMTP id d14so10837249qtg.1; Fri, 09 Feb 2018 06:55:43 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=KFpgQEhaZBgnPE0U5fVE+w0zSSdDn/i3ICfYlKUYVZU=; b=C/tUbwqwI9SGlIyKoSQLDPwFKN3X/+13ghWT8ECdlr+F4I6uV293x+34IBajxrUgZs WK467xwGW49lUKhO2GXxPdpgX6mh5tpZHrQpIKJFxfHPT++1FgKVY1v9M4XJEuxxHOlL D1dEkCFN9c8udY8X6Di1dSkYLVuwOBp/I894g9Jtb4Fynv9QlZ+T1we7sbbVYxK/m0Yb JHi10IZ1Mgo5uEWp7EOPUur/x4qUd51jOKFWj+yeI0OYdt8IL+w+yNmn9UmLwBImQLng nwKJxbcAi8mTktMq4S2jbnRlVGtuVnxg2uaPmRQMMxovXHwopSN622xX4vzTuuZ2ft1g IyHA== 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=KFpgQEhaZBgnPE0U5fVE+w0zSSdDn/i3ICfYlKUYVZU=; b=dW5FLOTOI7slsT5YKndOi2/L/+Rbhzwg5RoEm7kZewCOhvQTAUAjI1tddk80wuRf3E iVvWAO20NPNN5Ms4pQflTWD5pK+3a7uy0BQTDdfAw/7qwSIoGkXoEiLi5Sasjgd/gVaX kBCj83iWDvc9kkHmJXXRp/zwzCM4FYk1ovPSIsCR0IOMRSHy6RiQ5ZuK0TF0YiLtY3HJ 2aLQkBS8EGgTxapFXueABaG0ZyPx3RhQM9hzfTzFZtQX36gTcZbXnRqsLPJQht+SX+Oj eKsnbda/GzHSrEqxeN6zlHU2r0+aYtxKPcZVCOd/0EGLno4ghKdYkI1MXRbBwxe8OYhP bQjA== X-Gm-Message-State: APf1xPD4sFmO+IqI82I11D66/oTCvAykDf+JekQX4upzTy4uHE5+hJLY 9agedHYbw+GU1GhaT8hIuMg= X-Google-Smtp-Source: AH8x226vAh0iRBkwdjNLa6OnY6yxlvy2vTJcY1/xcAJ5uLNt4594ygO/N079qbE708q0Rln0YyORLg== X-Received: by 10.200.46.73 with SMTP id s9mr4936541qta.317.1518188143138; Fri, 09 Feb 2018 06:55:43 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:23 -0300 Message-Id: <20180209145430.26007-24-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v12 23/30] 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: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:ARM" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/arm/bcm2835_peripherals.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 12e0dd11af..ca971e83e0 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -254,14 +254,19 @@ 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)); =20 - /* Extended Mass Media Controller */ - object_property_set_int(OBJECT(&s->sdhci), BCM2835_SDHC_CAPAREG, "capa= reg", - &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 + * + * 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), BCM2835_SDHC_CAPAREG, "cap= areg", + &err); object_property_set_bool(OBJECT(&s->sdhci), true, "pending-insert-quir= k", &err); if (err) { --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151818908271074.1571277405452; Fri, 9 Feb 2018 07:11:22 -0800 (PST) Received: from localhost ([::1]:60335 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAKf-0006u7-QD for importer@patchew.org; Fri, 09 Feb 2018 10:11:21 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34321) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5b-0002bm-Aj for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5a-0005lG-EZ for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:47 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:37037) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5a-0005k4-A2; Fri, 09 Feb 2018 09:55:46 -0500 Received: by mail-qt0-x242.google.com with SMTP id s27so10837471qts.4; Fri, 09 Feb 2018 06:55:46 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=fXbDYPKBtb1ob/8HMTylq1noEaiAiTKM5rsfys7N0tc=; b=t5hIj5wUYraEyFbXc2jGoiKe28TK6MqXm/eqJ+Cwuve5vRzld+slG+Qk6qVtW1yHWJ 0kqmXvQVoQcBIhdgIeT3XyKmIIaL34XPd0PfZ5ZoGobhuLmZJEFTMyv9koZuG6ct2hLn N/wBOTctXoLgjZGh/elLNOstbRaa/euZEnimRKOPaEXR+RT8MUvxlKITUk5lwxpQFGwL VsEWMJKH9vMfcC20LWn/CCAMCuLSYfct8rIZP0DLDTyivSC/cG4W5JcT1bv63sZ6aeLG IyTP1llR/aGAEceI2rL5QuUKVC6mM+CK+/o6fN1z3+krKOOzg/feeeq/UeNr1Q1D2xyG QGVA== 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=fXbDYPKBtb1ob/8HMTylq1noEaiAiTKM5rsfys7N0tc=; b=tw3BPypFA0mlixAFSUh15/BdFKi8g+LV9t6ZTw6oz8veIC1vuvbVJF+eoIlj8N2w0M Jf/+Shj2N4H9Utry7MmzhIcZuKcz30RmCwyBxYzxheZZrOUuhhB+4sW1AohrYP7vx1mC HY+5LC4a7fcb/dTfTBoiNBdap27wNrFDz4+2Gls+A7ixNfi3oUSAel8fnz63Eg51xEBR jbzrq1akg0HhQSbFSzJT2GIYXH1ResC8N7JMvcb5HQXO/Px3sElFUyC/WpgaYaL84qH4 xEHDTD9worGEQoLjJ/OLy/Wi1QEstZuq8PhMuNaMgYqWzJXF/Sout4cX0850UDRbvwOA JdtA== X-Gm-Message-State: APf1xPDk21xb1q8F1ca+I1D63L+UR+qcynwwWIvtXFrD3TafHTyQkjke 8V5BUQNg+xzsU6BVoUsxIsRdF01s X-Google-Smtp-Source: AH8x227jnuiwHubi0pR57xYh+KgD+map2BXVQutOkm073tIaITZfsTdCpR3a0dHhS04X9uOjArWKLA== X-Received: by 10.237.57.100 with SMTP id l91mr5031419qte.25.1518188145796; Fri, 09 Feb 2018 06:55:45 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:24 -0300 Message-Id: <20180209145430.26007-25-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 24/30] hw/arm/bcm2835_peripherals: change maximum block size to 1kB X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:ARM" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 following the datasheet. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- hw/arm/bcm2835_peripherals.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index ca971e83e0..13b63970d7 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -19,7 +19,7 @@ #define BCM2835_VC_PERI_BASE 0x7e000000 =20 /* Capabilities for SD controller: no DMA, high-speed, default clocks etc.= */ -#define BCM2835_SDHC_CAPAREG 0x52034b4 +#define BCM2835_SDHC_CAPAREG 0x52134b4 =20 static void bcm2835_peripherals_init(Object *obj) { --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189094262242.9152511559804; Fri, 9 Feb 2018 07:11:34 -0800 (PST) Received: from localhost ([::1]:60336 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAKr-000717-DL for importer@patchew.org; Fri, 09 Feb 2018 10:11:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34444) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5h-0002hd-G7 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5d-0005oS-MY for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:53 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:46976) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5d-0005oD-Hg; Fri, 09 Feb 2018 09:55:49 -0500 Received: by mail-qk0-x243.google.com with SMTP id d144so3450388qkg.13; Fri, 09 Feb 2018 06:55:49 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:48 -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=v457jH8C5UirGQbVe7z02s40zgDFDhiKAvbmiOY6FF4=; b=H27zWaZNY8GNDzY1WoEnLkistvkC8MgZDHYDxhXmTdpDHqwg8C1FjhPO21rfpbDkob gq2YpsiQ48uara7fr973FfpT9eXAhPE/pe2YLWoSXr3naqAGGipCKM50Fkr5ooNn2ffK SByI9tCTacLmlz2zQmEZPstvNhqnCyt19aiHo2yK0p+ltSucP39A91yhWrA7bNOV+fDE SwlNd4vMNRRw/xjt7xJog3VQKMrcHzmo340lzEFbxGx9v7gUqaxO5/IQuRqPbzULs53o m3CDJzk4irtqi0/hde8eI52yZBYf3EdK1c0989c6toWqaQgGTANBCBUGlysk8K7XHqbU BqrQ== 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=v457jH8C5UirGQbVe7z02s40zgDFDhiKAvbmiOY6FF4=; b=IHgPjAAhNaJ4Mj9D6DeMdDrIewK/u7AkUMGZfvucek0DnruF8Lp1hsvF3ReyJpbSB/ M+ruE/hEBTvRVzsLNgTmMPLWaz09w5ETZSiESkFAqVxLeUaHQjOQ/1WfA47PV+mWAgVa VmXpE/Vd2LF+d9Zp96Dfq7bPYQE4IZE1/8mZxx0DlxQ7cFkkFE0fuGwqyxYhm1Q9IjsI FQGKEONLUxe8qbfKeBZZUwSKmUPGNzQL4asOzPUITGQLXaCHDQ67qK3kpK6od9V8Nayf RslHAopdJ6SvjMLKp06TpZ4US8nDm/tIXUCrbPloOWAaMDxVN3AkcVV7oCEQ/6E4I6Qr rO0g== X-Gm-Message-State: APf1xPDGqjLNTyZ7+AW6XWNgEATQMLcfYWPVkXABSLgOMyha4iSvJYPy H8GcYWzoIn3i9yxtHCFvHWs= X-Google-Smtp-Source: AH8x227ULpY4ceRpKjFy8kr5lz9Ndg3yZNBV+4HsSJZDLkE3P9q5jyt9Emdi3f+e7HIt9C1xk/jm8w== X-Received: by 10.55.56.84 with SMTP id f81mr4477279qka.25.1518188148903; Fri, 09 Feb 2018 06:55:48 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:25 -0300 Message-Id: <20180209145430.26007-26-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v12 25/30] hw/arm/fsl-imx6: implement SDHCI Spec. v3 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:ARM" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- hw/arm/fsl-imx6.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index e6559a8b12..b6ac72de27 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -27,6 +27,8 @@ #include "chardev/char.h" #include "qemu/error-report.h" =20 +#define IMX6_ESDHC_CAPABILITIES 0x057834b4 + #define NAME_SIZE 20 =20 static void fsl_imx6_init(Object *obj) @@ -348,6 +350,11 @@ static void fsl_imx6_realize(DeviceState *dev, Error *= *errp) { FSL_IMX6_uSDHC4_ADDR, FSL_IMX6_uSDHC4_IRQ }, }; =20 + /* UHS-I SDIO3.0 SDR104 1.8V ADMA */ + object_property_set_uint(OBJECT(&s->esdhc[i]), 3, "sd-spec-version= ", + &err); + object_property_set_uint(OBJECT(&s->esdhc[i]), IMX6_ESDHC_CAPABILI= TIES, + "capareg", &err); object_property_set_bool(OBJECT(&s->esdhc[i]), true, "realized", &= err); if (err) { error_propagate(errp, err); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518190007300980.3933843373302; Fri, 9 Feb 2018 07:26:47 -0800 (PST) Received: from localhost ([::1]:33004 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAZa-0002wl-5I for importer@patchew.org; Fri, 09 Feb 2018 10:26:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34447) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5h-0002hf-H6 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5g-0005q0-Ln for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:53 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:41210) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5g-0005ps-Fq; Fri, 09 Feb 2018 09:55:52 -0500 Received: by mail-qt0-x241.google.com with SMTP id a9so4245436qtj.8; Fri, 09 Feb 2018 06:55:52 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55: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=5qaGRwDZfwX37p33tGyHNiBbUOeIBUssXi21Pjx552M=; b=rVhuzKvORaISLKAs5lYk2tjXOpjAiin4NZqvyvyJvY6IigHYW6i4xgUG2qOrak3S2V tjMZHozrT82oBxi6XL22GP8mFnBnpnn4N/Pb8hiQ/ZQbx1l8Ul/848Uz7s0DYJUi+eui 2oeaVeiKHnssfLQkcuoS/lqY1rGEhtPcjoGV8DLao1a9bkYz9XUlRn3PQOUExOG5vdfA t5IZpQ1kaCZgfISBh14BBXGdq6CeJCSXRGpCsOVx+qw/MY85IQezzexquHEGRZVdcoj+ dbWnOqBcX++q0PCgqTSxsPYunXMDLn7lJzLOVlh2qHky6HnUAzx6cYIyqyMJK4xmNew4 1qkw== 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=5qaGRwDZfwX37p33tGyHNiBbUOeIBUssXi21Pjx552M=; b=hXh0thoY16OP3/tWYyF0dACSv9wNtiPo2UUbbf6sDjOSS/jqUZlIgiods09BOO5SPO LfJE8yPjhz/APViDtiNKwA966E3hrmPCPT+AhCzJqWjGf5phVmmkuMg2hbSY6d+zaGog uakn4mWNeTli6XPj5TlJS/WsP2gOp9B84Y7jGzNDAvtoVtVenmBYM1TKEXp11gb/mnTt h2/OMtxfUTRg8S8i7lq220JGLhbhNJharw68zfoY+mjmk/yrKE2+/ZbOlXMLGfBtlar0 lIlwnQwXE9rftjtQ+FyeQf1CvgvRQ+ODxGRnoy+Unrh1ygWSOuQHWOYUYx2mLGGlNbnL sxEw== X-Gm-Message-State: APf1xPCOg5XK8wd2bpK6lnnbwYGjsYsm5kMx5zCiPLc/BQzbZk9N7Qgo wfQtJFhpkfDx83srRHYTQLddd8FP X-Google-Smtp-Source: AH8x225lRbMK02Ja6UIV9PXtrgzW3P922qfV7bYptIzairrWgwlXUDEDQsASRs0eDTbv7BwVDPivqw== X-Received: by 10.200.42.168 with SMTP id b37mr4783587qta.321.1518188151949; Fri, 09 Feb 2018 06:55:51 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:26 -0300 Message-Id: <20180209145430.26007-27-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v12 26/30] hw/arm/xilinx_zynqmp: fix the capabilities/spec version to match the datasheet X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:Xilinx ZynqMP" , "Edgar E. Iglesias" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 checking Xilinx datasheet "UG1085" (v1.7) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/arm/xlnx-zynqmp.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index ca398c4159..e39ad73bec 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -53,6 +53,8 @@ #define IPI_ADDR 0xFF300000 #define IPI_IRQ 64 =20 +#define SDHCI_CAPABILITIES 0x280737ec6481 /* Datasheet: UG1085 (v1.7) */ + static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] =3D { 0xFF0B0000, 0xFF0C0000, 0xFF0D0000, 0xFF0E0000, }; @@ -387,22 +389,27 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Err= or **errp) sysbus_connect_irq(SYS_BUS_DEVICE(&s->sata), 0, gic_spi[SATA_INTR]); =20 for (i =3D 0; i < XLNX_ZYNQMP_NUM_SDHCI; i++) { - char *bus_name; - - object_property_set_bool(OBJECT(&s->sdhci[i]), true, - "realized", &err); + char *bus_name =3D g_strdup_printf("sd-bus%d", i); + SysBusDevice *sbd =3D SYS_BUS_DEVICE(&s->sdhci[i]); + Object *sdhci =3D OBJECT(&s->sdhci[i]); + + /* Compatible with: + * - SD Host Controller Specification Version 3.00 + * - SDIO Specification Version 3.0 + * - eMMC Specification Version 4.51 + */ + object_property_set_uint(sdhci, 3, "sd-spec-version", &err); + object_property_set_uint(sdhci, SDHCI_CAPABILITIES, "capareg", &er= r); + object_property_set_bool(sdhci, true, "realized", &err); if (err) { error_propagate(errp, err); return; } - sysbus_mmio_map(SYS_BUS_DEVICE(&s->sdhci[i]), 0, - sdhci_addr[i]); - sysbus_connect_irq(SYS_BUS_DEVICE(&s->sdhci[i]), 0, - gic_spi[sdhci_intr[i]]); + sysbus_mmio_map(sbd, 0, sdhci_addr[i]); + sysbus_connect_irq(sbd, 0, gic_spi[sdhci_intr[i]]); + /* Alias controller SD bus to the SoC itself */ - bus_name =3D g_strdup_printf("sd-bus%d", i); - object_property_add_alias(OBJECT(s), bus_name, - OBJECT(&s->sdhci[i]), "sd-bus", + object_property_add_alias(OBJECT(s), bus_name, sdhci, "sd-bus", &error_abort); g_free(bus_name); } --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189811284792.3252695654696; Fri, 9 Feb 2018 07:23:31 -0800 (PST) Received: from localhost ([::1]:60894 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAWL-0008Hs-A5 for importer@patchew.org; Fri, 09 Feb 2018 10:23:25 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5p-0002mu-7I for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5j-0005ri-PC for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:01 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:38047) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5j-0005rP-KA; Fri, 09 Feb 2018 09:55:55 -0500 Received: by mail-qt0-x242.google.com with SMTP id z10so10828122qti.5; Fri, 09 Feb 2018 06:55:55 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:54 -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=Ro6NsGQE95TgqhEe4cM+3fq55Nj7p/DfcTmAK0a7k7c=; b=DT7mHXpV9PbgupSuLdMzNROwhgf6cHONcaLOUluO1NRn6tfPA6TsG/iWs+0ol32M7Q k/+Hc6XiA4UwCkK9uH8FbEhTAmOhaR5qlRggeSIqB/fHQogalmscBTnfS4IGiIE0+Jev blsy5w0SIupb6fRbFIXcbIl+m1SjlCe0ao22yYy/SXOHvp0H2c6Y1Mb5dGXrf4NIuhT+ dx2pI5FH1MDy/q5HlexgfjioirAhEJkFj0KLjyC6XYXF93+u8kI9Wx9dErsRgm115qT8 98rsniuHBBBORtzAwI5qG1dJi+3LeEyqi5a2yKQ3Pdmzxed/O8YeJpr/XOI1SJzJWoOw NCuQ== 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=Ro6NsGQE95TgqhEe4cM+3fq55Nj7p/DfcTmAK0a7k7c=; b=RRgIuC1Tbxw4rbW/haCszdM5neUWjGNwWKSP+rUMjy9Uj7R4dC1tDxuMS2WqvvWU5M PJY8cguiAM283CBUmeB95Qf2KlErqXMnwCkw0FmxNJAU0zl/s/TUC9UChBeWskSK/XfD jb4ChaKsocuEaEkHIMCntMzKJ9pDDZ33Moz9zbAQR5nH0j4KaSs73RwYV21N4nCnmncB qLUDyYzad9FZMykXdq/ZrNVnUWcThZe4CJcR/EADU4gCuFiRjyzy0SedT4kdMyO8Mm06 X8OzhECdL5zF5u4TZIYAY+AGnuG8XozONxFuvKf3A38trc67UUwPuQKN/KJsSr2CUPOA ukYw== X-Gm-Message-State: APf1xPD4sw1qRtzR+OqR/YmgBv9EV7d5qCqOWqFNAMLEKrx2WpdEBD2s 39GjOf0vcVJc/z/I3cjTGoQ= X-Google-Smtp-Source: AH8x226O/PTlMT9fYQ4BlUwHXt58pfK5LVVJ88GWrRuxrEFs6OlXLhKj8rn1ZE/7pbagrbOqchwz1Q== X-Received: by 10.200.39.241 with SMTP id x46mr4630076qtx.266.1518188155087; Fri, 09 Feb 2018 06:55:55 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:27 -0300 Message-Id: <20180209145430.26007-28-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 27/30] hw/arm/xilinx_zynqmp: enable the UHS-I mode X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , "open list:Xilinx ZynqMP" , "Edgar E. Iglesias" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 see the Xilinx datasheet "UG1085" (v1.7) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/arm/xlnx-zynqmp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index e39ad73bec..4b93a3abd2 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -400,6 +400,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error= **errp) */ object_property_set_uint(sdhci, 3, "sd-spec-version", &err); object_property_set_uint(sdhci, SDHCI_CAPABILITIES, "capareg", &er= r); + object_property_set_uint(sdhci, UHS_I, "uhs", &err); object_property_set_bool(sdhci, true, "realized", &err); if (err) { error_propagate(errp, err); --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518190281798665.7907225572956; Fri, 9 Feb 2018 07:31:21 -0800 (PST) Received: from localhost ([::1]:33506 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAdx-0006X5-Bk for importer@patchew.org; Fri, 09 Feb 2018 10:31:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34518) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5n-0002md-As for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5m-0005sh-G4 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:59 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:39319) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5m-0005sb-Bk for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:55:58 -0500 Received: by mail-qt0-x244.google.com with SMTP id f4so10832325qtj.6 for ; Fri, 09 Feb 2018 06:55:58 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:55:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZRvml1ZGUdaKPUofppn7Ev0zvZpYZ87NNd9NukKAQjs=; b=uODUgObu3/j0i7py39bJGzjyYLUJDgNOiBTcvBAXShaojqFHUEtVpo3C3wCx15euFH Ve2kYRPy5ySJTbcQhNO834gPlxt8xwRN5iBBa2qfWTYLxnZb9CZtkdPbstbga0vVJbnb Q1zMqAaQl4qXEcbFD9vj/b7aFEJO6cbz3wJwn24a1hNdlyzGYEn+nxR2Y1zjeD9KEoDB hzdbNxW5KmqDAtUVZiqzkHUYTbQj8H4KpeWvXCclOSQ23VlI38+U9OM+1YkiaWN+JFja bTRlgKMFY//Te6zEerjuSFcch4ECRbKWm9JU/SMmeLeE1CWFhd7ZA0ynDhSvrngMZV9N GozQ== 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=ZRvml1ZGUdaKPUofppn7Ev0zvZpYZ87NNd9NukKAQjs=; b=MUqxeD+Z2CcU1F1lDKn/aLqG+oiBP6U5Q5ZdKnhmD8elGWK5t6uTc/nhmtScHfdxVj cuioHWpDnDmuO1HSmMLx3a47gmnNU4xkdIHSJiTsYha496UzW2RFCoExBvHzXDsmUxwu TE5fVU4DziEPCd7DTbudOERqLHvJ92OdrB2+r1duS6B+aWcTuxMOBP3VCYaJCGIXCCru c+7TcaaCOGTShXaLpShJ63FSb65AIG8ZK8STVzm+oSDdWlvW5eDtuTqWDIGAkEbpt4HP DYXylwMz74uoTv1hEBMXF3p/VKCy/f5vv/UJ2FGLwcUvtknuk/UPwhOndOZqp2lXTNPB 1psg== X-Gm-Message-State: APf1xPCc0Bt4riUegnOI2C7DD4TXX3X8W2aDoy0XnqHc6fd91iJokw7g oJKb3p2RK1vTRBrkaGdN/aE= X-Google-Smtp-Source: AH8x2267Hfmzvin0d4I5I5WWF1gajlm7XHv2LcyxFGp9nQcJjENfZdAAZEfxfdoLvFaJGIH7Fi4ppQ== X-Received: by 10.237.32.74 with SMTP id 68mr4902474qta.129.1518188157842; Fri, 09 Feb 2018 06:55:57 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:28 -0300 Message-Id: <20180209145430.26007-29-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v12 28/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- 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 898c43ff4f..39d0f87788 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -42,10 +42,22 @@ static const struct sdhci_t { { "arm", "smdkc210", {0x12510000, 2, 0, {1, 0x5e80080} } }, =20 + /* i.MX 6 */ + { "arm", "sabrelite", + {0x02190000, 3, 0, {1, 0x057834b4} } }, + + /* BCM2835 */ + { "arm", "raspi2", + {0x3f300000, 3, 52, {0, 0x052134b4} } }, + /* Zynq-7000 */ { "arm", "xilinx-zynq-a9", /* Datasheet: UG585 (v1.12.1) */ {0xe0100000, 2, 0, {1, 0x69ec0080} } }, =20 + /* ZynqMP */ + { "aarch64", "xlnx-zcu102", /* Datasheet: UG1085 (v1.7) */ + {0xff160000, 3, 0, {1, 0x280737ec6481} } }, + }; =20 typedef struct QSDHCI { diff --git a/tests/Makefile.include b/tests/Makefile.include index 52be9b3fa5..278c13aa93 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -371,6 +371,7 @@ check-qtest-arm-y +=3D tests/boot-serial-test$(EXESUF) check-qtest-arm-y +=3D tests/sdhci-test$(EXESUF) =20 check-qtest-aarch64-y =3D tests/numa-test$(EXESUF) +check-qtest-aarch64-y +=3D tests/sdhci-test$(EXESUF) =20 check-qtest-microblazeel-y =3D $(check-qtest-microblaze-y) =20 --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518190012871156.77384822530894; Fri, 9 Feb 2018 07:26:52 -0800 (PST) Received: from localhost ([::1]:33005 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAZf-00030g-Sr for importer@patchew.org; Fri, 09 Feb 2018 10:26:51 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34561) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5s-0002sL-At for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5p-0005tU-8R for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:04 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:38048) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5p-0005tL-49 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:01 -0500 Received: by mail-qt0-x242.google.com with SMTP id z10so10828508qti.5 for ; Fri, 09 Feb 2018 06:56:00 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.55.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:56:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CSw+keFj0KiM8UJfh3gLP/ZZp830fZk9bqy5fPHP4cc=; b=KUNi4iDx1xMqa/2SvljHimBVGI5BgmJw2kbW/AzDR2wwb/hVyD9UPOSxvA1AIq+4Yq wzXCwrGc0nSDAiYa8FADbHxhXNrLMEypcIDVt/CMJEyEagJ0YnK+VjCl/2TpSYQZ0QGW AbHu9eJIlV6ytx8X/pJXje/Fz7o7V6mykDTYNysFXXp/CdlOkcGUHj9CpETHj3ktVZ6B PXkiMXCAMGbmBvdtbLZd+5qVPhGiQfHHUXZUkRNNJOKTswe910R0s2u+hq5zu8XWbaeo 7RinYFjjqX3n1RmuPG6D8sbjOuzdFRDAiuV8yLrmkJjScIff5sfQ73XS0RFeohOhoI4O L/sA== 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=CSw+keFj0KiM8UJfh3gLP/ZZp830fZk9bqy5fPHP4cc=; b=twTFRR9AD9qpRUo2OpoxWbuFR/RpYxAjZO355waNZyQw4/BSMvFGfzW6Y3niNdeAU2 KqgigWTIuuq9mOVn2CN2JC6sjJVW0yHYOZOfrirx/10cTcjPOMZvxDixfU/1c50lFYFB /k8cWj6foiWgk27aX8kVcZVbXc1LSVPjRhbrGkVHf9pkjN/oaGRblODGm20uhX9HSmR6 t8AO2MT3clwVr//fFXatUgSKzswUpU8HlK+xFPfZOZnJbO0dC12DNJ9nbJCLe7WIFg0F WmK947i6AeEaQ3Uxs4Vc7O6eWmWfrwegFq00rssYLfqDlnfx7MNfN8mF9FqtJY6A3RDU I2Sg== X-Gm-Message-State: APf1xPCxVFQ9NFTQalZpZjzHu6Ms2bnSd24EyQqJSjMzYBaC3hRKK2wQ HRRQwLaKYuIFf/tvFOly3uI= X-Google-Smtp-Source: AH8x224v4kh6nUFF3I7/mQCXS1w8FxvYhU5kQCi2ulL58lMVBVIr9WCZ153K8WgExIwHhadF6a6YOg== X-Received: by 10.237.41.164 with SMTP id o33mr4816590qtd.2.1518188160606; Fri, 09 Feb 2018 06:56:00 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:29 -0300 Message-Id: <20180209145430.26007-30-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v12 29/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi --- tests/sdhci-test.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/sdhci-test.c b/tests/sdhci-test.c index 39d0f87788..c0b45da88a 100644 --- a/tests/sdhci-test.c +++ b/tests/sdhci-test.c @@ -16,6 +16,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 =20 static const struct sdhci_t { @@ -161,6 +163,20 @@ static void check_capab_sdma(QSDHCI *s, bool supported) g_assert_cmpuint(capab_sdma, =3D=3D, supported); } =20 +static void check_capab_v3(QSDHCI *s, uint8_t version) +{ + uint64_t capab, capab_v3; + + if (version < 3) { + /* before v3 those fields are RESERVED */ + capab =3D sdhci_readq(s, SDHC_CAPAB); + capab_v3 =3D FIELD_EX64(capab, SDHC_CAPAB, SDR); + g_assert_cmpuint(capab_v3, =3D=3D, 0); + capab_v3 =3D FIELD_EX64(capab, SDHC_CAPAB, DRIVER); + g_assert_cmpuint(capab_v3, =3D=3D, 0); + } +} + static QSDHCI *machine_start(const struct sdhci_t *test) { QSDHCI *s =3D g_new0(QSDHCI, 1); @@ -209,6 +225,7 @@ static void test_machine(const void *data) check_specs_version(s, test->sdhci.version); check_capab_capareg(s, test->sdhci.capab.reg); check_capab_readonly(s); + check_capab_v3(s, test->sdhci.version); check_capab_sdma(s, test->sdhci.capab.sdma); check_capab_baseclock(s, test->sdhci.baseclock); =20 --=20 2.16.1 From nobody Sat Apr 27 22:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518189550770845.8321534811547; Fri, 9 Feb 2018 07:19:10 -0800 (PST) Received: from localhost ([::1]:60601 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekAS8-0004j3-RZ for importer@patchew.org; Fri, 09 Feb 2018 10:19:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34579) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekA5t-0002tW-9I for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekA5s-0005uo-67 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:05 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:43473) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ekA5s-0005ud-1E for qemu-devel@nongnu.org; Fri, 09 Feb 2018 09:56:04 -0500 Received: by mail-qt0-x241.google.com with SMTP id d26so381645qtk.10 for ; Fri, 09 Feb 2018 06:56:03 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id b29sm747841qkb.28.2018.02.09.06.56.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 06:56:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Q0BNPdP5ghGEGWQaV3NtsLbNa8nxSkL1ry+NjVps0YY=; b=ErFjRuPG4Y4hdmzXx3zqLWNc9s8qWI/BwkFEg/cDEpPCfW6vtMVC+Hrqoeke2/1Ldt a3oHBdDbttX4E5+MB8e7V/T53i8Q1KaiKrl8ndVpJGXuvn8QPjtn9LfsPcsaH/k9fNFU qCUNDUHPiR7hm8CApMjAa2h5qC3gGS2NK3lUW+JrlnpEDXfQq7x87342eL4qfTg0qk5z i6jSrlCyg0iqO4ai2lwPS5+LtfppNcfgaj3RiNCVxNetwBzGS7loLdY2yoWa+0vbINg7 yKTu2tSAgG9RGV912bK4NMxJZ7s9n5FY1aPm3aA+d8uZC7u8gk08aMNIow9FInAgkpVN NkRQ== 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=Q0BNPdP5ghGEGWQaV3NtsLbNa8nxSkL1ry+NjVps0YY=; b=Qy6OXwuRDKI5N5B7+H04eBZYy30iKD7oZZUupEwTDmwfl4zMjDnoxGOUEl6Bx6+mfW dna5ZR5Mw2tKsF+Dw35LQiX5nuVNpfW25u7zJhcGBmaFUAuDRuC0nmuYUFXDhrbu9YpA Gfv+B0DbJVuc+D/dIWWzAGXPsZEFLGHTcLgW9IcHYZQejPOwgbbekxnoYO4qEOQZy3of At3zaZe8GsdKzhqHi4wr9ApMLDxxDX/COcYSKu42HuxTYa5EdZFW0ZJzjXToxLFFXsh4 uLCvAAXoqwDAqtfWakMM4o/zIeC4scIzpDO68Jp/OJ1kW9KypIM3CbLrhpS9R/WB6BRo c28g== X-Gm-Message-State: APf1xPAM6/OZYkhRfxtk1KaT++kKoCiQo8lyoiLTmMB3anjymK38utD3 8R7XI6fRtlv5cqwa4lbYssc= X-Google-Smtp-Source: AH8x224bkNaSmRmcBxBTLFfg3hGA8WHchPKjM3GJCCySS4I3Z46KazoApSAg/dEkEo5QhCq2cbvnMw== X-Received: by 10.200.46.73 with SMTP id s9mr4938257qta.317.1518188163488; Fri, 09 Feb 2018 06:56:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini Date: Fri, 9 Feb 2018 11:54:30 -0300 Message-Id: <20180209145430.26007-31-f4bug@amsat.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v12 30/30] 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" , Peter Maydell , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci-internal.h | 9 +++++++++ hw/sd/sdhci.c | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 0092627076..e1bb733aed 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -198,6 +198,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); =20 @@ -216,10 +220,12 @@ 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_V4, 27, 1); /* since v4.10 */ 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, UHS_II, 35, 8); /* since v4.20 */ 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 */ @@ -228,12 +234,15 @@ FIELD(SDHC_CAPAB, TIMER_RETUNING, 40, 4); /* sinc= e v3 */ FIELD(SDHC_CAPAB, SDR50_TUNING, 45, 1); /* since v3 */ FIELD(SDHC_CAPAB, RETUNING_MODE, 46, 2); /* since v3 */ FIELD(SDHC_CAPAB, CLOCK_MULT, 48, 8); /* since v3 */ +FIELD(SDHC_CAPAB, ADMA3, 59, 1); /* since v4.20 */ +FIELD(SDHC_CAPAB, V18_VDD2, 60, 1); /* since v4.20 */ =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 */ =20 /* W Force Event Auto CMD12 Error Interrupt Register 0x0000 */ #define SDHC_FEAER 0x50 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 6e5bea804c..c2e4b7003d 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -92,6 +92,20 @@ static void sdhci_check_capareg(SDHCIState *s, Error **e= rrp) bool unit_mhz; =20 switch (s->sd_spec_version) { + case 4: + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, BUS64BIT_V4); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, BUS64BIT_V4, 0); + trace_sdhci_capareg("64-bit system bus (v4)", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, UHS_II); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, UHS_II, 0); + trace_sdhci_capareg("UHS-II", val); + + val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, ADMA3); + msk =3D FIELD_DP64(msk, SDHC_CAPAB, ADMA3, 0); + trace_sdhci_capareg("ADMA3", val); + + /* fallback */ case 3: val =3D FIELD_EX64(s->capareg, SDHC_CAPAB, ASYNC_INT); trace_sdhci_capareg("async interrupt", val); --=20 2.16.1