From patchwork Wed Jan 3 16:23:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="nEZHjFYK"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBbqz6076z9t2x for ; Thu, 4 Jan 2018 03:25:03 +1100 (AEDT) Received: from localhost ([::1]:57060 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlqf-00043k-Qi for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 11:25:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44045) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlps-00042A-Ph for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlpr-0004wz-PW for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:12 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:39750) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlpr-0004wf-L7; Wed, 03 Jan 2018 11:24:11 -0500 Received: by mail-qk0-x241.google.com with SMTP id c5so2151778qkg.6; Wed, 03 Jan 2018 08:24: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 :mime-version:content-transfer-encoding; bh=syf+Muj7Wjji0hClLilXJeGv6u3kvMHoCi/4Evw2Zug=; b=nEZHjFYKUo+os+2hkgATFyuyrh/75ICM5xWkGwmdfIR7WWqcBw5CgbDcEe3KammK1T bfeI+XQDQm3LWo4u0uZvK9lvPcPa4TJtxEF0//AAlRbcG07A2UmEydUR3hd6ed7I+ykY oUA1QDOZDBO006i3RaM0irx5DO5bn5jCmYSAQfBMBh2ZFu37gmLRZPJIqEV4mvPGYCY6 33v2ApLXZ2iWwcYnciLHL7N0DufboTdA2WNEbzQf2cXIYwNszFrF/N9FCQ+tceHpwCSy H2VkVDmQF3CCuInFK/ISPvVk4Ra5RKAuHFFIklJHKieyGUCPwLwHe6C7b9Cz06QVssZQ 5csA== 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=syf+Muj7Wjji0hClLilXJeGv6u3kvMHoCi/4Evw2Zug=; b=lA7S6qXwyiTx4bGfosa2T0L+uv++myFTNDmHa+6VH7rNseIRVJrcOQpP2ZwbbPjBz/ L1OfBI4wYdxKQKG0w5+RvdfU3Waa+XS2JjS1E/J35dtvXDryD0yaQq7HVxWF0OP7NuEu wq/tQZ8YW2NonGDBwbEFXSJeizWLeAR0cDfTGDdT5lcv92d1oAWqQpLKVu6NY4ZSQFrn lNbclrS2MQPL6eDboewY/T0D9oPK6fmQ18ay4JNJXWKydfqSxvaRVsgxxGa0ERAvC1Aw Os4I9Z06tDlBE5RjFzzLLhqb9XmvgWF3UqVK2L181z+E+vumojnlhuLLQIANBr+rfdwS BdJA== X-Gm-Message-State: AKGB3mIX0Z803rreh1GLcHCNG73gdZ52gbJMdZ6/jq+ewSJBAi4nwytf eUyJ18vqmJyLlcm1GneHppM= X-Google-Smtp-Source: ACJfBot4lEN0ug87W29X03DC62JKZ65dWk278F8pQp/rdTwJF13Hr179VTm6T1NMoy3WfFV48O+DEA== X-Received: by 10.55.210.129 with SMTP id f123mr2375719qkj.64.1514996651133; Wed, 03 Jan 2018 08:24:11 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:10 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Michael Walle Date: Wed, 3 Jan 2018 13:23:55 -0300 Message-Id: <20180103162400.10396-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH 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" , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Philippe_M?= =?utf-8?q?athieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/sd/milkymist-memcard.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 4008c81002..5de3e00e2f 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -26,7 +26,7 @@ #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 +138,8 @@ static uint64_t memcard_read(void *opaque, hwaddr addr, } else { r = 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. Clipping."); s->response_read_ptr = 0; } } @@ -163,8 +163,9 @@ static uint64_t memcard_read(void *opaque, hwaddr addr, break; default: - error_report("milkymist_memcard: read access to unknown register 0x" - TARGET_FMT_plx, addr << 2); + qemu_log_mask(LOG_UNIMP, "milkymist_memcard: " + "read access to unknown register 0x%" HWADDR_PRIx "\n", + addr << 2); break; } @@ -220,8 +221,9 @@ static void memcard_write(void *opaque, hwaddr addr, uint64_t value, break; 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; } } From patchwork Wed Jan 3 16:23:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855082 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Gc77Cete"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBbr271DGz9s81 for ; Thu, 4 Jan 2018 03:25:06 +1100 (AEDT) Received: from localhost ([::1]:57064 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlqi-00046L-UV for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 11:25:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44102) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlpv-00043S-Ga for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlpu-0004yn-Km for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:15 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:39377) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlpu-0004yS-Gr; Wed, 03 Jan 2018 11:24:14 -0500 Received: by mail-qt0-x242.google.com with SMTP id k19so2721390qtj.6; Wed, 03 Jan 2018 08:24:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZAYXSXLOCdt3LidcgZriVmI+pUUqymgFJ7ci/yxcKeY=; b=Gc77CeteX2vHOr79D5er1GaQyLwHDiM1PQqzF/Bxtsa+m6/UtPQ+goX4VMKID0UBZY VlnJeF6/e8Xp5Vyp8naS9UeCREkGS5i2qe3huy4Luszc6xs2LQO/g58dj3u5WgpqByYJ 8PWJ2VQFLH8vrAQAGQU58h/Nk0mGtazr4BIyf73VfNzkUv7HO9Cn23ss1kKX1B89KVBk robvfWg8qMtrXFwmrKMkviBVh134gm6pSQhK5zhlqbU5gwRFwoYhoE1gf/tedgD0HIAE tYqJSB99xV34YTPy2bSCn3Lz1UbEwxCO2IafzeGxqSHfOLmnhG5z+Tmyd+KVsVRsf7De D5kg== 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=ZAYXSXLOCdt3LidcgZriVmI+pUUqymgFJ7ci/yxcKeY=; b=PIcZq7ycAWvy1IGBstDSofrVPs2iiCmupAszR6qooRSHUepmI96s6bF8kYr+eDXWGb 9LUE81d52cb4onT04VIlVfTNye+FyEs8q0lh2kXP5cT+Njdlfo5GWCIeQXdUQ9JN/7dZ /LScL8ZapWASByVcQGuHAFP8IFUjUcVY09MqQ5bKvNzk2fVhfN1gtw/EjjkErTaqyEiR L7oDIMeHRlKFJ2tTuoRJoRry4pOBjVhzi4SbdHYRneRRJWUCELS+zeJv3teLhj8oYq7t jJUTogDK3HkANBVCBCfTlPAAlFt9vY/xYh+c1wIlP4HtEStsO0ezsA74B+gUs8Oza92E 4+Eg== X-Gm-Message-State: AKGB3mIWWoTn89/cJnyf4mSfoJFyKrbPlFXRmSRev24lwY9eDurotQDx bs7W/H3+f2LvSURCZcSEAa0= X-Google-Smtp-Source: ACJfBosyDtuHieasb+5AhfWx80DSBoWl6zj7BdnSvhTXzHlOneD7a4WcSCMicMD3fGrSBednqVevyg== X-Received: by 10.237.59.202 with SMTP id s10mr2373806qte.294.1514996654016; Wed, 03 Jan 2018 08:24:14 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:13 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , Peter Maydell , Michael Walle , Xiaoqiang Zhao Date: Wed, 3 Jan 2018 13:23:56 -0300 Message-Id: <20180103162400.10396-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH 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" , qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Create the SDCard in the realize() function. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/sd/milkymist-memcard.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 5de3e00e2f..5df3a0f815 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -255,24 +255,29 @@ static void milkymist_memcard_reset(DeviceState *d) static int milkymist_memcard_init(SysBusDevice *dev) { MilkymistMemcardState *s = MILKYMIST_MEMCARD(dev); - DriveInfo *dinfo; + + 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; +} + +static void milkymist_memcard_realize(DeviceState *dev, Error **errp) +{ + MilkymistMemcardState *s = MILKYMIST_MEMCARD(dev); BlockBackend *blk; + DriveInfo *dinfo; /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo = drive_get_next(IF_SD); blk = dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; s->card = sd_init(blk, false); if (s->card == NULL) { - return -1; + error_setg(errp, "failed to init SD card"); + return; } - s->enabled = 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; } static const VMStateDescription vmstate_milkymist_memcard = { @@ -298,6 +303,7 @@ static void milkymist_memcard_class_init(ObjectClass *klass, void *data) SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); k->init = milkymist_memcard_init; + dc->realize = milkymist_memcard_realize; dc->reset = milkymist_memcard_reset; dc->vmsd = &vmstate_milkymist_memcard; /* Reason: init() method uses drive_get_next() */ From patchwork Wed Jan 3 16:23:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855084 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="UACM9sHq"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBbv93wfGz9s72 for ; Thu, 4 Jan 2018 03:27:49 +1100 (AEDT) Received: from localhost ([::1]:57103 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWltL-0006Xg-LI for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 11:27:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlpy-00045v-5C for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlpx-00050Q-4z for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:18 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:36753) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlpx-000506-0d; Wed, 03 Jan 2018 11:24:17 -0500 Received: by mail-qk0-x241.google.com with SMTP id g123so2161140qka.3; Wed, 03 Jan 2018 08:24: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=RTc1e3AR/OMsnSccX4Hi9/3/0aB/T5uBUr1Z5g+RhdM=; b=UACM9sHqdtD8CI8vjWBcxDkiR4gUsoQF1igbXJy3vV1waCo6E9GP/lffIWurxRJVJL UNFo8f0NDdCbQHvKpdQuiWVC8lg/NGAt5XNvspgGi6DMYPoAeWR1bNFAGCR5Ek2GynLP MSJkOF8uq62Nof1gcrYdoX9/Seq+glsFxqa9iYUlOwN1ZfHKdt0/3Xzbfofz7/Bxj8Ef CtSe5pH6ykd3EZtlpCfy2qUdlGcHsCgBsYnd7l948KEqihZwRelnBR2Y1l8VZcHtafLe lp84SevcaT/WOvPkPkSZVj/M0hqdhv7yp90aE1DdM9bLCtYE6+Jj4IVATjojfbAq5OMF zd6Q== 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=RTc1e3AR/OMsnSccX4Hi9/3/0aB/T5uBUr1Z5g+RhdM=; b=tdRSBY7UN97JrpUwM0C/66TrbmHVF8+xrry+nd3/s7aJn55NGVIjzi4c2tLE7WNd4i Z582p1F6HVOLZKLGFq2fomKdcCAaw3VznsznRlXd7frc/tf/Idwwmb29FXATtLmRy9Vq +R5yZBqzE2od0BZfg9VQ2e/tXrJ7CJ1y2u856SgVs+BMOcux07KQ+o5O3VDIelpsgYyi csewukQf3gadoN5Zi1EqSbtkncE8lbUJrJcChH7medSMMpHjj/GRCyk/fGASIHiF0znF epeRGZtpNzPwZe1EkmBUmbPz8OlldwnN9nCQe4UHOR5fN+xrRJ6XXErvk+ypbjmjH8o0 4cJw== X-Gm-Message-State: AKGB3mK1VgC4VBcWZwYuRkVqH0cDLGwDdlWKDSI/9tAPmIZ5Zfw7iwFe n9Bc6YH7v2IhBHV4zIQsIKQ= X-Google-Smtp-Source: ACJfBoutYM5bpTl5wXxAajVy0w6VLT23n9D20Gta9M0HPGLu94RHR476nBV9ugekez2eenhx2Th84Q== X-Received: by 10.55.189.130 with SMTP id n124mr2313166qkf.297.1514996656574; Wed, 03 Jan 2018 08:24:16 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:16 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Michael Walle Date: Wed, 3 Jan 2018 13:23:57 -0300 Message-Id: <20180103162400.10396-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH 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: qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" using the sdbus_*() API. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/sd/milkymist-memcard.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 5df3a0f815..9f4c7dad63 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -68,7 +68,7 @@ struct MilkymistMemcardState { SysBusDevice parent_obj; MemoryRegion regs_region; - SDState *card; + SDBus sdbus; int command_write_ptr; int response_read_ptr; @@ -104,7 +104,7 @@ static void memcard_sd_command(MilkymistMemcardState *s) req.crc = s->command[5]; s->response[0] = req.cmd; - s->response_len = sd_do_command(s->card, &req, s->response+1); + s->response_len = sdbus_do_command(&s->sdbus, &req, s->response + 1); s->response_read_ptr = 0; if (s->response_len == 16) { @@ -149,10 +149,10 @@ static uint64_t memcard_read(void *opaque, hwaddr addr, r = 0xffffffff; } else { r = 0; - r |= sd_read_data(s->card) << 24; - r |= sd_read_data(s->card) << 16; - r |= sd_read_data(s->card) << 8; - r |= sd_read_data(s->card); + r |= sdbus_read_data(&s->sdbus) << 24; + r |= sdbus_read_data(&s->sdbus) << 16; + r |= sdbus_read_data(&s->sdbus) << 8; + r |= sdbus_read_data(&s->sdbus); } break; case R_CLK2XDIV: @@ -206,10 +206,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] = value; @@ -266,15 +266,23 @@ static int milkymist_memcard_init(SysBusDevice *dev) static void milkymist_memcard_realize(DeviceState *dev, Error **errp) { MilkymistMemcardState *s = MILKYMIST_MEMCARD(dev); + DeviceState *carddev; BlockBackend *blk; DriveInfo *dinfo; + Error *err = NULL; + 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 = drive_get_next(IF_SD); blk = dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; - s->card = sd_init(blk, false); - if (s->card == NULL) { - error_setg(errp, "failed to init SD card"); + carddev = 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(err)); return; } s->enabled = blk && blk_is_inserted(blk); From patchwork Wed Jan 3 16:23:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855085 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="H/Q2OcvO"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBbxB6ptYz9sNV for ; Thu, 4 Jan 2018 03:29:34 +1100 (AEDT) Received: from localhost ([::1]:57174 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlv3-0008Cp-2E for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 11:29:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44187) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlq1-00048l-D1 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlpz-00051a-K7 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:21 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:34421) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlpz-00051O-FR; Wed, 03 Jan 2018 11:24:19 -0500 Received: by mail-qt0-x243.google.com with SMTP id 33so2736894qtv.1; Wed, 03 Jan 2018 08:24: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=NhfOyUelkpNc4QsRDgwmgWrhckHiJ/ZUYuYm5Hq80/o=; b=H/Q2OcvO7rJKMhtAZCku86PKLQdlq7KAIQTDgUh6/fO1NdT6RLfgiJKuqmj26TEkE6 hnzJwr7EUx545i+3bBOOETgdyeyupisCGSLZPElxozUskNcchhStKpYpth7/gzBGSMEn adizXIdNaxDjN/IcCOEmFQPE81MAUsNO90ZpXkNrJNx6E1M3kjrraVS7YM8uEM7nhYaD H7zlsXzF6+DkkaRwxOf5pqtV+jymRA8Dg4TROisg55BrifNyd+f6einIS4K74+4O11Q5 JVfARGL+hBGHejVrnapABjq8U7v8LM0Hz+V47oSdrkI+Yflkeml5uyCK8X3j8DbI73R9 YlpQ== 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=NhfOyUelkpNc4QsRDgwmgWrhckHiJ/ZUYuYm5Hq80/o=; b=GGikwBfu1/Y/OBFwkvtkzh5GL9STICe1CiX+AEunIsmEFuCC5EBiHfAFagvwWZg8pq 7k+ToFwED9O6YlTrk7a8L63U5ehX7PSOenFULANwFWkVgJsHuHsPNczOSEvl7xGMEty+ 9EOP9/he1lHiaKGx1poHQwrDc0pfGi9bmOAzbZiSgcrPy+PGpIGYoqDacJ/UTJ4dv/TY xL5Pm5OemCHBYTcReu/s/rs91dLr43qVdcJ65k77hRv7zecQ1rbiKhurGS7Ns5G3iOdV n2t5oWsxR7lVDAL0Iw/jMVLw3g8P+i4KWd/BQix/ri2x+YbK70M9jPa7xYz/KyLJqwWJ BHxA== X-Gm-Message-State: AKGB3mIXQzf5nxwo27sZ4P1bMftNhtGC1NatDG2AIxFiixPzK0L3bkTP ja6dq/f7RmQPozIydVONOkw= X-Google-Smtp-Source: ACJfBouuwT5Fn5D/ewTjAn7MIdMXEUMr9v0cSn0ldHCUTJAdNabdhUN9vl5dN+5MA0mJCUAXBK/L/g== X-Received: by 10.237.55.9 with SMTP id i9mr2410920qtb.164.1514996658972; Wed, 03 Jan 2018 08:24:18 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:18 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell Date: Wed, 3 Jan 2018 13:23:58 -0300 Message-Id: <20180103162400.10396-5-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH 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: qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" using the sdbus_*() API. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/sd/pl181.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 55c8098ecd..ce696c5d7d 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -33,6 +33,7 @@ typedef struct PL181State { SysBusDevice parent_obj; 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 = s->cmd & PL181_CMD_INDEX; request.arg = s->cmdarg; DPRINTF("Command %d %08x\n", request.cmd, request.arg); - rlen = sd_do_command(s->card, &request, response); + rlen = 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; is_read = (s->datactrl & PL181_DATA_DIRECTION) != 0; - if (s->datacnt != 0 && (!is_read || sd_data_ready(s->card)) + if (s->datacnt != 0 && (!is_read || sdbus_data_ready(&s->sdbus)) && !s->linux_hack) { if (is_read) { n = 0; while (s->datacnt && s->fifo_len < PL181_FIFO_LEN) { - value |= (uint32_t)sd_read_data(s->card) << (n * 8); + value |= (uint32_t)sdbus_read_data(&s->sdbus) << (n * 8); s->datacnt--; n++; if (n == 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 >>= 8; } } @@ -498,14 +499,26 @@ static void pl181_init(Object *obj) static void pl181_realize(DeviceState *dev, Error **errp) { PL181State *s = PL181(dev); + DeviceState *carddev; DriveInfo *dinfo; + Error *err = NULL; + 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 = drive_get_next(IF_SD); - s->card = sd_init(dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, false); - if (s->card == NULL) { - error_setg(errp, "sd_init failed"); + carddev = 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(err)); + return; } + s->card = SD_CARD(carddev); } static void pl181_class_init(ObjectClass *klass, void *data) From patchwork Wed Jan 3 16:23:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855087 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ebs69UdP"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBbyn56r5z9sRm for ; Thu, 4 Jan 2018 03:30:57 +1100 (AEDT) Received: from localhost ([::1]:57220 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlwN-00019S-PA for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 11:30:55 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44243) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlq3-0004As-Br for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlq2-00053H-Ca for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:23 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:43910) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlq2-000532-8S; Wed, 03 Jan 2018 11:24:22 -0500 Received: by mail-qk0-x243.google.com with SMTP id j137so2156417qke.10; Wed, 03 Jan 2018 08:24:22 -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=p38CldTqD4u466YHuSEP9i0mwNRyNT7h63oUnq4yahA=; b=Ebs69UdPcyRwu1lEOJlpqE7vgn18lUeS9nOUNr/18jW5V/+twMSPF8f7iJCpWvq5ap 4teoxnxBZ91etDS9qyz1ogI8wDa1EQ8WReujaHtkq6RMGPUdsFB34GMz4zYSIJc0lywE yXz8Ij7VOln0E1nHu+TlgoEZl4Uqwch8ZjsmeZ56bCmHWgb7BKGPDxImxcovlkxSq+XZ tZ9IAwAKaOsqP+6MjQ51rcaD/5fjF5CIE5T/KE6sSy/OtvOkGXP7+ZFt+8xpBRLNcb/K Gwi+a0i6wHOGCx1YPfIvMU423UqI4PCm1jMTIDmpT7ZMGzawv9KJPRzkzsRJPT4Ru0sp Ee6Q== 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=p38CldTqD4u466YHuSEP9i0mwNRyNT7h63oUnq4yahA=; b=iCmpKsvGtQw8m68lPTudw8Otevx+wda8cSpZFWzhw+aUgANBmbPugejKYI4AkNMvOe 7Oy+z5HarkvrITKs1iM9bc7zg5tGbd0fVLk6PzVNudXBq2XncoF4i/U3LPctV4TJEUvx Ug7Yf2A7GJdjTfA1Tgrjflh0xdkE9HmsZ7f7TuNqag0Goi3wwYrWVVSb0wO/BNmbV+fz A/SiKXGC83/Ba28odADu0b4+cSe8hZ8sb2/sdo3MWB9w+VJljGWaKPLPo6Otwbh4mM+y 5aii8c09PsSgfgyEXe1+fLdQ7OaUh8K1NydweHLV92Wx08hcSkoSbhm8plgLPLC/FdC8 PVdA== X-Gm-Message-State: AKGB3mIQhI1rFj0qGpQUR4KKdVe+zncDdWZrFf7QFKp5iEzOnXsTwWDo 8TsEdNvEeU55VI3hKS3Mtxw= X-Google-Smtp-Source: ACJfBotumfAKC3CvZHk6FmXcO0NBC0+238w8TvBpcfjaxv5j+wuMvBI1S9XGTf8fMOK3u1W7/Y4Qlw== X-Received: by 10.55.168.215 with SMTP id r206mr2504700qke.268.1514996661821; Wed, 03 Jan 2018 08:24:21 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:21 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Peter Crosthwaite , =?utf-8?q?C=C3=A9dric_Le_Goater?= Date: Wed, 3 Jan 2018 13:23:59 -0300 Message-Id: <20180103162400.10396-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH 5/6] hw/sd/ssi-sd: 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: qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" using the sdbus_*() API. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/sd/ssi-sd.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 24001dc3e6..c8b27add84 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; /* State word bits. */ @@ -97,7 +97,7 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t val) request.arg = (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 = sd_do_command(s->sd, &request, longresp); + s->arglen = sdbus_do_command(&s->sdbus, &request, longresp); if (s->arglen <= 0) { s->arglen = 1; s->response[0] = 4; @@ -174,7 +174,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 = SSI_SD_DATA_START; } else { @@ -187,8 +187,8 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t val) s->mode = SSI_SD_DATA_READ; return 0xfe; case SSI_SD_DATA_READ: - val = sd_read_data(s->sd); - if (!sd_data_ready(s->sd)) { + val = sdbus_read_data(&s->sdbus); + if (!sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read end\n"); s->mode = SSI_SD_CMD; } @@ -239,14 +239,25 @@ static const VMStateDescription vmstate_ssi_sd = { static void ssi_sd_realize(SSISlave *d, Error **errp) { ssi_sd_state *s = FROM_SSI_SLAVE(ssi_sd_state, d); + DeviceState *carddev; DriveInfo *dinfo; + Error *err = NULL; s->mode = SSI_SD_CMD; + 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 = drive_get_next(IF_SD); - s->sd = sd_init(dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, true); - if (s->sd == NULL) { - error_setg(errp, "Device initialization failed."); + carddev = 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(err)); return; } } From patchwork Wed Jan 3 16:24:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 855083 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="IgHcdzsa"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zBbrN214jz9sNV for ; Thu, 4 Jan 2018 03:25:24 +1100 (AEDT) Received: from localhost ([::1]:57066 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlr0-0004Hk-8l for incoming@patchwork.ozlabs.org; Wed, 03 Jan 2018 11:25:22 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlq6-0004Ee-Q4 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlq5-00055m-BO for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:26 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:42557) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlq5-00055Z-70; Wed, 03 Jan 2018 11:24:25 -0500 Received: by mail-qk0-x244.google.com with SMTP id d202so2156952qkc.9; Wed, 03 Jan 2018 08:24: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=C9xu7pU0JP7H27FBhIoTSr/YD1UZU8NVLPiMG4CFmyk=; b=IgHcdzsa70JhPPEuWiCJY2wylpGrZLkapYsGc/AhkjQ6YdCSkLCRE70jhQMSYrkWWs B1ylniKI2akMNwkV5Esr8MbBeSDurDsN/jYKFdSxHODW7OxdZ9en0EOHRYuBdg1+zS9L IRzmGvgAUsDYE0IW5y2Vgw7y7a8xen1hYzsYAzxxr5WTZDfGVuS0GZsw2COEqsV2lQrV 8QM7xeRMuqB9g6LDu/yQPtgtUFzEiNLClwXtz7mSZZbHEVS3WHqKFZariHi83A87if1E T6Ducn4KfWnnRGdNt+5f3wO4x5qfsQpiWKCYcTESKgQgx3wYKyeyfiyHVCkNDeR07DVA 3GYQ== 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=C9xu7pU0JP7H27FBhIoTSr/YD1UZU8NVLPiMG4CFmyk=; b=pLpzaTZzJN+mXJVozx5LZ3tTRqN9gcj7wtwbOGimXQNMbAlxGJtQFiT787Ze+/Dfue SvO6gK0IxnteoTLb3t41AbQHaJ1I3V/QyKRPcpBm5/iBQZmMTfS+ghd+HJxuoC/R3rOW 9tESDHDBHkPT7ARrIsHhAahPmE7xjp3LOoxtNlUynNeOYWu44e+8JR5eUdfkGRAkvWuQ bXeYIRQpM/npaeOrTCVdQF1oAAPvLzZU4k9l7l1dYiyRXscpRJC6srCRNV3i1Br41kRx Z2HNi2mMD714pVB5NyrwyYcqe4l0DQ+fGG8V7xrfB6FvRwdLJLRezPagYC8lbzE7JfwY 8fLw== X-Gm-Message-State: AKGB3mLD/hhP2m8v5ahL/IYONiPJpODlUuR2+wDYfAgauQSFHbB2besE jnSxezJG0xhnSuLDuJxpp3U= X-Google-Smtp-Source: ACJfBosWJ6secXy30fXtd3Oi0nLP0QQ/gToNXe+HLVhDxEZRMJkbxxKE8TR5ComxQtzoD5NxqMtf0A== X-Received: by 10.55.50.198 with SMTP id y189mr2106857qky.255.1514996664701; Wed, 03 Jan 2018 08:24:24 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:24 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrzej Zaborowski , Stefan Weil Date: Wed, 3 Jan 2018 13:24:00 -0300 Message-Id: <20180103162400.10396-7-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH 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: qemu-arm@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- roughly 2 users left. 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 96caefe373..a342e7bc3e 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -114,23 +114,6 @@ typedef struct { void (*set_readonly)(DeviceState *dev, bool readonly); } SDBusClass; -/* 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 e934cd3656..9cfdc7a6ad 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" 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" diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 35347a5bbc..7755bedfa0 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -34,6 +34,7 @@ #include "hw/hw.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 "hw/qdev-properties.h"