From nobody Tue May 13 17:22:51 2025 Delivered-To: importer2@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1673519308; cv=none; d=zohomail.com; s=zohoarc; b=A1Ksm/EC9Nqq/d63lBMsJuFCB2F6hERuCjDpAh6hqaSnGTSVmCXUUXKfe0sqfkiwukPL83K5XYUQrJF/ZdhUVlocXXC9aH0wL6pEJqRHvIK07tNjInYl+TDPhkfhS2xSa84w81oHhFW2iz4RfDThX4diJgyQ6J8v7xKKzuklnAY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1673519308; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject; bh=VWqHO+rRahXUGWAQnJsH+iI5jUXWsg5ZhWUH3RvHdms=; b=W7CnOH1nJSpIdXIVRh42BNkg48AVlzX9+EvJD1eK3+yLlPdtbhluluVvCSKXPdjRh7HMQTsComeCIqgNnKOLbivsAK0hqHBj4ddlzYyrHMfoXUBmQwk//hND2dZuF66XPrzczUjc5kdDEnRviJQrddDe9gf/y5yiK9zFERI5qb8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1673519308103106.49517113424429; Thu, 12 Jan 2023 02:28:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pFuMM-0003e4-Ga; Thu, 12 Jan 2023 04:58:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFuMK-0003dh-PX for qemu-devel@nongnu.org; Thu, 12 Jan 2023 04:58:56 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pFuMJ-0004On-8b for qemu-devel@nongnu.org; Thu, 12 Jan 2023 04:58:56 -0500 Received: by mail-pl1-x62d.google.com with SMTP id 17so19762646pll.0 for ; Thu, 12 Jan 2023 01:58:54 -0800 (PST) Received: from alarm.flets-east.jp ([2400:4050:a840:1e00:4457:c267:5e09:481b]) by smtp.gmail.com with ESMTPSA id k13-20020a17090a3ccd00b00219025945dcsm12095450pjd.19.2023.01.12.01.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jan 2023 01:58:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VWqHO+rRahXUGWAQnJsH+iI5jUXWsg5ZhWUH3RvHdms=; b=CqSwQsaBL6Clsb3af8XzZVj1jHYLIomVoYmd/wJZEOkaNnzqBUWkkv2HQBIhbW1mfq liF3QHzFpGoY7QVaDGS7gQJvFsxlgIB8h3fcsB9HG51Xqoq7Jqg15acVA452PIcx0fof hPLTggO2Wl6TpcLLrXHOOfbcVOoC6nKYdzR1nXfvdpOTiVssQukoB84HvAF5hLk6YeK+ czELCyBeNjNMvA/3sAzp5nMk1eRXAeetPxpZkkApCjwA4190+PJY8ONNoMp36u9l4Yma 1j6xyKu1xxU4js9m3xiK+NnY4ovqwnxOKzOUrCc4xNZxKtK23l/srQfnSTtUDkc0uXAT vm1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VWqHO+rRahXUGWAQnJsH+iI5jUXWsg5ZhWUH3RvHdms=; b=IeqTSUfK8UnDOS+24+tnUrL+Z+kENzWyUsvFe0FByTmqOTmJhyshpIYWk0GLC5Ti6R jryqG9qJP1T0F7EqQva+1xyVW/HAc71Cd4zc3yWWhFkSfsbDQFBUDI1gKgSfF18Bwaao OfWc/wtNT2dGV/+2xVSoV5bKM9WyXVj6U0mIniGBhrbKlkKm2XynXxAg4AOoSoXEizJR ai1Z/k6vHCx5+fdDcEerZ1/W7hLJbdW3k7L17VQnKc3y52jPpcx7LboawDKhmUKMfPqS 4DIn4tW9HyQo3bHwx+YwRRlpCO+WSEpjqZWKhE7tO4vtoUAP1cXmi2OrF1+VOjQcN4Nc e+9w== X-Gm-Message-State: AFqh2koNDt1m/sZYz2o3ESdpDE2kWTQYJuwU+F6Q9TiGnSm8/L3u0IxC bCzsFj8RY3EqsV75x7tEBA7DVw== X-Google-Smtp-Source: AMrXdXtJcWqDcYV9u84N60EWC5FgFDlLnw06ZjMI0RlNxvTw/CFPM5U/0+yQTogLM3Zx35alfvl0hA== X-Received: by 2002:a17:90a:28a4:b0:229:476:2fb2 with SMTP id f33-20020a17090a28a400b0022904762fb2mr1450642pjd.28.1673517534614; Thu, 12 Jan 2023 01:58:54 -0800 (PST) From: Akihiko Odaki To: Cc: Akihiko Odaki , Jason Wang , Dmitry Fleytman , "Michael S. Tsirkin" , Marcel Apfelbaum , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Thomas Huth , Wainer dos Santos Moschetta , Beraldo Leal , Cleber Rosa , Laurent Vivier , Paolo Bonzini , Alexander Bulekov , Bandan Das , Stefan Hajnoczi , Darren Kenny , Qiuhao Li , qemu-devel@nongnu.org, qemu-ppc@nongnu.org, devel@daynix.com, Yan Vugenfirer , Yuri Benditovich , Sriram Yagnaraman Subject: [PATCH 12/31] e1000e: Improve software reset Date: Thu, 12 Jan 2023 18:57:24 +0900 Message-Id: <20230112095743.20123-13-akihiko.odaki@daynix.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230112095743.20123-1-akihiko.odaki@daynix.com> References: <20230112095743.20123-1-akihiko.odaki@daynix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::62d; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20210112.gappssmtp.com) X-ZM-MESSAGEID: 1673519309623100001 Content-Type: text/plain; charset="utf-8" This change makes e1000e reset more things when software reset was triggered. Some registers are exempted from software reset in the datasheet and this change also implements the behavior accordingly. Signed-off-by: Akihiko Odaki --- hw/net/e1000e_core.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index 37aec6a970..b8670662c8 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -58,6 +58,8 @@ static inline void e1000e_set_interrupt_cause(E1000ECore *core, uint32_t val); =20 +static void e1000e_reset(E1000ECore *core, bool sw); + static inline void e1000e_process_ts_option(E1000ECore *core, struct e1000_tx_desc *dp) { @@ -1882,7 +1884,7 @@ e1000e_set_ctrl(E1000ECore *core, int index, uint32_t= val) =20 if (val & E1000_CTRL_RST) { trace_e1000e_core_ctrl_sw_reset(); - e1000x_reset_mac_addr(core->owner_nic, core->mac, core->permanent_= mac); + e1000e_reset(core, true); } =20 if (val & E1000_CTRL_PHY_RST) { @@ -3488,8 +3490,7 @@ static const uint32_t e1000e_mac_reg_init[] =3D { [EITR...EITR + E1000E_MSIX_VEC_NUM - 1] =3D E1000E_MIN_XITR, }; =20 -void -e1000e_core_reset(E1000ECore *core) +static void e1000e_reset(E1000ECore *core, bool sw) { int i; =20 @@ -3499,8 +3500,15 @@ e1000e_core_reset(E1000ECore *core) =20 memset(core->phy, 0, sizeof core->phy); memcpy(core->phy, e1000e_phy_reg_init, sizeof e1000e_phy_reg_init); - memset(core->mac, 0, sizeof core->mac); - memcpy(core->mac, e1000e_mac_reg_init, sizeof e1000e_mac_reg_init); + + for (i =3D 0; i < E1000E_MAC_SIZE; i++) { + if (sw && (i =3D=3D PBA || i =3D=3D PBS || i =3D=3D FLA)) { + continue; + } + + core->mac[i] =3D i < ARRAY_SIZE(e1000e_mac_reg_init) ? + e1000e_mac_reg_init[i] : 0; + } =20 core->rxbuf_min_shift =3D 1 + E1000_RING_DESC_LEN_SHIFT; =20 @@ -3517,6 +3525,12 @@ e1000e_core_reset(E1000ECore *core) } } =20 +void +e1000e_core_reset(E1000ECore *core) +{ + e1000e_reset(core, false); +} + void e1000e_core_pre_save(E1000ECore *core) { int i; --=20 2.39.0