From nobody Tue Oct 28 01:56:35 2025 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 151492210631047.13745522199042; Tue, 2 Jan 2018 11:41:46 -0800 (PST) Received: from localhost ([::1]:52935 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSRQ-0006x9-4u for importer@patchew.org; Tue, 02 Jan 2018 14:41:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58552) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMc-0003Ew-9s for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMb-0000Ke-BB for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:42 -0500 Received: from mail-pl0-x243.google.com ([2607:f8b0:400e:c01::243]:33284) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMW-0000Fb-74; Tue, 02 Jan 2018 14:36:36 -0500 Received: by mail-pl0-x243.google.com with SMTP id 1so27784182plv.0; Tue, 02 Jan 2018 11:36:36 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.34 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3U1En5R2uXgrFUkLERe0C7CX7L6LBbdyf7stsxqaX3M=; b=Fo4Q2k/wqzV8jpyWZ6eA4UfCvHyDLwGjKxh7p7kTRrWe9QiEv4tvimCAhos3wbPryC 7Pondb01d7XTPEsVUhDV2BBYz1yT4kGLMtj3KD3Xl2a7W48df2ga4lenwUZ6NaazGnxE x4nASCniWkw6T/slUcitHLIA4yahNtca1riqVRviydPSYz+VX72CBLXHsRThSlmZv9kq IMySBcWieYXZ16gIpBqts67aUtbIyomOG0kqHeY3DM0UBUklYrn+DCPuqrz7hZe7jhdk UWbF5gE6+9aYzVfDPcYiQlAWqguqZYw6uuoBfjsNMnK/LbZe6iw9oFQuKFrhCUHDWZ5f 9ZqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3U1En5R2uXgrFUkLERe0C7CX7L6LBbdyf7stsxqaX3M=; b=hvKIRCP99/H2EXLeAYQpv2gz9/qqFa+6wXjwZca12xkJfBScNLgkVGes2pqQDVZMRN 6fRLDdY6MK6FyA91I30XaWKGApGXOmzLlzsYbRmNrrKUqSdw0NcGTmxO5P/TjUTxdFu0 lkqU1D+U5r6clkDWv2I9Dhz+/oYrp7J+sUyP/Dsu+d/tVmEAz0RlWp+5Op5+jSnmmJHn WflH/sE/dczMT/BmOxRJfLBrjHLVjfAmJYs78PR1Scrgeoe+NP5a07gffgm0nQ8UXQwi 3KhIjJ/4RebLJs2XbS1on96z7SSfkcSJz7p8l0W1FoGnyVTZIn45IqaeWLv4xiWXEy8W NZuQ== X-Gm-Message-State: AKGB3mLA65S+kweQ4DMMHx/zElbRsYAtgR6yrp1spjXAUl4uFVtBf51l VDwKHpIKKkb5eoH+cPAw0axtpaKAVMk= X-Google-Smtp-Source: ACJfBotAS0qZKZQqTpb1cfbVagYqnbZ1brLBwTBfcnCCG4zuIzAt189IqQlEbMmIrYJbHt8EZhYSVw== X-Received: by 10.84.129.9 with SMTP id 9mr47224975plb.138.1514921794989; Tue, 02 Jan 2018 11:36:34 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:12 -0800 Message-Id: <20180102193622.27215-2-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c01::243 Subject: [Qemu-devel] [PATCH v3 01/11] imx_fec: Do not link to netdev X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Binding to a particular netdev doesn't seem to belong to this layer and should probably be done as a part of board or SoC specific code. Convert all of the users of this IP block to use qdev_set_nic_properties() instead. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/arm/fsl-imx6.c | 1 + hw/net/imx_fec.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 59ef33efa9..b0d4088290 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -385,6 +385,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) spi_table[i].irq)); } =20 + qdev_set_nic_properties(DEVICE(&s->eth), &nd_table[0]); object_property_set_bool(OBJECT(&s->eth), true, "realized", &err); if (err) { error_propagate(errp, err); diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 90e6ee35ba..88b4b049d7 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1171,8 +1171,6 @@ static void imx_eth_realize(DeviceState *dev, Error *= *errp) =20 qemu_macaddr_default_if_unset(&s->conf.macaddr); =20 - s->conf.peers.ncs[0] =3D nd_table[0].netdev; - s->nic =3D qemu_new_nic(&imx_eth_net_info, &s->conf, object_get_typename(OBJECT(dev)), DEVICE(dev)->id, s); --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514921939569545.9831502307101; Tue, 2 Jan 2018 11:38:59 -0800 (PST) Received: from localhost ([::1]:52914 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSOh-0004V6-BN for importer@patchew.org; Tue, 02 Jan 2018 14:38:51 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58542) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMb-0003EU-R6 for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMa-0000Jn-PK for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:41 -0500 Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]:45443) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMX-0000Gb-8R; Tue, 02 Jan 2018 14:36:37 -0500 Received: by mail-pf0-x243.google.com with SMTP id u19so26002863pfa.12; Tue, 02 Jan 2018 11:36:37 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+R7JD2AboYJs7m3vYE67ODV+/FajhNS+oxOIt/bT5AM=; b=eRqJZfZgDXLpzHUUBegHQrKBdnZ8gqFSNYg7EMm0Jng1LwvnoqwqYelZFtoR31EPcN DxQ1Vtzf+Ge8idnIZciTWOTlMeVjfjLnXldHPOn02on7jZ98yS9NHe2h+sIsS3LyOWTc 7IYOaxEZPkyJjw287vgZfDTFHCEpZ7aHgv5C6p9Bpiw05vUbjYuIK6+ynZHRBOgUNMoJ rz0JHSgvbR7+9vGGEDPdrfmDcgjGsV1/2Yl+gfJ6ULogjRAE7ppbTIXStlJO8XBvp3ij 4EcXEUCEE+1eJ+Le16JzLZpihNRtYzvN8VWwrS+40DIE6lcmvGExiGs9cgx8KR6wMKQn EICQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+R7JD2AboYJs7m3vYE67ODV+/FajhNS+oxOIt/bT5AM=; b=LzDlYfWwVbEXY5AvfKqUnGVm/Wyq6ZlKooKVxo7tgx6IwB38rG6uxnZ5X3ohAM9v6l yuVUoawKMPSV8TtxHT/l8omHsBepAzHxqtmERoT4sr4dhvT2lFpmwNXzfBid5uZwZMKH bm/wRWv8bfWVqt0k2maUpmCfokwt/Y4v5yJXwpikuTUnEn/7dSU7iZ+BgmJNwluEBVvY T/1scDtu3HjGKoYzIX29U7HlsEBaTE0G9gHzroRXH5EgivXNrv/s/xIuyhqi3Izk6qKf dncD05vqYF+6g6XXcrNhE5MAsynku36ufqrQQEzk0QjCjaNcPe8Jrex0Gi6vA6Mu8ayV XIAg== X-Gm-Message-State: AKGB3mItNO1MPX56x4GBEOyc8Ll6pXGH669c0V9VKTcSWFB+NLROorGJ bKCTF2T97KTKlEtHA8DSahUpiQdTSVI= X-Google-Smtp-Source: ACJfBosalpM4hINC+Pj486VwPv7EijNMCr2XgIW4LIizvt5M1/wDtMg9s2kFxq34HgycF/7vvYZVnQ== X-Received: by 10.98.87.142 with SMTP id i14mr46637906pfj.212.1514921796017; Tue, 02 Jan 2018 11:36:36 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:13 -0800 Message-Id: <20180102193622.27215-3-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c00::243 Subject: [Qemu-devel] [PATCH v3 02/11] imx_fec: Refactor imx_eth_enable_rx() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Refactor imx_eth_enable_rx() to have more meaningfull variable name than 'tmp' and to reduce number of logical negations done. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 88b4b049d7..8b2e4b8ffe 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -536,19 +536,19 @@ static void imx_eth_do_tx(IMXFECState *s) static void imx_eth_enable_rx(IMXFECState *s) { IMXFECBufDesc bd; - bool tmp; + bool rx_ring_full; =20 imx_fec_read_bd(&bd, s->rx_descriptor); =20 - tmp =3D ((bd.flags & ENET_BD_E) !=3D 0); + rx_ring_full =3D !(bd.flags & ENET_BD_E); =20 - if (!tmp) { + if (rx_ring_full) { FEC_PRINTF("RX buffer full\n"); } else if (!s->regs[ENET_RDAR]) { qemu_flush_queued_packets(qemu_get_queue(s->nic)); } =20 - s->regs[ENET_RDAR] =3D tmp ? ENET_RDAR_RDAR : 0; + s->regs[ENET_RDAR] =3D rx_ring_full ? 0 : ENET_RDAR_RDAR; } =20 static void imx_eth_reset(DeviceState *d) --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514921960227353.4766593064254; Tue, 2 Jan 2018 11:39:20 -0800 (PST) Received: from localhost ([::1]:52916 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSP9-0004qK-BC for importer@patchew.org; Tue, 02 Jan 2018 14:39:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMd-0003Ga-CX for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMb-0000LA-SA for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:43 -0500 Received: from mail-pf0-x242.google.com ([2607:f8b0:400e:c00::242]:37097) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMY-0000HK-Cb; Tue, 02 Jan 2018 14:36:38 -0500 Received: by mail-pf0-x242.google.com with SMTP id n6so26026553pfa.4; Tue, 02 Jan 2018 11:36:38 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=okFMpTBn3CPHVnnf0sYzsV4tcjnm7uVfAD8Wu4GZgfo=; b=DZtBnlOVE1MirJhuhKbwAUZfDM5a0maU+97ALdGvCqIBe7wIroM5+mwgxTandjYuax pEYWeEEo0M5hWpRpAWWLrFXisS3m7SkcwGcO361WlzYaNDi1nY4Qfp9ArYhjv3aR186R GfS27Ywf3x8jNq0RB7N4n0uULJbvjCLa5ZgC8qsW/emYcU4KdAJ7QdTRo30XfRBTRW2v ubXfA4sGVwAHsnqrw16wa3ybd/4TKLMmOqrYmQYVrhEXkbXDXAUgeS94gcoRb/2bhu4U wJEr14cp791qSKXHQkyaaes4AZ5KCH+ScJ7qZgEpZgyQc3DDqQynWVY8i4yzb/CojweW WN5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=okFMpTBn3CPHVnnf0sYzsV4tcjnm7uVfAD8Wu4GZgfo=; b=UdL/S/AIHcu0ePVsE9lPNXf5ou7BubWCY2nRqTI+vqIzaiEcazAx+CWz1vpmsuj823 m4sDzFPP8uDGEyaApnvbIiJ+DbIvB/RyYHZyt+ch6C/K2OvNxl0RPdSpGMnBB+1+Qk10 gHJd0HpTwn2cypd6hU91ykbC2CG92EhvN9vib934o2IpZ01cEFFJjqhhs5EnX6Ij4Prd HzB1H7i0bTsh07qMW4rWLvAo4G7ObwqOwduxzdv+lA9t7ApWsEEbkClRZiDTgYmLLz+Y uVikVJYkCI54CT2HsiCk7iue/kVEgx4N3QY1ZvLyuyHq8PYVktHbU2TVDLq0FYCNSiN3 XBsw== X-Gm-Message-State: AKGB3mIem3h8nlkzzB9pKlY4oSZd1mGZwuHOgzMJvOjXWbtDkz3sL+3C s23i8utFtwfCtJWaYKK6pPwQJyxpQCE= X-Google-Smtp-Source: ACJfBou4q6Rl2LWeLjIM8NGgHlCmU1AnFqym3HQgmAkZihSBbKT2CE1tW5RKyjutFfSNfU/D/K0tRQ== X-Received: by 10.98.102.219 with SMTP id s88mr46704688pfj.191.1514921796960; Tue, 02 Jan 2018 11:36:36 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:14 -0800 Message-Id: <20180102193622.27215-4-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c00::242 Subject: [Qemu-devel] [PATCH v3 03/11] imx_fec: Change queue flushing heuristics X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 In current implementation, packet queue flushing logic seem to suffer from a deadlock like scenario if a packet is received by the interface before before Rx ring is initialized by Guest's driver. Consider the following sequence of events: 1. A QEMU instance is started against a TAP device on Linux host, running Linux guest, e. g., something to the effect of: qemu-system-arm \ -net nic,model=3Dimx.fec,netdev=3Dlan0 \ netdev tap,id=3Dlan0,ifname=3Dtap0,script=3Dno,downscript=3Dno \ ... rest of the arguments ... 2. Once QEMU starts, but before guest reaches the point where FEC deriver is done initializing the HW, Guest, via TAP interface, receives a number of multicast MDNS packets from Host (not necessarily true for every OS, but it happens at least on Fedora 25) 3. Recieving a packet in such a state results in imx_eth_can_receive() returning '0', which in turn causes tap_send() to disable corresponding event (tap.c:203) 4. Once Guest's driver reaches the point where it is ready to recieve packets it prepares Rx ring descriptors and writes ENET_RDAR_RDAR to ENET_RDAR register to indicate to HW that more descriptors are ready. And at this points emulation layer does this: s->regs[index] =3D ENET_RDAR_RDAR; imx_eth_enable_rx(s); which, combined with: if (!s->regs[ENET_RDAR]) { qemu_flush_queued_packets(qemu_get_queue(s->nic)); } results in Rx queue never being flushed and corresponding I/O event beign disabled. To prevent the problem, change the code to always flush packet queue when ENET_RDAR transitions 0 -> ENET_RDAR_RDAR. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 8b2e4b8ffe..eb034ffd0c 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -533,7 +533,7 @@ static void imx_eth_do_tx(IMXFECState *s) } } =20 -static void imx_eth_enable_rx(IMXFECState *s) +static void imx_eth_enable_rx(IMXFECState *s, bool flush) { IMXFECBufDesc bd; bool rx_ring_full; @@ -544,7 +544,7 @@ static void imx_eth_enable_rx(IMXFECState *s) =20 if (rx_ring_full) { FEC_PRINTF("RX buffer full\n"); - } else if (!s->regs[ENET_RDAR]) { + } else if (flush) { qemu_flush_queued_packets(qemu_get_queue(s->nic)); } =20 @@ -807,7 +807,7 @@ static void imx_eth_write(void *opaque, hwaddr offset, = uint64_t value, if (s->regs[ENET_ECR] & ENET_ECR_ETHEREN) { if (!s->regs[index]) { s->regs[index] =3D ENET_RDAR_RDAR; - imx_eth_enable_rx(s); + imx_eth_enable_rx(s, true); } } else { s->regs[index] =3D 0; @@ -930,7 +930,7 @@ static int imx_eth_can_receive(NetClientState *nc) =20 FEC_PRINTF("\n"); =20 - return s->regs[ENET_RDAR] ? 1 : 0; + return !!s->regs[ENET_RDAR]; } =20 static ssize_t imx_fec_receive(NetClientState *nc, const uint8_t *buf, @@ -1020,7 +1020,7 @@ static ssize_t imx_fec_receive(NetClientState *nc, co= nst uint8_t *buf, } } s->rx_descriptor =3D addr; - imx_eth_enable_rx(s); + imx_eth_enable_rx(s, false); imx_eth_update(s); return len; } @@ -1116,7 +1116,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, c= onst uint8_t *buf, } } s->rx_descriptor =3D addr; - imx_eth_enable_rx(s); + imx_eth_enable_rx(s, false); imx_eth_update(s); return len; } --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514921957025613.3753126063706; Tue, 2 Jan 2018 11:39:17 -0800 (PST) Received: from localhost ([::1]:52915 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSOz-0004ig-7L for importer@patchew.org; Tue, 02 Jan 2018 14:39:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMd-0003Gu-Ou for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMc-0000Ll-81 for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:43 -0500 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]:35751) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMZ-0000Hf-9h; Tue, 02 Jan 2018 14:36:39 -0500 Received: by mail-pg0-x243.google.com with SMTP id b70so1331922pga.2; Tue, 02 Jan 2018 11:36:39 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o0B8caNespqWoZFU8fH9V1pRE4+ngVW5SMovMv0JMfk=; b=It4x0Ahssp/XGd0/NGkh3MzTC/1Zj0ZOsLASSpzjVgYBb/8bN0MpWomQVzuczzuHIq kYx4l1aReWeGp6y78iAx3VPHwndum4w7LppMepfw7r0RF9Pzve1DZvFoO3ropSeazzO9 IrFD4iR6kcBGWQn+297N7dy513yF6Bpe4NgqefI7Jyv9cjc5u7sw+WV6Gsh95sZz+YBP 0C42wF3X38VCM1rnwdGGnIEFVdNOuRdD4EoeysamWdnUklVF7xMsuTEA8EhSDdHMWK1V W6eZo5j5oz1MkEV3LPfP4qV7k19KFOgipFvGfOfEoM62Ec3vQIvyXI/wn/H7xwNY+1Nn zBdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o0B8caNespqWoZFU8fH9V1pRE4+ngVW5SMovMv0JMfk=; b=WnjffdeXgkOtNkF21F9J/pph/ygkauXKAPsTLbKtjrWjssDNH5euJhGLyfSZ6erbYc uG6dFhWIqd+HpmxbgZTEQjwKZ1sOnu2A0pZ7vrV55md+wPpMcV3K/og38oOt9yqw5y+9 Xoi3P3UAGQii3TFWygOVvgTHOdhy0SbKY46ljTqAVu5MrHFWdVd4Dd/Hy8dZzg1LqBTn ZVVC4UXdKlvtpe3cgM1K67VuHMT01iWf7v7QpIJSwv2ohnDGxItSHh89MAVSKxP9wXRf tkGN20V5fLigQr1K20CvlSpOaZnT1dJEIuqP2AVgrfF54cNm/5lNNboeY9/u2I4oKnoo awqQ== X-Gm-Message-State: AKGB3mKwLTNMVnnXoKtrXhrDJk9aAx0rYm9NgrOq0Rod2T6EWT0g2k/b 2xaGCkhLVCf/tfMFNq7LwlAXFxbMv0Y= X-Google-Smtp-Source: ACJfBouVcccBaP4jaKrZSHP+6vDc/IOULsnipFrD6/WGMRTtZffOIzC8OYU9GRV+eRpMYSNRM2iGog== X-Received: by 10.98.223.4 with SMTP id u4mr45655274pfg.233.1514921798080; Tue, 02 Jan 2018 11:36:38 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:15 -0800 Message-Id: <20180102193622.27215-5-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c05::243 Subject: [Qemu-devel] [PATCH v3 04/11] imx_fec: Move Tx frame buffer away from the stack X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Make Tx frame assembly buffer to be a paort of IMXFECState structure to avoid a concern about having large data buffer on the stack. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Signed-off-by: Andrey Smirnov Reviewed-by: Peter Maydell --- hw/net/imx_fec.c | 22 +++++++++++----------- include/hw/net/imx_fec.h | 3 +++ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index eb034ffd0c..56cb72273c 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -405,8 +405,7 @@ static void imx_eth_update(IMXFECState *s) static void imx_fec_do_tx(IMXFECState *s) { int frame_size =3D 0, descnt =3D 0; - uint8_t frame[ENET_MAX_FRAME_SIZE]; - uint8_t *ptr =3D frame; + uint8_t *ptr =3D s->frame; uint32_t addr =3D s->tx_descriptor; =20 while (descnt++ < IMX_MAX_DESC) { @@ -431,8 +430,8 @@ static void imx_fec_do_tx(IMXFECState *s) frame_size +=3D len; if (bd.flags & ENET_BD_L) { /* Last buffer in frame. */ - qemu_send_packet(qemu_get_queue(s->nic), frame, frame_size); - ptr =3D frame; + qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size); + ptr =3D s->frame; frame_size =3D 0; s->regs[ENET_EIR] |=3D ENET_INT_TXF; } @@ -456,8 +455,7 @@ static void imx_fec_do_tx(IMXFECState *s) static void imx_enet_do_tx(IMXFECState *s) { int frame_size =3D 0, descnt =3D 0; - uint8_t frame[ENET_MAX_FRAME_SIZE]; - uint8_t *ptr =3D frame; + uint8_t *ptr =3D s->frame; uint32_t addr =3D s->tx_descriptor; =20 while (descnt++ < IMX_MAX_DESC) { @@ -482,13 +480,13 @@ static void imx_enet_do_tx(IMXFECState *s) frame_size +=3D len; if (bd.flags & ENET_BD_L) { if (bd.option & ENET_BD_PINS) { - struct ip_header *ip_hd =3D PKT_GET_IP_HDR(frame); + struct ip_header *ip_hd =3D PKT_GET_IP_HDR(s->frame); if (IP_HEADER_VERSION(ip_hd) =3D=3D 4) { - net_checksum_calculate(frame, frame_size); + net_checksum_calculate(s->frame, frame_size); } } if (bd.option & ENET_BD_IINS) { - struct ip_header *ip_hd =3D PKT_GET_IP_HDR(frame); + struct ip_header *ip_hd =3D PKT_GET_IP_HDR(s->frame); /* We compute checksum only for IPv4 frames */ if (IP_HEADER_VERSION(ip_hd) =3D=3D 4) { uint16_t csum; @@ -498,8 +496,10 @@ static void imx_enet_do_tx(IMXFECState *s) } } /* Last buffer in frame. */ - qemu_send_packet(qemu_get_queue(s->nic), frame, len); - ptr =3D frame; + + qemu_send_packet(qemu_get_queue(s->nic), s->frame, len); + ptr =3D s->frame; + frame_size =3D 0; if (bd.option & ENET_BD_TX_INT) { s->regs[ENET_EIR] |=3D ENET_INT_TXF; diff --git a/include/hw/net/imx_fec.h b/include/hw/net/imx_fec.h index 62ad473b05..67993870a2 100644 --- a/include/hw/net/imx_fec.h +++ b/include/hw/net/imx_fec.h @@ -252,6 +252,9 @@ typedef struct IMXFECState { uint32_t phy_int_mask; =20 bool is_fec; + + /* Buffer used to assemble a Tx frame */ + uint8_t frame[ENET_MAX_FRAME_SIZE]; } IMXFECState; =20 #endif --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514922124944442.6421534605771; Tue, 2 Jan 2018 11:42:04 -0800 (PST) Received: from localhost ([::1]:52937 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSRo-0007HN-2y for importer@patchew.org; Tue, 02 Jan 2018 14:42:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58621) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMe-0003Hb-Bc for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMd-0000MT-9M for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:44 -0500 Received: from mail-pf0-x242.google.com ([2607:f8b0:400e:c00::242]:40889) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMa-0000Iq-7u; Tue, 02 Jan 2018 14:36:40 -0500 Received: by mail-pf0-x242.google.com with SMTP id v26so26019699pfl.7; Tue, 02 Jan 2018 11:36:40 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kMa8TkEq3z2Qro3C9PTAL2M+BRkC3wXbaQ/oArzF9YE=; b=gLlZpOjvZ0dsWOlw6ifphKR698mV7MyfhRQlEQbgtx1hOBy6t947PHLQNzW08QcjHK sh1zO7ykRwQdk1S3mEZvy+89vgyK8dmOPcOPSrEZcvGcqFN+iZnw7QoqrWkpAmpAQOVe lFYiz/8MGURmuzq9c01qdfbP0S53mjbsyE8T41uxXimS3sp2AqKbNw9YRMb1ws2Fen8s pEqWLmK7mEIOy9SWx4WTEKfMebEFvtozZU+T/fhyEk6EJAkNc9ZN0slF2f2n58UQUpuK KWMsZvWmTfVtohWHv0qi34Yamo0WgwaTzEXHNJFXg94PtH+tzBFs7WGWAIdvXlnABFlQ YIgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kMa8TkEq3z2Qro3C9PTAL2M+BRkC3wXbaQ/oArzF9YE=; b=EfdEVbFcUPF1RbDxAR/6leM477KJ1GWlPb7C6ukYIl+el4wwJGb4O0xs+rFHZxs+Q7 xmDWNfbEBrGwEkwiZ43PXZWwabqf8DUxFZZNat7kxdEu2Ovv3Kozgt6GsCQPuL9Wub1i 69ZJdaGw2OdjAIov4ibVRXCfnt+Bx3X+LfJ3UOXFba268h7LUHbZw9MM4kTtfk4jOqgA XXfkv20qaiMJJ2b3knlHJpjQW3RfY9tD1lT5CUxa8DTGQ5OXTmAOhfTZJPzjBJney4q4 Hs7CAg0VFPMVPyd8zrbvm/tUz8rdtmgYx+3m7Cfl6GUKDS6msb06BsR/1dLnYtBAwI4s M6CA== X-Gm-Message-State: AKGB3mI5WDgQnQWyZaMIgKUJXi5a4xje9DaHPJ6Rw4vdJ7o0iX7IIzY5 CIGw5QNOY5FPAqjWA356ZvOMesTINQA= X-Google-Smtp-Source: ACJfBouwCCoSojcL0luzl/hxJPv73XO6C+ePw6T8JSaSEHf64oOWv1HYmrqT9qBfFwZ39qo7zg39gQ== X-Received: by 10.98.78.204 with SMTP id c195mr46812931pfb.51.1514921799087; Tue, 02 Jan 2018 11:36:39 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:16 -0800 Message-Id: <20180102193622.27215-6-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c00::242 Subject: [Qemu-devel] [PATCH v3 05/11] imx_fec: Use ENET_FTRL to determine truncation length X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Frame truncation length, TRUNC_FL, is determined by the contents of ENET_FTRL register, so convert the code to use it instead of a hardcoded constant. To avoid the case where TRUNC_FL is greater that ENET_MAX_FRAME_SIZE, increase the value of the latter to its theoretical maximum of 16K. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Signed-off-by: Andrey Smirnov Reviewed-by: Peter Maydell --- hw/net/imx_fec.c | 4 ++-- include/hw/net/imx_fec.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 56cb72273c..50da91bf9e 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1052,8 +1052,8 @@ static ssize_t imx_enet_receive(NetClientState *nc, c= onst uint8_t *buf, crc_ptr =3D (uint8_t *) &crc; =20 /* Huge frames are truncted. */ - if (size > ENET_MAX_FRAME_SIZE) { - size =3D ENET_MAX_FRAME_SIZE; + if (size > s->regs[ENET_FTRL]) { + size =3D s->regs[ENET_FTRL]; flags |=3D ENET_BD_TR | ENET_BD_LG; } =20 diff --git a/include/hw/net/imx_fec.h b/include/hw/net/imx_fec.h index 67993870a2..a390d704a6 100644 --- a/include/hw/net/imx_fec.h +++ b/include/hw/net/imx_fec.h @@ -86,7 +86,6 @@ #define ENET_TCCR3 393 #define ENET_MAX 400 =20 -#define ENET_MAX_FRAME_SIZE 2032 =20 /* EIR and EIMR */ #define ENET_INT_HB (1 << 31) @@ -155,6 +154,8 @@ #define ENET_RCR_NLC (1 << 30) #define ENET_RCR_GRS (1 << 31) =20 +#define ENET_MAX_FRAME_SIZE (1 << ENET_RCR_MAX_FL_LENGTH) + /* TCR */ #define ENET_TCR_GTS (1 << 0) #define ENET_TCR_FDEN (1 << 2) --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 151492199029651.14791897141356; Tue, 2 Jan 2018 11:39:50 -0800 (PST) Received: from localhost ([::1]:52918 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSPd-0005IF-FD for importer@patchew.org; Tue, 02 Jan 2018 14:39:49 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58647) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMf-0003IX-1A for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMe-0000NX-7p for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:45 -0500 Received: from mail-pg0-x242.google.com ([2607:f8b0:400e:c05::242]:37963) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMb-0000Jx-CZ; Tue, 02 Jan 2018 14:36:41 -0500 Received: by mail-pg0-x242.google.com with SMTP id t67so2960592pgc.5; Tue, 02 Jan 2018 11:36:41 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.39 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uZAjdu/ViWnu/aZpzw5alaZY2904L6KQcjj4bJJYMJ0=; b=O09jzwslLkILJPDGbdloNmO6pLauAsRaj0sXr3hMuXfvLBeUCtdNuVuoFIja5b/Ovt +tUMaxQJNxo0EmR4+We6nM8PbnIuJY0J7GyiC3L2ZssjXMgcWXANghVqRoJPQAbKlq0/ ToteLM2Z8mxP7DBz7m+D8K5MR7kmSspyT0V5ecB9YoIbXxlpG3uPsRBaxLfHajsts6oA hZTNNxArzwUM0X9Ym+PShATXBXXV3mbbzDmoEcoMw6qmniDHt4X8jSAyjcBU7MRfEu5K WeUnm32VJmJDJruDaGWM26UDgL6VIxJbYXR80bl5TFTaIq317yw5w6jHHpYZvHoKW7S6 zN+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uZAjdu/ViWnu/aZpzw5alaZY2904L6KQcjj4bJJYMJ0=; b=bZqfoK2BEuXJm8e8+mdF18+YSm59NRWD6VIppWQQfHIdRUioOGuc2s726+GHjrLSS7 1cOy50/9BFT97UtfH7vb164qbr11YUFbyPbOT/lIh+pM203sYRsixFdf7YAHJ4otsvMb 50QJ9qZNY5QtL5BvcCECvXxuZxW8EQC0wf8JEC2rWGDmGnuqa6gD796xJyKFWABfvM64 uuj/MFoeA6tTFCcCxPQyvUB9UrFWURxqQ8zAc9/R2wCWleE0KjYdyqE0V5D9X6laLjTx SSyO3iCV9V+ytKI0kf1t9U33lEaePtZOuwYuXRIW/VnP7BkbrafFXUAEf0ihbUk3WJwM f98Q== X-Gm-Message-State: AKGB3mLU6aB+vIBlkoruII4H8QHHPqLgPhoVGtjulltIBrkIb2bg9H7W qys2/bBD62cLEfSV648K49QldjcYlvs= X-Google-Smtp-Source: ACJfBovTy3it+Axi88gYlio13k/TSjeX5yqi/IGqzs6yXFyLChfUVCOciKXpualVMTP9vGLp27eGKw== X-Received: by 10.98.71.90 with SMTP id u87mr46529901pfa.75.1514921800125; Tue, 02 Jan 2018 11:36:40 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:17 -0800 Message-Id: <20180102193622.27215-7-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c05::242 Subject: [Qemu-devel] [PATCH v3 06/11] imx_fec: Use MIN instead of explicit ternary operator X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 50da91bf9e..6feda18742 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1076,7 +1076,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, c= onst uint8_t *buf, TYPE_IMX_FEC, __func__); break; } - buf_len =3D (size <=3D s->regs[ENET_MRBR]) ? size : s->regs[ENET_M= RBR]; + buf_len =3D MIN(size, s->regs[ENET_MRBR]); bd.length =3D buf_len; size -=3D buf_len; =20 --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 151492229054521.59759136739956; Tue, 2 Jan 2018 11:44:50 -0800 (PST) Received: from localhost ([::1]:53036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSUO-0002Wb-EV for importer@patchew.org; Tue, 02 Jan 2018 14:44:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58709) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMi-0003KE-BG for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMf-0000OY-8P for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:48 -0500 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]:37964) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMc-0000LJ-EY; Tue, 02 Jan 2018 14:36:42 -0500 Received: by mail-pg0-x243.google.com with SMTP id t67so2960602pgc.5; Tue, 02 Jan 2018 11:36:42 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E08NgLB+iZxe+FQ8+m6OK1RQdn04+8BR1I1ixtM1hXU=; b=uMTPABtXcvoTcA3nmFonEgNk0CbaxGmlmni9VXcxvTIuwjLN5F1Jwu9l41xVYwO5VJ uXnUKRBRLmx+KmNV7SXHKKrJW7Z2dvSfSnnCzIJXQqsHLzk4BpJvSy8qxeJNzK4rQtH2 mInNRoXfm7W4R8TJCJP1+aLpAEGy6NJgXTeBv8clpboeVudswKFp4dI3Xwvgou9Bkwxg jp4rrjm0sAjPZmSWGzQzKQi4kanup/lbnivtTm3RbDMkSSnUPvooGssfcmGlN5a/Hhrb xTMh8SD+edi7ClH0K1YFMpn+WwsKPyMR3SQ/iUYCjmFlb4IGzZlc18EVrQFEvIuhPwYJ rGZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=E08NgLB+iZxe+FQ8+m6OK1RQdn04+8BR1I1ixtM1hXU=; b=HSA0UvQw4IjsOIDykPt8JO5T3byyIlcCVezeI8B5Z2U8SRjxoRBb64B+xBU+OiPO3I 9aoRAoVAo8CE4QGT9xyiMZsQEM04sBv90I4NoXarFLqjcV192k9DDgOOw+TwdxdZyfB3 SutGi73bBcrnnH7s7euHulBXHQBn8MQsxcPTu8aF7FPO6eYL1Un2ToJJO40AJumMUqq+ 2AgcntSlIt0dpmgNBsOsfKf/mShYjtg3i1VPEbprbXqEB2ed2LOKAgdvtODL69qmhhno 1LsllC8ZUxkGVjBAhQJBGhVjx3bttGX11MFFeuKld6lJ85UXqmAoLULd8eWoAxnruU4R IZUg== X-Gm-Message-State: AKGB3mLxjm4lC9dquIROTUzlN13787du4DCSVW0lKEFTTMEFK8pCLUwT fkz2Mzd808VePE0l7+lwX6xJ5dzjlJs= X-Google-Smtp-Source: ACJfBotXTmVCT26JQI7tCw2//ZeVZGjb3zVmGuu5yW0EniUQ/dg7TKA3s5ukGeUQrG9GcvduSLAXiQ== X-Received: by 10.98.153.221 with SMTP id t90mr46107541pfk.210.1514921801180; Tue, 02 Jan 2018 11:36:41 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:18 -0800 Message-Id: <20180102193622.27215-8-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c05::243 Subject: [Qemu-devel] [PATCH v3 07/11] imx_fec: Emulate SHIFT16 in ENETx_RACC X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Needed to support latest Linux kernel driver which relies on that functionality. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 23 +++++++++++++++++++++++ include/hw/net/imx_fec.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 6feda18742..825c879a28 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1037,6 +1037,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, c= onst uint8_t *buf, uint8_t *crc_ptr; unsigned int buf_len; size_t size =3D len; + bool shift16 =3D s->regs[ENET_RACC] & ENET_RACC_SHIFT16; =20 FEC_PRINTF("len %d\n", (int)size); =20 @@ -1051,6 +1052,10 @@ static ssize_t imx_enet_receive(NetClientState *nc, = const uint8_t *buf, crc =3D cpu_to_be32(crc32(~0, buf, size)); crc_ptr =3D (uint8_t *) &crc; =20 + if (shift16) { + size +=3D 2; + } + /* Huge frames are truncted. */ if (size > s->regs[ENET_FTRL]) { size =3D s->regs[ENET_FTRL]; @@ -1087,6 +1092,24 @@ static ssize_t imx_enet_receive(NetClientState *nc, = const uint8_t *buf, buf_len +=3D size - 4; } buf_addr =3D bd.data; + + if (shift16) { + /* + * If SHIFT16 bit of ENETx_RACC register is set we need to + * align the payload to 4-byte boundary. + */ + const uint8_t zeros[2] =3D { 0 }; + + dma_memory_write(&address_space_memory, buf_addr, + zeros, sizeof(zeros)); + + buf_addr +=3D sizeof(zeros); + buf_len -=3D sizeof(zeros); + + /* We only do this once per Ethernet frame */ + shift16 =3D false; + } + dma_memory_write(&address_space_memory, buf_addr, buf, buf_len); buf +=3D buf_len; if (size < 4) { diff --git a/include/hw/net/imx_fec.h b/include/hw/net/imx_fec.h index a390d704a6..af0840a0fa 100644 --- a/include/hw/net/imx_fec.h +++ b/include/hw/net/imx_fec.h @@ -170,6 +170,8 @@ #define ENET_TWFR_TFWR_LENGTH (6) #define ENET_TWFR_STRFWD (1 << 8) =20 +#define ENET_RACC_SHIFT16 BIT(7) + /* Buffer Descriptor. */ typedef struct { uint16_t length; --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514922488160667.1808300950348; Tue, 2 Jan 2018 11:48:08 -0800 (PST) Received: from localhost ([::1]:53185 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSXf-00057M-Dt for importer@patchew.org; Tue, 02 Jan 2018 14:48:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58763) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMk-0003Mn-Cx for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMi-0000Qn-IC for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:50 -0500 Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]:40890) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMd-0000MM-J0; Tue, 02 Jan 2018 14:36:43 -0500 Received: by mail-pf0-x243.google.com with SMTP id v26so26019756pfl.7; Tue, 02 Jan 2018 11:36:43 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LhiP3hpi/ZVNEVgWfo4oqYY/H6ld3r0Ks8yRmNB8xhA=; b=YiwQy24O9asJoE8nSB6HVo0bRTXeoGx84t+oqYVZhDmo58QGElkjJrPKLWJMCCuB3p 634IAAG1AwFHP3gXPUbM5owfUa/HzNRAdPEYmxTN5twPGXPFxEbhBI4PRopRjkbTR171 m+SccTHb6CKOZB9AnsGrB6kNGnKlH8RMdvkF6yYmchR/IJjvsAGdZZbb8phDgZISNqSK afC8D8Ihg4gbocl5V/7ehcbw/oC1h3MfTKiygjlTF8LkSRYKIAVi3fhCOmCu/gvvEGXv 6dqRPRA11lw9Zz3ypNcDSuyqQ/JpwI84gn5QD28T6BfNeGanSEBHi9ZDVGveaSMY9DRC XTwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LhiP3hpi/ZVNEVgWfo4oqYY/H6ld3r0Ks8yRmNB8xhA=; b=t08zDdcNApKcDKHWxBKclV6tJbtQmfNZC43JajuNo8S6FIiOwFAhK1krxjf2PCLg/Q qONN843lQ4P9xFSlo41pyfKcgR3XWmjug89X/xooCAmZl+mrlv8eWnYInsa26VBDL/2X nPY6OER2Plp4QQg9XJC0Sur4pj6zUyxwBdTikxEvF1Fh2T16H88jmWoJJd2aPG3fmLBj jeMiaG8Les9YYzLO2TEcJIk5MmujVppnjKrw2gpACjRAb9jOwBaoc4LkzNSS1rXxi0f7 EOoTwEaQKoxEQ4QLM7DT7LJlwr9YU+hsE+n0J7WdaoeL5ronhkp4Fzhlp44fxfBXEsKn RM7w== X-Gm-Message-State: AKGB3mK4WxcqI+szaEPXPFvZzRM5XAUh4JF83f6l/BSTguM6Hv8HElLr p4LuKJros96zurRZb4Q9wRplBDIQSPw= X-Google-Smtp-Source: ACJfBose1XgrAwmcXgTVaNex9or74E9Yt/l60TPMR93lgWHShnHa9ZKQCfFXZNUpWQruYBWiFoq+6Q== X-Received: by 10.98.98.5 with SMTP id w5mr46476847pfb.147.1514921802325; Tue, 02 Jan 2018 11:36:42 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:19 -0800 Message-Id: <20180102193622.27215-9-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c00::243 Subject: [Qemu-devel] [PATCH v3 08/11] imx_fec: Add support for multiple Tx DMA rings X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 More recent version of the IP block support more than one Tx DMA ring, so add the code implementing that feature. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 133 ++++++++++++++++++++++++++++++++++++++++---= ---- include/hw/net/imx_fec.h | 18 ++++++- 2 files changed, 130 insertions(+), 21 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 825c879a28..77d27f763e 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -196,6 +196,31 @@ static const char *imx_eth_reg_name(IMXFECState *s, ui= nt32_t index) } } =20 +/* + * Versions of this device with more than one TX descriptor save the + * 2nd and 3rd descriptors in a subsection, to maintain migration + * compatibility with previous versions of the device that only + * supported a single descriptor. + */ +static bool imx_eth_is_multi_tx_ring(void *opaque) +{ + IMXFECState *s =3D IMX_FEC(opaque); + + return s->tx_ring_num > 1; +} + +static const VMStateDescription vmstate_imx_eth_txdescs =3D { + .name =3D "imx.fec/txdescs", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D imx_eth_is_multi_tx_ring, + .fields =3D (VMStateField[]) { + VMSTATE_UINT32(tx_descriptor[1], IMXFECState), + VMSTATE_UINT32(tx_descriptor[2], IMXFECState), + VMSTATE_END_OF_LIST() + } +}; + static const VMStateDescription vmstate_imx_eth =3D { .name =3D TYPE_IMX_FEC, .version_id =3D 2, @@ -203,15 +228,18 @@ static const VMStateDescription vmstate_imx_eth =3D { .fields =3D (VMStateField[]) { VMSTATE_UINT32_ARRAY(regs, IMXFECState, ENET_MAX), VMSTATE_UINT32(rx_descriptor, IMXFECState), - VMSTATE_UINT32(tx_descriptor, IMXFECState), - + VMSTATE_UINT32(tx_descriptor[0], IMXFECState), VMSTATE_UINT32(phy_status, IMXFECState), VMSTATE_UINT32(phy_control, IMXFECState), VMSTATE_UINT32(phy_advertise, IMXFECState), VMSTATE_UINT32(phy_int, IMXFECState), VMSTATE_UINT32(phy_int_mask, IMXFECState), VMSTATE_END_OF_LIST() - } + }, + .subsections =3D (const VMStateDescription * []) { + &vmstate_imx_eth_txdescs, + NULL + }, }; =20 #define PHY_INT_ENERGYON (1 << 7) @@ -406,7 +434,7 @@ static void imx_fec_do_tx(IMXFECState *s) { int frame_size =3D 0, descnt =3D 0; uint8_t *ptr =3D s->frame; - uint32_t addr =3D s->tx_descriptor; + uint32_t addr =3D s->tx_descriptor[0]; =20 while (descnt++ < IMX_MAX_DESC) { IMXFECBufDesc bd; @@ -447,16 +475,47 @@ static void imx_fec_do_tx(IMXFECState *s) } } =20 - s->tx_descriptor =3D addr; + s->tx_descriptor[0] =3D addr; =20 imx_eth_update(s); } =20 -static void imx_enet_do_tx(IMXFECState *s) +static void imx_enet_do_tx(IMXFECState *s, uint32_t index) { int frame_size =3D 0, descnt =3D 0; + uint8_t *ptr =3D s->frame; - uint32_t addr =3D s->tx_descriptor; + uint32_t addr, int_txb, int_txf, tdsr; + size_t ring; + + switch (index) { + case ENET_TDAR: + ring =3D 0; + int_txb =3D ENET_INT_TXB; + int_txf =3D ENET_INT_TXF; + tdsr =3D ENET_TDSR; + break; + case ENET_TDAR1: + ring =3D 1; + int_txb =3D ENET_INT_TXB1; + int_txf =3D ENET_INT_TXF1; + tdsr =3D ENET_TDSR1; + break; + case ENET_TDAR2: + ring =3D 2; + int_txb =3D ENET_INT_TXB2; + int_txf =3D ENET_INT_TXF2; + tdsr =3D ENET_TDSR2; + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, + "%s: bogus value for index %x\n", + __func__, index); + abort(); + break; + } + + addr =3D s->tx_descriptor[ring]; =20 while (descnt++ < IMX_MAX_DESC) { IMXENETBufDesc bd; @@ -502,32 +561,32 @@ static void imx_enet_do_tx(IMXFECState *s) =20 frame_size =3D 0; if (bd.option & ENET_BD_TX_INT) { - s->regs[ENET_EIR] |=3D ENET_INT_TXF; + s->regs[ENET_EIR] |=3D int_txf; } } if (bd.option & ENET_BD_TX_INT) { - s->regs[ENET_EIR] |=3D ENET_INT_TXB; + s->regs[ENET_EIR] |=3D int_txb; } bd.flags &=3D ~ENET_BD_R; /* Write back the modified descriptor. */ imx_enet_write_bd(&bd, addr); /* Advance to the next descriptor. */ if ((bd.flags & ENET_BD_W) !=3D 0) { - addr =3D s->regs[ENET_TDSR]; + addr =3D s->regs[tdsr]; } else { addr +=3D sizeof(bd); } } =20 - s->tx_descriptor =3D addr; + s->tx_descriptor[ring] =3D addr; =20 imx_eth_update(s); } =20 -static void imx_eth_do_tx(IMXFECState *s) +static void imx_eth_do_tx(IMXFECState *s, uint32_t index) { if (!s->is_fec && (s->regs[ENET_ECR] & ENET_ECR_EN1588)) { - imx_enet_do_tx(s); + imx_enet_do_tx(s, index); } else { imx_fec_do_tx(s); } @@ -585,7 +644,7 @@ static void imx_eth_reset(DeviceState *d) } =20 s->rx_descriptor =3D 0; - s->tx_descriptor =3D 0; + memset(s->tx_descriptor, 0, sizeof(s->tx_descriptor)); =20 /* We also reset the PHY */ phy_reset(s); @@ -791,6 +850,7 @@ static void imx_eth_write(void *opaque, hwaddr offset, = uint64_t value, unsigned size) { IMXFECState *s =3D IMX_FEC(opaque); + const bool single_tx_ring =3D !imx_eth_is_multi_tx_ring(s); uint32_t index =3D offset >> 2; =20 FEC_PRINTF("reg[%s] <=3D 0x%" PRIx32 "\n", imx_eth_reg_name(s, index), @@ -813,10 +873,18 @@ static void imx_eth_write(void *opaque, hwaddr offset= , uint64_t value, s->regs[index] =3D 0; } break; - case ENET_TDAR: + case ENET_TDAR1: /* FALLTHROUGH */ + case ENET_TDAR2: /* FALLTHROUGH */ + if (unlikely(single_tx_ring)) { + qemu_log_mask(LOG_GUEST_ERROR, + "[%s]%s: trying to access TDAR2 or TDAR1\n", + TYPE_IMX_FEC, __func__); + return; + } + case ENET_TDAR: /* FALLTHROUGH */ if (s->regs[ENET_ECR] & ENET_ECR_ETHEREN) { s->regs[index] =3D ENET_TDAR_TDAR; - imx_eth_do_tx(s); + imx_eth_do_tx(s, index); } s->regs[index] =3D 0; break; @@ -828,8 +896,12 @@ static void imx_eth_write(void *opaque, hwaddr offset,= uint64_t value, if ((s->regs[index] & ENET_ECR_ETHEREN) =3D=3D 0) { s->regs[ENET_RDAR] =3D 0; s->rx_descriptor =3D s->regs[ENET_RDSR]; - s->regs[ENET_TDAR] =3D 0; - s->tx_descriptor =3D s->regs[ENET_TDSR]; + s->regs[ENET_TDAR] =3D 0; + s->regs[ENET_TDAR1] =3D 0; + s->regs[ENET_TDAR2] =3D 0; + s->tx_descriptor[0] =3D s->regs[ENET_TDSR]; + s->tx_descriptor[1] =3D s->regs[ENET_TDSR1]; + s->tx_descriptor[2] =3D s->regs[ENET_TDSR2]; } break; case ENET_MMFR: @@ -907,7 +979,29 @@ static void imx_eth_write(void *opaque, hwaddr offset,= uint64_t value, } else { s->regs[index] =3D value & ~7; } - s->tx_descriptor =3D s->regs[index]; + s->tx_descriptor[0] =3D s->regs[index]; + break; + case ENET_TDSR1: + if (unlikely(single_tx_ring)) { + qemu_log_mask(LOG_GUEST_ERROR, + "[%s]%s: trying to access TDSR1\n", + TYPE_IMX_FEC, __func__); + return; + } + + s->regs[index] =3D value & ~7; + s->tx_descriptor[1] =3D s->regs[index]; + break; + case ENET_TDSR2: + if (unlikely(single_tx_ring)) { + qemu_log_mask(LOG_GUEST_ERROR, + "[%s]%s: trying to access TDSR2\n", + TYPE_IMX_FEC, __func__); + return; + } + + s->regs[index] =3D value & ~7; + s->tx_descriptor[2] =3D s->regs[index]; break; case ENET_MRBR: s->regs[index] =3D value & 0x00003ff0; @@ -1203,6 +1297,7 @@ static void imx_eth_realize(DeviceState *dev, Error *= *errp) =20 static Property imx_eth_properties[] =3D { DEFINE_NIC_PROPERTIES(IMXFECState, conf), + DEFINE_PROP_UINT32("tx-ring-num", IMXFECState, tx_ring_num, 1), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/include/hw/net/imx_fec.h b/include/hw/net/imx_fec.h index af0840a0fa..91ef8f89a6 100644 --- a/include/hw/net/imx_fec.h +++ b/include/hw/net/imx_fec.h @@ -52,6 +52,8 @@ #define ENET_TFWR 81 #define ENET_FRBR 83 #define ENET_FRSR 84 +#define ENET_TDSR1 89 +#define ENET_TDSR2 92 #define ENET_RDSR 96 #define ENET_TDSR 97 #define ENET_MRBR 98 @@ -66,6 +68,8 @@ #define ENET_FTRL 108 #define ENET_TACC 112 #define ENET_RACC 113 +#define ENET_TDAR1 121 +#define ENET_TDAR2 123 #define ENET_MIIGSK_CFGR 192 #define ENET_MIIGSK_ENR 194 #define ENET_ATCR 256 @@ -105,13 +109,18 @@ #define ENET_INT_WAKEUP (1 << 17) #define ENET_INT_TS_AVAIL (1 << 16) #define ENET_INT_TS_TIMER (1 << 15) +#define ENET_INT_TXF2 (1 << 7) +#define ENET_INT_TXB2 (1 << 6) +#define ENET_INT_TXF1 (1 << 3) +#define ENET_INT_TXB1 (1 << 2) =20 #define ENET_INT_MAC (ENET_INT_HB | ENET_INT_BABR | ENET_INT_BAB= T | \ ENET_INT_GRA | ENET_INT_TXF | ENET_INT_TXB= | \ ENET_INT_RXF | ENET_INT_RXB | ENET_INT_MII= | \ ENET_INT_EBERR | ENET_INT_LC | ENET_INT_RL= | \ ENET_INT_UN | ENET_INT_PLR | ENET_INT_WAKE= UP | \ - ENET_INT_TS_AVAIL) + ENET_INT_TS_AVAIL | ENET_INT_TXF1 | \ + ENET_INT_TXB1 | ENET_INT_TXF2 | ENET_INT_T= XB2) =20 /* RDAR */ #define ENET_RDAR_RDAR (1 << 24) @@ -234,6 +243,9 @@ typedef struct { =20 #define ENET_BD_BDU (1 << 31) =20 +#define ENET_TX_RING_NUM 3 + + typedef struct IMXFECState { /*< private >*/ SysBusDevice parent_obj; @@ -246,7 +258,9 @@ typedef struct IMXFECState { =20 uint32_t regs[ENET_MAX]; uint32_t rx_descriptor; - uint32_t tx_descriptor; + + uint32_t tx_descriptor[ENET_TX_RING_NUM]; + uint32_t tx_ring_num; =20 uint32_t phy_status; uint32_t phy_control; --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514922203748956.4596303690681; Tue, 2 Jan 2018 11:43:23 -0800 (PST) Received: from localhost ([::1]:52941 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWST2-0008Vh-Qy for importer@patchew.org; Tue, 02 Jan 2018 14:43:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMj-0003M8-Mc for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMi-0000Qt-KA for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:49 -0500 Received: from mail-pl0-x243.google.com ([2607:f8b0:400e:c01::243]:41582) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMe-0000Nc-Of; Tue, 02 Jan 2018 14:36:44 -0500 Received: by mail-pl0-x243.google.com with SMTP id g2so29239178pli.8; Tue, 02 Jan 2018 11:36:44 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ty+c/nHpZuV2ryMR9Vetge+TEO8E4qKSpfUH6xLUNk0=; b=ouKbJSanIZp+rZnPARz9MhkePvWj3DTiMEBO7MWbPceHK9/g1yQXolBc8MYJAMR5zP 9KNtD7XN7GLY+7MYAAiertR6fca8Aun30t0C1DavrJ1kdJcRlM64l8JMmRaBRigOUnxs kE+mJ6hG3zNkrdx0g7s36ZZeJW94P8iHX1KtdTkihvjKQaZDuu+jjaUtC+0sp598Iayb FazMsfCgw5n5ejPvnG/AQ/z2vskHu2DYC1MSSOiYMxuYP0/A/88U57ES6H+nVzdOJp5T HC99byAZ48ibzQcma2VwZiwkm1P3DzQhSx8LUkJuoJGF20cto6TsQn0AomEgjobM0TJC doaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ty+c/nHpZuV2ryMR9Vetge+TEO8E4qKSpfUH6xLUNk0=; b=ksWWGoQj2gsHb+EKMKXupvWMlW8ztIXVShILq1/bqCVKL6Rh47yKxmB4wD39LQSRdg NUMByB60gXetJb10d1JauieGnP5xmb7LA+JVAfTwgAQLcIL8gNlHLApVW2p4AUoD2/YZ ug26dGBqNdHCx15nU7YwMOwEGr22nGt1num1+kBABDxVAn0HA7M1k5ycNOUtZOu2S3ZD 1XTcS9Y/w5Unn6WjfN2RDy7DfrrG1nPEt82kzZ96kaFGQ8n6LGEUBUUkgAr5Xu1I3Xva o22I9LH7jEtq2plAw0Z4sCAphtq1Ctbj8zoE8D26unREct2FZO78kNqqoycI1WPLFs4J 1cMw== X-Gm-Message-State: AKGB3mIeDjkjpB0pwEUe7LFpMvn9F6P/xI0sBJdF6HK8VVTcQwomLDi/ w2RwVjcN9vzA1yGoFyvqbOAuLmZjpr0= X-Google-Smtp-Source: ACJfBotFkxEz+BNfDysquzhbtK8bi3NSSWhST1ZDW+LtuQ/Nu7Abgcng8S3MpMvDbwsCy6tQ5otpBg== X-Received: by 10.159.194.204 with SMTP id u12mr46617608plz.191.1514921803592; Tue, 02 Jan 2018 11:36:43 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:20 -0800 Message-Id: <20180102193622.27215-10-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c01::243 Subject: [Qemu-devel] [PATCH v3 09/11] imx_fec: Use correct length for packet size X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Use 'frame_size' instead of 'len' when calling qemu_send_packet(), failing to do so results in malformed packets send in case when that packed is fragmented into multiple DMA transactions. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 77d27f763e..6cb9e2e20e 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -556,7 +556,7 @@ static void imx_enet_do_tx(IMXFECState *s, uint32_t ind= ex) } /* Last buffer in frame. */ =20 - qemu_send_packet(qemu_get_queue(s->nic), s->frame, len); + qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size); ptr =3D s->frame; =20 frame_size =3D 0; --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514922295222305.5798130518891; Tue, 2 Jan 2018 11:44:55 -0800 (PST) Received: from localhost ([::1]:53056 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSUY-0002g8-8Q for importer@patchew.org; Tue, 02 Jan 2018 14:44:54 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58760) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMk-0003Mi-Ap for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMj-0000RR-Ho for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:50 -0500 Received: from mail-pg0-x244.google.com ([2607:f8b0:400e:c05::244]:43881) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMf-0000Od-Ry; Tue, 02 Jan 2018 14:36:45 -0500 Received: by mail-pg0-x244.google.com with SMTP id f18so8004221pga.10; Tue, 02 Jan 2018 11:36:45 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Uh6BWoCeucm/RqhnrLog4O3BSbZ2UG1LTw2gH+giLCc=; b=mnSohw54NkWEPFTybysH2EBypPgdFSgohkE55ibq+WRR2vsk3/7osaU5d5GcRM6/+C 8TrGKA9topS6v1dnI6GbTQHTCrpMOYzD4BnmD3fGoAnEmt/6634wyHz1Uvr4HPM9fW8D nElYJX53QfO34ZbHpWvikpMAY63szo6xGUUYy+Sxope5varX9QjJkOKxvvN5c1eEoKQd hCgl/TE89kyAqH/rud03A+yxvVo4b3E/if+Br11b5+LhMqMLJdODeg4wsiiWM6LT7seI ZkrWtoh/tWELkpCjtgMisuhOKQlRioDD4ZZW7rtv44RvDszBLe0TFBjsuGDX5GSnVlSd M2tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Uh6BWoCeucm/RqhnrLog4O3BSbZ2UG1LTw2gH+giLCc=; b=bFw81ju+XszfLWxLoVcMdmlhdHYhQ3krmgE4DEbUYA4hV/GJxwwf6tZVAvJu1L2g+Q tL/BiSTn7UH6bl+5KfxcLiaoKg24zhloZbfv1zqAT+uJtAfStxSCu8bF0uK4/q/XZRnZ T4XqqO6N0mKB2wRiKhlAuGEKfaeto0fQ0NsdOJ4sLxFQgNBjfY+ODdAN3wzXv17U/yKf GAJ1dsPYlifGHnDvu3/6xerlLUAiqPu6P0EGucP8KNtAUAkBfKE+J7Xor2wI+S59+bxY IYJ9ZUm377Fhb3x946Z0F6RFMZ5JIsjgL7SMTozTGvwFbm27pO/8WWf5BB1q3pp1BEuw wIGA== X-Gm-Message-State: AKGB3mK4Qk4Dcgo8j6CbcFiEfvjzSFqSZl8qTINRIk9ysFpeFpR37q/C M2h8HQGn05oYAo8YWAw8HzZzTtvO2fQ= X-Google-Smtp-Source: ACJfBov6ot+I1eIdG4kntX6OdXDz9Yl1DXZ9VTUDFXn+tVsgnlg0Tu6CrDrIx+TrErMUB1QKuePN9Q== X-Received: by 10.99.140.29 with SMTP id m29mr34566375pgd.364.1514921804612; Tue, 02 Jan 2018 11:36:44 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:21 -0800 Message-Id: <20180102193622.27215-11-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c05::244 Subject: [Qemu-devel] [PATCH v3 10/11] imx_fec: Fix a typo in imx_enet_receive() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index 6cb9e2e20e..c1cf7f9c58 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1150,7 +1150,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, c= onst uint8_t *buf, size +=3D 2; } =20 - /* Huge frames are truncted. */ + /* Huge frames are truncated. */ if (size > s->regs[ENET_FTRL]) { size =3D s->regs[ENET_FTRL]; flags |=3D ENET_BD_TR | ENET_BD_LG; --=20 2.14.3 From nobody Tue Oct 28 01:56:35 2025 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 1514922411475664.7960399823; Tue, 2 Jan 2018 11:46:51 -0800 (PST) Received: from localhost ([::1]:53129 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSWM-00044Z-Aa for importer@patchew.org; Tue, 02 Jan 2018 14:46:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWSMk-0003Mw-Jo for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWSMj-0000RW-If for qemu-devel@nongnu.org; Tue, 02 Jan 2018 14:36:50 -0500 Received: from mail-pf0-x244.google.com ([2607:f8b0:400e:c00::244]:39724) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWSMh-0000PK-4t; Tue, 02 Jan 2018 14:36:47 -0500 Received: by mail-pf0-x244.google.com with SMTP id l24so26024882pfj.6; Tue, 02 Jan 2018 11:36:47 -0800 (PST) Received: from squirtle.westlake.spaceflightindustries.com ([173.226.206.194]) by smtp.gmail.com with ESMTPSA id g9sm97905951pfk.0.2018.01.02.11.36.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Jan 2018 11:36:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=krjP4ycTOa7hxNduyxB7DLScklOA9sr6EGMYFcFXKS4=; b=e+YhLqik6HjvfyDlXnbG41se7F5GxAnoltp7NAEdwLOFxEFwkLbb0XGCp5ccGttsdT OIYIw/FCQYVxc1XQS1KPYJfbZS6BjthbEQ79cduAWj2Lrf8KX95GBZSFeZIEi87J0iIJ eyvTe2S/Q9D1ewt7vkkqSg7j9S5K5kJFDrN2huNYBHM5UvahxlrmimSyjJr3T4z+7AIi 2CvifLDpLiIY2r01YMCUgXjivmcnSXBmVUCm/bI84rh60EdmCFNVk8Lj5pUcSjvTnXWM laewN6yUCrAvVXmyIZzPBVIPVvWYEcEaQGTqFKvwogaHau1tfYbVhOTCqax2K/uO/dp1 80+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=krjP4ycTOa7hxNduyxB7DLScklOA9sr6EGMYFcFXKS4=; b=dyoX3iLA1gcpbjR/q9dD55R2nh0ZM4w1m3luHRwkNwUF17BWb3YQ3ts6J8SBSkhZ3y Xg8JBmRWBLxxsiM4TvK5cFA75Hqxre9FG8D5a2+ccpFEhnK9iDXfbLm1/jKzloZoglDz f941KugJBHNxYUzEuA1Q4fLKADPPK/ZnEJjlu8x+MN8/MNAjZjOpBHZaXc/ApDzeJyxW IBOX8QXcoyZIHpEeOYzdANIop4zpzolu7J1T6JNTTkXLJQ9/UtMLdOqYpcrGA8dRQ8Tv 3scHjFgfRZcRXUDWXmOfMn2/dPGJnAt1273HAQscB7J5eYJVVKxR3E1RjmpIrrz/oZKZ Nc6Q== X-Gm-Message-State: AKGB3mJkhhV7eddV4vwC/YQZYz6ZTqAGCbdr+J3hgQnfBEcu+neX+qxX iWGmBaylsSAyl700vNT5tYH/OHnOCIM= X-Google-Smtp-Source: ACJfBovekGyDvOfk1JjMAkniQHFYylxkeKH3NzNHHkCwETRCpQtmxj8qL5JZFddC711By2DGbIOaDg== X-Received: by 10.101.86.6 with SMTP id l6mr22654493pgs.322.1514921805870; Tue, 02 Jan 2018 11:36:45 -0800 (PST) From: Andrey Smirnov To: qemu-arm@nongnu.org Date: Tue, 2 Jan 2018 11:36:22 -0800 Message-Id: <20180102193622.27215-12-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180102193622.27215-1-andrew.smirnov@gmail.com> References: <20180102193622.27215-1-andrew.smirnov@gmail.com> 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:400e:c00::244 Subject: [Qemu-devel] [PATCH v3 11/11] imx_fec: Reserve full FSL_IMX25_FEC_SIZE page for the register file X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrey Smirnov , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, yurovsky@gmail.com 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 Some i.MX SoCs (e.g. i.MX7) have FEC registers going as far as offset 0x614, so to avoid getting aborts when accessing those on QEMU, extend the register file to cover FSL_IMX25_FEC_SIZE(16K) of address space instead of just 1K. Cc: Peter Maydell Cc: Jason Wang Cc: Philippe Mathieu-Daud=C3=A9 Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov --- hw/net/imx_fec.c | 2 +- include/hw/arm/fsl-imx25.h | 1 - include/hw/net/imx_fec.h | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index c1cf7f9c58..4fb48f62ba 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -1281,7 +1281,7 @@ static void imx_eth_realize(DeviceState *dev, Error *= *errp) SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); =20 memory_region_init_io(&s->iomem, OBJECT(dev), &imx_eth_ops, s, - TYPE_IMX_FEC, 0x400); + TYPE_IMX_FEC, FSL_IMX25_FEC_SIZE); sysbus_init_mmio(sbd, &s->iomem); sysbus_init_irq(sbd, &s->irq[0]); sysbus_init_irq(sbd, &s->irq[1]); diff --git a/include/hw/arm/fsl-imx25.h b/include/hw/arm/fsl-imx25.h index d0e8e9d956..65a73714ef 100644 --- a/include/hw/arm/fsl-imx25.h +++ b/include/hw/arm/fsl-imx25.h @@ -192,7 +192,6 @@ typedef struct FslIMX25State { #define FSL_IMX25_UART5_ADDR 0x5002C000 #define FSL_IMX25_UART5_SIZE 0x4000 #define FSL_IMX25_FEC_ADDR 0x50038000 -#define FSL_IMX25_FEC_SIZE 0x4000 #define FSL_IMX25_CCM_ADDR 0x53F80000 #define FSL_IMX25_CCM_SIZE 0x4000 #define FSL_IMX25_GPT4_ADDR 0x53F84000 diff --git a/include/hw/net/imx_fec.h b/include/hw/net/imx_fec.h index 91ef8f89a6..7b3faa4019 100644 --- a/include/hw/net/imx_fec.h +++ b/include/hw/net/imx_fec.h @@ -245,6 +245,7 @@ typedef struct { =20 #define ENET_TX_RING_NUM 3 =20 +#define FSL_IMX25_FEC_SIZE 0x4000 =20 typedef struct IMXFECState { /*< private >*/ --=20 2.14.3