From: Simon Horman <horms@kernel.org>
To: Petr Machata <petrm@nvidia.com>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, Ido Schimmel <idosch@nvidia.com>,
mlxsw@nvidia.com, Maksym Yaremchuk <maksymy@nvidia.com>
Subject: Re: [PATCH net 1/3] mlxsw: pci: Fix driver initialization with Spectrum-4
Date: Wed, 19 Jun 2024 15:50:40 +0100 [thread overview]
Message-ID: <20240619145040.GH690967@kernel.org> (raw)
In-Reply-To: <782b8dfa5a4b6adb0ef9b56303037fb0cda19226.1718641468.git.petrm@nvidia.com>
On Mon, Jun 17, 2024 at 06:56:00PM +0200, Petr Machata wrote:
> From: Ido Schimmel <idosch@nvidia.com>
>
> Cited commit added support for a new reset flow ("all reset") which is
> deeper than the existing reset flow ("software reset") and allows the
> device's PCI firmware to be upgraded.
>
> In the new flow the driver first tells the firmware that "all reset" is
> required by issuing a new reset command (i.e., MRSR.command=6) and then
> triggers the reset by having the PCI core issue a secondary bus reset
> (SBR).
>
> However, due to a race condition in the device's firmware the device is
> not always able to recover from this reset, resulting in initialization
> failures [1].
>
> New firmware versions include a fix for the bug and advertise it using a
> new capability bit in the Management Capabilities Mask (MCAM) register.
>
> Avoid initialization failures by reading the new capability bit and
> triggering the new reset flow only if the bit is set. If the bit is not
> set, trigger a normal PCI hot reset by skipping the call to the
> Management Reset and Shutdown Register (MRSR).
>
> Normal PCI hot reset is weaker than "all reset", but it results in a
> fully operational driver and allows users to flash a new firmware, if
> they want to.
>
> [1]
> mlxsw_spectrum4 0000:01:00.0: not ready 1023ms after bus reset; waiting
> mlxsw_spectrum4 0000:01:00.0: not ready 2047ms after bus reset; waiting
> mlxsw_spectrum4 0000:01:00.0: not ready 4095ms after bus reset; waiting
> mlxsw_spectrum4 0000:01:00.0: not ready 8191ms after bus reset; waiting
> mlxsw_spectrum4 0000:01:00.0: not ready 16383ms after bus reset; waiting
> mlxsw_spectrum4 0000:01:00.0: not ready 32767ms after bus reset; waiting
> mlxsw_spectrum4 0000:01:00.0: not ready 65535ms after bus reset; giving up
> mlxsw_spectrum4 0000:01:00.0: PCI function reset failed with -25
> mlxsw_spectrum4 0000:01:00.0: cannot register bus device
> mlxsw_spectrum4: probe of 0000:01:00.0 failed with error -25
>
> Fixes: f257c73e5356 ("mlxsw: pci: Add support for new reset flow")
> Cc: Simon Horman <horms@kernel.org>
> Reported-by: Maksym Yaremchuk <maksymy@nvidia.com>
> Signed-off-by: Ido Schimmel <idosch@nvidia.com>
> Tested-by: Maksym Yaremchuk <maksymy@nvidia.com>
> Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
next prev parent reply other threads:[~2024-06-19 14:50 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-17 16:55 [PATCH net 0/3] mlxsw: Fixes Petr Machata
2024-06-17 16:56 ` [PATCH net 1/3] mlxsw: pci: Fix driver initialization with Spectrum-4 Petr Machata
2024-06-19 14:50 ` Simon Horman [this message]
2024-06-17 16:56 ` [PATCH net 2/3] mlxsw: core_thermal: Fix driver initialization failure Petr Machata
2024-06-17 19:53 ` Wysocki, Rafael J
2024-06-18 6:55 ` Ido Schimmel
2024-06-17 16:56 ` [PATCH net 3/3] mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems Petr Machata
2024-06-19 14:51 ` Simon Horman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240619145040.GH690967@kernel.org \
--to=horms@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=idosch@nvidia.com \
--cc=kuba@kernel.org \
--cc=maksymy@nvidia.com \
--cc=mlxsw@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=petrm@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.