From nobody Mon May 6 05:12:01 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 151668002144463.801089202607386; Mon, 22 Jan 2018 20:00:21 -0800 (PST) Received: from localhost ([::1]:60973 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpky-00071j-Nz for importer@patchew.org; Mon, 22 Jan 2018 23:00:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpjU-00061u-DT for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpjT-0002D7-BK for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:48 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:37145) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpjT-0002Cf-6l for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:47 -0500 Received: by mail-qt0-x241.google.com with SMTP id d54so26601839qtd.4 for ; Mon, 22 Jan 2018 19:58:47 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id n24sm12447530qta.26.2018.01.22.19.58.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:58: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=EhhJSTbQclh/+61+FVA/2iDf9+HEknpkfLt3dEtJRgU=; b=QQHzinbDE/VXbLvUkJTmOvNBAnu2wI1YCUQDc8l1HMTG2pTWWfb3MnJPK0yc22sxwx D+8sBK/vN/vrmhGWd2NJ/1j7qlGDz6Po5VLBfHi8Q/WQlj0ZRRL1xQ5+nK/vdKGU8Yk9 +uI7V//y5A69yhHbOprYhx+VAhJyUOs6ILnR71MnYLFdnlb2N02ijhE0R6Pc8xf/oBgb OeCqRFg7Lca5qlzzDpLyaaPwRUizktKPzo7gby+IbEYMOUwixBLtgE3e1S1ROg2hYT3V Sx0iL0xCEzPToWbJkpc6U19OoLpf2l2nckiQ8RyG1ydajNvIemK6rcNvj6iEzsLIZOa3 RF7A== 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=EhhJSTbQclh/+61+FVA/2iDf9+HEknpkfLt3dEtJRgU=; b=hA3uJQX1bFgqg440LGAc5TeDcSCJKdBJTC7Xd8PTPeTjgirjnJrGu6TC9t6sDb0nLB c5anrYzFs3JqMr+MSkHVNTcK//ZZZpsNEkBIo7F3+YiB9JInUv+9yoZ7xd+7Xj1nOyHN Bkp4iX2SZ7ENRCb8NkJtdXvLh08t4zP99zGPm/4+/Ojf0GaGeeZQGZgFuZ4LZqO+s0ZQ etvjMKbP39ckZGR6IEB3iazZIf04ET4Ves6SIiasBHdQ8XMUcKmsi+Q8OtMvAYKz7dVu TAZSB8FdUjmTjwF9ETNFikhPtkswLm2J1HSF6u7sfm6cR4FhT8zZUds5Vad9nJIyf3Hc R4dw== X-Gm-Message-State: AKwxytcdM54OGP2ZAu+Rgz1Q96kj71z/fX5q8oVe4T5whESpejJZJreG MXCvJnlwl1EtXEkfpZ9ycJk= X-Google-Smtp-Source: AH8x2273mjK4UKRsaTZUAc6WGNlg6uLCr0mpWlTWaxQW0bgg3zVbbaQlurzEnAXtJILz0hhPK+dujg== X-Received: by 10.55.144.2 with SMTP id s2mr1563497qkd.257.1516679926607; Mon, 22 Jan 2018 19:58:46 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle Date: Tue, 23 Jan 2018 00:58:32 -0300 Message-Id: <20180123035837.16578-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123035837.16578-1-f4bug@amsat.org> References: <20180123035837.16578-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 v2 1/6] hw/sd/milkymist-memcard: use qemu_log_mask() 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" , Stefan Weil , =?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: Michael Walle Reviewed-by: Alistair Francis --- hw/sd/milkymist-memcard.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 341da88552..1292c0c099 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -22,11 +22,12 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/log.h" #include "hw/hw.h" #include "hw/sysbus.h" #include "sysemu/sysemu.h" #include "trace.h" -#include "qemu/error-report.h" +#include "include/qapi/error.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "hw/sd/sd.h" @@ -138,8 +139,8 @@ static uint64_t memcard_read(void *opaque, hwaddr addr, } else { r =3D s->response[s->response_read_ptr++]; if (s->response_read_ptr > s->response_len) { - error_report("milkymist_memcard: " - "read more cmd bytes than available. Clipping."); + qemu_log_mask(LOG_GUEST_ERROR, "milkymist_memcard: " + "read more cmd bytes than available. Clippin= g."); s->response_read_ptr =3D 0; } } @@ -163,8 +164,9 @@ static uint64_t memcard_read(void *opaque, hwaddr addr, break; =20 default: - error_report("milkymist_memcard: read access to unknown register 0= x" - TARGET_FMT_plx, addr << 2); + qemu_log_mask(LOG_UNIMP, "milkymist_memcard: " + "read access to unknown register 0x%" HWADDR_PRIx "\= n", + addr << 2); break; } =20 @@ -220,8 +222,9 @@ static void memcard_write(void *opaque, hwaddr addr, ui= nt64_t value, break; =20 default: - error_report("milkymist_memcard: write access to unknown register = 0x" - TARGET_FMT_plx, addr << 2); + qemu_log_mask(LOG_UNIMP, "milkymist_memcard: " + "write access to unknown register 0x%" HWADDR_PRIx "= " + "(value 0x%" PRIx64 ")\n", addr << 2, value); break; } } --=20 2.15.1 From nobody Mon May 6 05:12:01 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 1516680027950758.4147864183453; Mon, 22 Jan 2018 20:00:27 -0800 (PST) Received: from localhost ([::1]:60975 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpl5-00076e-86 for importer@patchew.org; Mon, 22 Jan 2018 23:00:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpjX-00063w-1a for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpjW-0002I8-2j for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:51 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:37147) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpjV-0002H8-UF for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:50 -0500 Received: by mail-qt0-x243.google.com with SMTP id d54so26602006qtd.4 for ; Mon, 22 Jan 2018 19:58:49 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id n24sm12447530qta.26.2018.01.22.19.58.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:58: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=iWOsXsMNNZ11QjuBCGp30g6CoK//jNrbVMhJCzjG/TM=; b=rVJJak8pEc1qJgMPCP7FFBxoz1DxuYpTsJyqjT4jyBV0S9q4NAKIeViJs66sKFXmpD fniMNWiW/NI3OLbNOh/yBw5icwFKDSfI6rqZqDODj42G0/2aArlBWHH19xXoTluhop0E BDj3+tgoKsPBx68IWm9SrNUsFITTFOsYoOEhy285RgW6vHbfjtfeN9IHlh8FTSCA/IA4 dgq9TRlzv8zq8rFMCplFE6WPA/yqb1yUhx7UYk0zLq0FFvQOThjBDkdxzRYJXm+9a/xi UGnTf03R0OH3b4bBZWE+BbiiaF8m0fO6+xXHlYxmUuPk23ELgCKoa/2yzyZJaLQXOFJO B4rw== 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=iWOsXsMNNZ11QjuBCGp30g6CoK//jNrbVMhJCzjG/TM=; b=jMenMwcXQfUYBTnyzrfLBueydcJd+JqTkojuUYjIrX+jogwsrvuB8n8QrGPlEAhbEV 7uiBp2RwNohbkwtUgfnkWzTE+KDfxsBorBTPYBfkwEDmjcXHKtisANw0IZ0z9bEPAngA KUXqDB/NWbxtzbKOyZNOsP7SJwfJAiBd878Heo8f6fzch1Z5+rgiGqi23fNnU+F9gMqj ZBUMbC1IC6uShznrrn2MxiYxxZECgwa44+ntJ1Px32Ir9p3kqy6bQLaXl81jj7DVOiRI yzZE+M2UQqRwYf7yOHAhVmMNACQTI9vFb805f4hXgdyEy5RsCLAuIKpsX2vrT+2ruHO/ Mljg== X-Gm-Message-State: AKwxytclZqr94j8596Hg4WVmFGxe3JFjPzg6E4g3xwGRe70QxIEOb5EE TMPXB3VwwjBcrN/tcsFJenE= X-Google-Smtp-Source: AH8x2271+eD9CTkVTbLUwvk0me4/mSdbpMyjbWcyBolt6aW7e0RYM/VCC+QLQqpoOS043df20szOaw== X-Received: by 10.200.57.75 with SMTP id t11mr1661961qtb.325.1516679929347; Mon, 22 Jan 2018 19:58:49 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle Date: Tue, 23 Jan 2018 00:58:33 -0300 Message-Id: <20180123035837.16578-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123035837.16578-1-f4bug@amsat.org> References: <20180123035837.16578-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 v2 2/6] hw/sd/milkymist-memcard: split realize() out of SysBusDevice init() 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" , Stefan Weil , =?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 Create the SDCard in the realize() function. Suggested-by: Michael Walle Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Michael Walle Reviewed-by: Alistair Francis --- hw/sd/milkymist-memcard.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 1292c0c099..a8e65892c7 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -257,27 +257,31 @@ static void milkymist_memcard_reset(DeviceState *d) device_reset(DEVICE(s->card)); } =20 -static int milkymist_memcard_init(SysBusDevice *dev) +static void milkymist_memcard_init(Object *obj) +{ + MilkymistMemcardState *s =3D MILKYMIST_MEMCARD(obj); + SysBusDevice *dev =3D SYS_BUS_DEVICE(obj); + + memory_region_init_io(&s->regs_region, OBJECT(s), &memcard_mmio_ops, s, + "milkymist-memcard", R_MAX * 4); + sysbus_init_mmio(dev, &s->regs_region); +} + +static void milkymist_memcard_realize(DeviceState *dev, Error **errp) { MilkymistMemcardState *s =3D MILKYMIST_MEMCARD(dev); - DriveInfo *dinfo; BlockBackend *blk; + DriveInfo *dinfo; =20 /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo =3D drive_get_next(IF_SD); blk =3D dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; s->card =3D sd_init(blk, false); if (s->card =3D=3D NULL) { - return -1; + error_setg(errp, "failed to init SD card"); + return; } - s->enabled =3D blk && blk_is_inserted(blk); - - memory_region_init_io(&s->regs_region, OBJECT(s), &memcard_mmio_ops, s, - "milkymist-memcard", R_MAX * 4); - sysbus_init_mmio(dev, &s->regs_region); - - return 0; } =20 static const VMStateDescription vmstate_milkymist_memcard =3D { @@ -300,9 +304,8 @@ static const VMStateDescription vmstate_milkymist_memca= rd =3D { static void milkymist_memcard_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); - SysBusDeviceClass *k =3D SYS_BUS_DEVICE_CLASS(klass); =20 - k->init =3D milkymist_memcard_init; + dc->realize =3D milkymist_memcard_realize; dc->reset =3D milkymist_memcard_reset; dc->vmsd =3D &vmstate_milkymist_memcard; /* Reason: init() method uses drive_get_next() */ @@ -313,6 +316,7 @@ static const TypeInfo milkymist_memcard_info =3D { .name =3D TYPE_MILKYMIST_MEMCARD, .parent =3D TYPE_SYS_BUS_DEVICE, .instance_size =3D sizeof(MilkymistMemcardState), + .instance_init =3D milkymist_memcard_init, .class_init =3D milkymist_memcard_class_init, }; =20 --=20 2.15.1 From nobody Mon May 6 05:12:01 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 1516680183423418.48023439380813; Mon, 22 Jan 2018 20:03:03 -0800 (PST) Received: from localhost ([::1]:32794 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpnU-0000Zu-4a for importer@patchew.org; Mon, 22 Jan 2018 23:02:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpjZ-00067P-QC for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpjY-0002Mv-OB for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:53 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:41462) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpjY-0002MY-Jo for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:52 -0500 Received: by mail-qt0-x243.google.com with SMTP id i1so26584761qtj.8 for ; Mon, 22 Jan 2018 19:58:52 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id n24sm12447530qta.26.2018.01.22.19.58.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:58: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=hLAFqzKGKy0PDBOWYVCyaGpwZdm+xO4rBJR0rwpMbUA=; b=lvpjHPlPwvsWVzhv6O/Ip26dXgG7LYKbk8LmxIXHm9GTfu5rm3gcFcwGuTZ+6jDKxe Y0sqYJLL178pn2apynG/HQbHxReF6QoNdd+c1ZlxgguJ6oI+gKK5tGw009IV3VbaHkTD n+rqCoBHpvSfqMrOsk8xT2av5wj4FyCNBgLdE1f4DrvvFrbN4/5G1NTYhNaPqMos3DgF Vt6uM83V+GT4uBX6E5WiOxXMf7FzMDU1BOeocXUwINpSUILpncXOUPXZFdlLKsrCEhEP KcwJ9DzIVF7I4BWSwpKJkG5IrC+k0W0gkkxMp+ctJXz/p8EtB/4HAEL4mEWXUszlVWJv Wk0w== 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=hLAFqzKGKy0PDBOWYVCyaGpwZdm+xO4rBJR0rwpMbUA=; b=nElairRN7fLTUe44C6GKxVSOPF0poOyYkEIRH3vy5ylCUn/L5F4m/Z4iwBlGTvjv9f E8eITLkCQaBR2lBHgzstZt71EmHymvErmtARdQDO1i/ii1z1RMzWV7OeIDkDBUbyscJf jz1uKWG6/wnAzlHEGZWdmEDmW1a2qTyxF1Yj7a31ROgjhIpqkyalWSJRxWXe/Y236mmn PfJO7fAPzqDRbHd66QZiiOt8JafKt72t3vQ2dcsuCy1g4bljBJIYe6ZA0dg0bLjKkCSa XopXfOmyp8Yykp8jyFRiJmQhmsjZdo1PBucAtZfTdHSra2hDsmARsqr5ZWkBzLB9i7HW phlQ== X-Gm-Message-State: AKwxytevEajD0cD+6FO90b5M1nU+LoYsjvUEtsksCsglLcwLNjtUm1Zo 26D5vtVsSeEmWPrn/2TcNRk= X-Google-Smtp-Source: AH8x224JIp7UNfFZ2PUBwVO4xLY6DvwWhCYUEeTYTOUixPUaAR+FwqaPc5BUIqmK2qXWotMj8JoRvw== X-Received: by 10.237.61.33 with SMTP id g30mr1784578qtf.82.1516679932066; Mon, 22 Jan 2018 19:58:52 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle Date: Tue, 23 Jan 2018 00:58:34 -0300 Message-Id: <20180123035837.16578-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123035837.16578-1-f4bug@amsat.org> References: <20180123035837.16578-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 v2 3/6] hw/sd/milkymist-memcard: expose a SDBus and connect the SDCard to it 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" , Stefan Weil , =?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 the sdbus_*() API. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Michael Walle Reviewed-by: Alistair Francis --- hw/sd/milkymist-memcard.c | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index a8e65892c7..5570c1e9a0 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -69,7 +69,7 @@ struct MilkymistMemcardState { SysBusDevice parent_obj; =20 MemoryRegion regs_region; - SDState *card; + SDBus sdbus; =20 int command_write_ptr; int response_read_ptr; @@ -105,7 +105,7 @@ static void memcard_sd_command(MilkymistMemcardState *s) req.crc =3D s->command[5]; =20 s->response[0] =3D req.cmd; - s->response_len =3D sd_do_command(s->card, &req, s->response+1); + s->response_len =3D sdbus_do_command(&s->sdbus, &req, s->response + 1); s->response_read_ptr =3D 0; =20 if (s->response_len =3D=3D 16) { @@ -150,10 +150,10 @@ static uint64_t memcard_read(void *opaque, hwaddr add= r, r =3D 0xffffffff; } else { r =3D 0; - r |=3D sd_read_data(s->card) << 24; - r |=3D sd_read_data(s->card) << 16; - r |=3D sd_read_data(s->card) << 8; - r |=3D sd_read_data(s->card); + r |=3D sdbus_read_data(&s->sdbus) << 24; + r |=3D sdbus_read_data(&s->sdbus) << 16; + r |=3D sdbus_read_data(&s->sdbus) << 8; + r |=3D sdbus_read_data(&s->sdbus); } break; case R_CLK2XDIV: @@ -207,10 +207,10 @@ static void memcard_write(void *opaque, hwaddr addr, = uint64_t value, if (!s->enabled) { break; } - sd_write_data(s->card, (value >> 24) & 0xff); - sd_write_data(s->card, (value >> 16) & 0xff); - sd_write_data(s->card, (value >> 8) & 0xff); - sd_write_data(s->card, value & 0xff); + sdbus_write_data(&s->sdbus, (value >> 24) & 0xff); + sdbus_write_data(&s->sdbus, (value >> 16) & 0xff); + sdbus_write_data(&s->sdbus, (value >> 8) & 0xff); + sdbus_write_data(&s->sdbus, value & 0xff); break; case R_ENABLE: s->regs[addr] =3D value; @@ -251,10 +251,6 @@ static void milkymist_memcard_reset(DeviceState *d) for (i =3D 0; i < R_MAX; i++) { s->regs[i] =3D 0; } - /* Since we're still using the legacy SD API the card is not plugged - * into any bus, and we must reset it manually. - */ - device_reset(DEVICE(s->card)); } =20 static void milkymist_memcard_init(Object *obj) @@ -270,15 +266,23 @@ static void milkymist_memcard_init(Object *obj) static void milkymist_memcard_realize(DeviceState *dev, Error **errp) { MilkymistMemcardState *s =3D MILKYMIST_MEMCARD(dev); + DeviceState *carddev; BlockBackend *blk; DriveInfo *dinfo; + Error *err =3D NULL; =20 + qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS, + dev, "sd-bus"); + + /* Create and plug in the sd card */ /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo =3D drive_get_next(IF_SD); blk =3D dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; - s->card =3D sd_init(blk, false); - if (s->card =3D=3D NULL) { - error_setg(errp, "failed to init SD card"); + carddev =3D qdev_create(&s->sdbus.qbus, TYPE_SD_CARD); + qdev_prop_set_drive(carddev, "drive", blk, &err); + object_property_set_bool(OBJECT(carddev), true, "realized", &err); + if (err) { + error_setg(errp, "failed to init SD card: %s", error_get_pretty(er= r)); return; } s->enabled =3D blk && blk_is_inserted(blk); --=20 2.15.1 From nobody Mon May 6 05:12:01 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 1516680183460782.6887925201852; Mon, 22 Jan 2018 20:03:03 -0800 (PST) Received: from localhost ([::1]:32796 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpnV-0000by-GV for importer@patchew.org; Mon, 22 Jan 2018 23:02:57 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44303) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpjd-0006BK-1h for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpjb-0002RM-Rt for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:57 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:45933) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpjb-0002R8-Mm; Mon, 22 Jan 2018 22:58:55 -0500 Received: by mail-qt0-x241.google.com with SMTP id x27so26561381qtm.12; Mon, 22 Jan 2018 19:58:55 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id n24sm12447530qta.26.2018.01.22.19.58.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:58: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=0mHP+GrCZYzpSwoDOFPLtU6jbdNgjQf4kSAC2JNN9TU=; b=GCTNcjnwd91JBe4lIuz4JuE43mwY5WpDWEFMsuJ13vLx65mX8U0KAtW/xkU3+JA0h0 9n+qZKQgpkmbSe4lJ2Laa8ociB98gGO+pzRwcV9QlEVPpF2SVGevosW8iomVkZcxHr5C QkYBhRNuDzbFQBdY88c++7E4W357NM9lr4657wHaTP1PiZyZ6V4Npa0tj90iM6GmiI5r JtVTw40sHE0jsi2/V/tmZgqsrHRRk4JGK6wbxQv/FaOV5Ov3uwrqPIKF2gMjDd3syp/H /haVYrc2anEPKlbOU7bVl4611fFJLKo8SKh8LJGSwcSqw0eTUSE7xzB1KyjawcPkRhnB gzzA== 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=0mHP+GrCZYzpSwoDOFPLtU6jbdNgjQf4kSAC2JNN9TU=; b=QyVSmeI1eERM7+pd05maycXRj0J3yHayMcL5HgGxSEc2KaCa8ItCtwm6rf1vVTjN7c 4VDyc8tTMwH0WIoJ+DraFVOuYsXt+4Y+Pq9Ho0qG+XfbGfObEcjn6PLpDoic81hTzNqN 9jq5tmsCCf2aBhqp3DTzHxJt6cfOicwOkJVuQCcWxyti4fmGmn70g3tzD5hHSgguJaQ0 hLTH1XGmesXhImiCLwphMYTdUJhLjax5Qswqm/ZA5Y0t4AGIO5NiwVKJhR1+xYwQ7wA7 UCerG8zxuifll3cnlIwcNifpxuhoZ3nhXhSxasIyZsDbvHbwggKeyToxz0dOOByviBqG /MDA== X-Gm-Message-State: AKwxytf3R1JQzE/4OtTIqNfbXatYK7uReve9JVlXxau84VTqfb7Z67Um oz+D4UXGIn8Odsuyi6sI1go= X-Google-Smtp-Source: AH8x224nvP+RZorObZgjg8rcRfxRG4mBTRonbApHEKN0Gx0IAKzmkAgNTDQ7K4h4YyPGF97sDGvRPQ== X-Received: by 10.200.41.143 with SMTP id 15mr1673676qts.247.1516679935139; Mon, 22 Jan 2018 19:58:55 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle Date: Tue, 23 Jan 2018 00:58:35 -0300 Message-Id: <20180123035837.16578-5-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123035837.16578-1-f4bug@amsat.org> References: <20180123035837.16578-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 v2 4/6] hw/sd/pl181: expose a SDBus and connect the SDCard to it 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" , Stefan Weil , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, "open list:ARM PrimeCell and..." 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 the sdbus_*() API. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/pl181.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 3ba1f7dd23..ce696c5d7d 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -33,6 +33,7 @@ typedef struct PL181State { SysBusDevice parent_obj; =20 MemoryRegion iomem; + SDBus sdbus; SDState *card; uint32_t clock; uint32_t power; @@ -179,7 +180,7 @@ static void pl181_send_command(PL181State *s) request.cmd =3D s->cmd & PL181_CMD_INDEX; request.arg =3D s->cmdarg; DPRINTF("Command %d %08x\n", request.cmd, request.arg); - rlen =3D sd_do_command(s->card, &request, response); + rlen =3D sdbus_do_command(&s->sdbus, &request, response); if (rlen < 0) goto error; if (s->cmd & PL181_CMD_RESPONSE) { @@ -223,12 +224,12 @@ static void pl181_fifo_run(PL181State *s) int is_read; =20 is_read =3D (s->datactrl & PL181_DATA_DIRECTION) !=3D 0; - if (s->datacnt !=3D 0 && (!is_read || sd_data_ready(s->card)) + if (s->datacnt !=3D 0 && (!is_read || sdbus_data_ready(&s->sdbus)) && !s->linux_hack) { if (is_read) { n =3D 0; while (s->datacnt && s->fifo_len < PL181_FIFO_LEN) { - value |=3D (uint32_t)sd_read_data(s->card) << (n * 8); + value |=3D (uint32_t)sdbus_read_data(&s->sdbus) << (n * 8); s->datacnt--; n++; if (n =3D=3D 4) { @@ -249,7 +250,7 @@ static void pl181_fifo_run(PL181State *s) } n--; s->datacnt--; - sd_write_data(s->card, value & 0xff); + sdbus_write_data(&s->sdbus, value & 0xff); value >>=3D 8; } } @@ -480,10 +481,6 @@ static void pl181_reset(DeviceState *d) =20 /* We can assume our GPIO outputs have been wired up now */ sd_set_cb(s->card, s->cardstatus[0], s->cardstatus[1]); - /* Since we're still using the legacy SD API the card is not plugged - * into any bus, and we must reset it manually. - */ - device_reset(DEVICE(s->card)); } =20 static void pl181_init(Object *obj) @@ -502,14 +499,26 @@ static void pl181_init(Object *obj) static void pl181_realize(DeviceState *dev, Error **errp) { PL181State *s =3D PL181(dev); + DeviceState *carddev; DriveInfo *dinfo; + Error *err =3D NULL; + + qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS, + dev, "sd-bus"); =20 + /* Create and plug in the sd card */ /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo =3D drive_get_next(IF_SD); - s->card =3D sd_init(dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, false); - if (s->card =3D=3D NULL) { - error_setg(errp, "sd_init failed"); + carddev =3D qdev_create(&s->sdbus.qbus, TYPE_SD_CARD); + if (dinfo) { + qdev_prop_set_drive(carddev, "drive", blk_by_legacy_dinfo(dinfo), = &err); + } + object_property_set_bool(OBJECT(carddev), true, "realized", &err); + if (err) { + error_setg(errp, "failed to init SD card: %s", error_get_pretty(er= r)); + return; } + s->card =3D SD_CARD(carddev); } =20 static void pl181_class_init(ObjectClass *klass, void *data) --=20 2.15.1 From nobody Mon May 6 05:12:01 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 1516680201396454.6916565655829; Mon, 22 Jan 2018 20:03:21 -0800 (PST) Received: from localhost ([::1]:32804 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpns-0000qQ-N5 for importer@patchew.org; Mon, 22 Jan 2018 23:03:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpjf-0006EB-ND for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:59:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpje-0002Uj-P7 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:59 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:35941) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpje-0002Ty-LK for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:58:58 -0500 Received: by mail-qt0-x242.google.com with SMTP id z11so26573487qtm.3 for ; Mon, 22 Jan 2018 19:58:58 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id n24sm12447530qta.26.2018.01.22.19.58.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:58: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=vC5Rjp8B9ERLFSPMdDNt9s4OJde4W0rGxmCdYVqNyEU=; b=Fh4BXiv6fKdTbdiQFgdWfy9+ddFAZxQIWEqObgY//vnUoOQnlPkqK6i+eTWo51APU8 g4NmjBi1Wrxnq0r0fMs0dI9mlp87VJG9RQpIfukBO4PqPcSogwZEKLs6M2NjUT7wRbd8 kjSzyLLMhEZt3AIvTPBI0mg9sT4JPimT5M+4r6YrVBEzFv+hQIqufH0AUYZ5VH1GOf76 BrmbE9aPL5m/BrI4Z1T8j4qufX1g7Cu8blXl1QzM7f+JLpoHh88+Mc7lx4az37X8FJpv sDXJadz9WrworwYWyqo5jKDLJusHD4pqcQYSzZRDrXHO70IpbUEiVzkTFz1vnCf5JpA0 wKkg== 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=vC5Rjp8B9ERLFSPMdDNt9s4OJde4W0rGxmCdYVqNyEU=; b=IPlrTHCyEFQqzCWwcNKp0cgnU4pY20mEilmGxLU/FKR3jrNYCiuWPaIInl6rp7KgE8 077erZALs8UdiBZoijnbz+ZLiYlJY3pbM8hSaCZu24e+1PnzSZ89pO/hezsJWniS5AuU 8W20BCyiuKbg9ss2N7sqVcto5EnMePD6FotnZjaNj0PRyQEdd+xa7DbbObdQAZuoNc41 8DXe7Jm8+r0md85lsMhof8dj0LGlLI5pZ0VKMvTubqSDpDMCpVuReuycm1tRSmyVKDLv YLiAkN9oq19gG83dIV/zfosKpvgQWRCiKyhkFUkMh5vuukXWYhuF/gjZRlYIJ1m5vXxO d70A== X-Gm-Message-State: AKwxytemJ+lwg3mdi5g9sKD6BBM1VeJHgUakuU9+QDNa4gIsatEc/+L7 Sph36riV5+XyHE2Tqqc7iLE= X-Google-Smtp-Source: AH8x226MEP499GsR98C/7haSc48EvWyXpO0iEr36DEiPzhOXy5KnkO0SdZs7eJK0RuT8QuW9++xAgA== X-Received: by 10.200.46.139 with SMTP id h11mr1614831qta.111.1516679938058; Mon, 22 Jan 2018 19:58:58 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle Date: Tue, 23 Jan 2018 00:58:36 -0300 Message-Id: <20180123035837.16578-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123035837.16578-1-f4bug@amsat.org> References: <20180123035837.16578-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 v2 5/6] hw/sd/ssi-sd: use the SDBus API, connect the SDCard to the 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" , Stefan Weil , =?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 On reset the bus will reset the card, we can now drop the device_reset() call. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/ssi-sd.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index f88f509e0a..ae04b6641b 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -47,7 +47,7 @@ typedef struct { int32_t arglen; int32_t response_pos; int32_t stopping; - SDState *sd; + SDBus sdbus; } ssi_sd_state; =20 #define TYPE_SSI_SD "ssi-sd" @@ -100,7 +100,7 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t= val) request.arg =3D (s->cmdarg[0] << 24) | (s->cmdarg[1] << 16) | (s->cmdarg[2] << 8) | s->cmdarg[3]; DPRINTF("CMD%d arg 0x%08x\n", s->cmd, request.arg); - s->arglen =3D sd_do_command(s->sd, &request, longresp); + s->arglen =3D sdbus_do_command(&s->sdbus, &request, longresp); if (s->arglen <=3D 0) { s->arglen =3D 1; s->response[0] =3D 4; @@ -177,7 +177,7 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t= val) DPRINTF("Response 0x%02x\n", s->response[s->response_pos]); return s->response[s->response_pos++]; } - if (sd_data_ready(s->sd)) { + if (sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read\n"); s->mode =3D SSI_SD_DATA_START; } else { @@ -190,8 +190,8 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t= val) s->mode =3D SSI_SD_DATA_READ; return 0xfe; case SSI_SD_DATA_READ: - val =3D sd_read_data(s->sd); - if (!sd_data_ready(s->sd)) { + val =3D sdbus_read_data(&s->sdbus); + if (!sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read end\n"); s->mode =3D SSI_SD_CMD; } @@ -242,13 +242,24 @@ static const VMStateDescription vmstate_ssi_sd =3D { static void ssi_sd_realize(SSISlave *d, Error **errp) { ssi_sd_state *s =3D FROM_SSI_SLAVE(ssi_sd_state, d); + DeviceState *carddev; DriveInfo *dinfo; + Error *err =3D NULL; =20 + qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS, + DEVICE(d), "sd-bus"); + + /* Create and plug in the sd card */ /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo =3D drive_get_next(IF_SD); - s->sd =3D sd_init(dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, true); - if (s->sd =3D=3D NULL) { - error_setg(errp, "Device initialization failed."); + carddev =3D qdev_create(&s->sdbus.qbus, TYPE_SD_CARD); + if (dinfo) { + qdev_prop_set_drive(carddev, "drive", blk_by_legacy_dinfo(dinfo), = &err); + } + object_property_set_bool(OBJECT(carddev), true, "spi", &err); + object_property_set_bool(OBJECT(carddev), true, "realized", &err); + if (err) { + error_setg(errp, "failed to init SD card: %s", error_get_pretty(er= r)); return; } } @@ -264,11 +275,6 @@ static void ssi_sd_reset(DeviceState *dev) s->arglen =3D 0; s->response_pos =3D 0; s->stopping =3D 0; - - /* Since we're still using the legacy SD API the card is not plugged - * into any bus, and we must reset it manually. - */ - device_reset(DEVICE(s->sd)); } =20 static void ssi_sd_class_init(ObjectClass *klass, void *data) --=20 2.15.1 From nobody Mon May 6 05:12:01 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 1516680308140105.70569362571405; Mon, 22 Jan 2018 20:05:08 -0800 (PST) Received: from localhost ([::1]:32903 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edppb-0002Mz-GS for importer@patchew.org; Mon, 22 Jan 2018 23:05:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44338) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edpjj-0006Hf-21 for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:59:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edpjh-0002YH-Oi for qemu-devel@nongnu.org; Mon, 22 Jan 2018 22:59:03 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:40195) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1edpjh-0002Xg-Ja; Mon, 22 Jan 2018 22:59:01 -0500 Received: by mail-qt0-x241.google.com with SMTP id s39so26601111qth.7; Mon, 22 Jan 2018 19:59:01 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id n24sm12447530qta.26.2018.01.22.19.58.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 19:59: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=pN3w9spU95M89MECNlkTeliGwE5lvrRjERQUk1BdlXk=; b=eL+YvTHMLOKsf8EVzebxDEAZSPenBuE2fpWVDM89pALMVvECGmKfwtqpByWvREh3Fb y9AtPZ6wgdaOi+N1nTlb9Isv8CcRjzp2+p/1ZmT4G564fZjU+wec8sEPj6LXjJf4TnWO jPRYx/+HXe6AgdLDcZHHqFREYC0XKtxBoRvhYS+c7EjPLNbLKodsvC3mCZ0bMxI0YCQP YOfwnZ8u9EoG94DXMeYuWngz+xdgsiothtkt9LbpdrEXLGhlhJtcvVMIrUkHdmk6Swgr NZV/So2OXFuv5wxrZ4z1P8vNOrHEl6fjR7cj0pEeR3e4I2IgssjMkZ1osswsgfxXjNSx /BlA== 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=pN3w9spU95M89MECNlkTeliGwE5lvrRjERQUk1BdlXk=; b=T7xov0hKNUdX1Ux6uG8f/KFbbBvvELZ1MfCVz5gqB0dzUU9X0S5DVPP+nQxgekVaHL icuA87te/q4p7avCgnM41zPyFgfKOYQiVJE2xB2Qd2sT7yBaTuoz1yLadEgg1pDRLTZU i8g6DeefVHGpxl+ciT/WK+j1/Xw8NbEexJC4cfpw0tKD9zG7OOK2YUlMuFQGISOCC7DJ BZAimoIEmKt2GLvm7G6zAXZ591E84PJyILJIVsekR6C1gTTkpfWHIpDlGKJvQ68/RWKX eUAUAgAIHP5LHZ4G0d4TxK6Wh0hjdbLWoe8iIETKUZPDISJCADsAfHLH+DkHm+qAlq3m Q+2A== X-Gm-Message-State: AKwxytflxGkxlYS194LASs86XKEWuXbIlOdx9D6QHDVCS5XLRkldfLoW xhw615p9q3bk1Qh4wePNX7I= X-Google-Smtp-Source: AH8x224jK9xsRuXKlECx0J/jO83hD169XUy94UZsptihq5WBKN3/uJz83Z+YS+4ikDguSjR5BSdotQ== X-Received: by 10.200.26.163 with SMTP id x32mr1697009qtj.257.1516679941022; Mon, 22 Jan 2018 19:59:01 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle Date: Tue, 23 Jan 2018 00:58:37 -0300 Message-Id: <20180123035837.16578-7-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180123035837.16578-1-f4bug@amsat.org> References: <20180123035837.16578-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 v2 6/6] hw/sd: move sdcard legacy API to "hw/sd/sdcard_legacy.h" 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" , Stefan Weil , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, "open list:ARM PrimeCell and..." 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 roughly 2 users left. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- include/hw/sd/sd.h | 17 --------------- include/hw/sd/sdcard_legacy.h | 51 +++++++++++++++++++++++++++++++++++++++= ++++ hw/sd/omap_mmc.c | 2 +- hw/sd/pl181.c | 1 + hw/sd/sd.c | 1 + 5 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 include/hw/sd/sdcard_legacy.h diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 9bdb3c9285..74bfab9386 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -130,23 +130,6 @@ typedef struct { void (*set_readonly)(DeviceState *dev, bool readonly); } SDBusClass; =20 -/* Legacy functions to be used only by non-qdevified callers */ -SDState *sd_init(BlockBackend *bs, bool is_spi); -int sd_do_command(SDState *sd, SDRequest *req, - uint8_t *response); -void sd_write_data(SDState *sd, uint8_t value); -uint8_t sd_read_data(SDState *sd); -void sd_set_cb(SDState *sd, qemu_irq readonly, qemu_irq insert); -bool sd_data_ready(SDState *sd); -/* sd_enable should not be used -- it is only used on the nseries boards, - * where it is part of a broken implementation of the MMC card slot switch - * (there should be two card slots which are multiplexed to a single MMC - * controller, but instead we model it with one card and controller and - * disable the card when the second slot is selected, so it looks like the - * second slot is always empty). - */ -void sd_enable(SDState *sd, bool enable); - /* Functions to be used by qdevified callers (working via * an SDBus rather than directly with SDState) */ diff --git a/include/hw/sd/sdcard_legacy.h b/include/hw/sd/sdcard_legacy.h new file mode 100644 index 0000000000..882e13a8f1 --- /dev/null +++ b/include/hw/sd/sdcard_legacy.h @@ -0,0 +1,51 @@ +/* + * SD Memory Card emulation (deprecated legacy API) + * + * Copyright (c) 2006 Andrzej Zaborowski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef HW_SDCARD_LEGACY_H +#define HW_SDCARD_LEGACY_H + +#include "hw/sd/sd.h" + +/* Legacy functions to be used only by non-qdevified callers */ +SDState *sd_init(BlockBackend *blk, bool is_spi); +int sd_do_command(SDState *card, SDRequest *request, uint8_t *response); +void sd_write_data(SDState *card, uint8_t value); +uint8_t sd_read_data(SDState *card); +void sd_set_cb(SDState *card, qemu_irq readonly, qemu_irq insert); +bool sd_data_ready(SDState *card); + +/* sd_enable should not be used -- it is only used on the nseries boards, + * where it is part of a broken implementation of the MMC card slot switch + * (there should be two card slots which are multiplexed to a single MMC + * controller, but instead we model it with one card and controller and + * disable the card when the second slot is selected, so it looks like the + * second slot is always empty). + */ +void sd_enable(SDState *card, bool enable); + +#endif /* HW_SDCARD_LEGACY_H */ diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c index 5b47cadf11..be14ac4f40 100644 --- a/hw/sd/omap_mmc.c +++ b/hw/sd/omap_mmc.c @@ -19,7 +19,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/arm/omap.h" -#include "hw/sd/sd.h" +#include "hw/sd/sdcard_legacy.h" =20 struct omap_mmc_s { qemu_irq irq; diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index ce696c5d7d..7591d016cd 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -12,6 +12,7 @@ #include "sysemu/blockdev.h" #include "hw/sysbus.h" #include "hw/sd/sd.h" +#include "hw/sd/sdcard_legacy.h" #include "qemu/log.h" #include "qapi/error.h" =20 diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 9880a5d090..6942aa4df3 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -35,6 +35,7 @@ #include "hw/registerfields.h" #include "sysemu/block-backend.h" #include "hw/sd/sd.h" +#include "hw/sd/sdcard_legacy.h" #include "qapi/error.h" #include "qemu/bitmap.h" #include "qemu/cutils.h" --=20 2.15.1