From: Jacob Keller <jacob.e.keller@intel.com>
To: Jakub Kicinski <kubakici@wp.pl>, Jiri Pirko <jiri@resnulli.us>
Cc: netdev@vger.kernel.org, Tom Herbert <tom@herbertland.com>,
Jiri Pirko <jiri@mellanox.com>, Jakub Kicinski <kuba@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Michael Chan <michael.chan@broadcom.com>,
Bin Luo <luobin9@huawei.com>,
Saeed Mahameed <saeedm@mellanox.com>,
Leon Romanovsky <leon@kernel.org>,
Ido Schimmel <idosch@mellanox.com>,
Danielle Ratson <danieller@mellanox.com>
Subject: Re: [RFC PATCH net-next v2 6/6] devlink: add overwrite mode to flash update
Date: Mon, 20 Jul 2020 11:52:58 -0700 [thread overview]
Message-ID: <078815e8-637c-10d0-b4ec-9485b1be5df0@intel.com> (raw)
In-Reply-To: <20200720085159.57479106@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
On 7/20/2020 8:51 AM, Jakub Kicinski wrote:
> On Mon, 20 Jul 2020 12:09:53 +0200 Jiri Pirko wrote:
>> This looks odd. You have a single image yet you somehow divide it
>> into "program" and "config" areas. We already have infra in place to
>> take care of this. See DEVLINK_ATTR_FLASH_UPDATE_COMPONENT.
>> You should have 2 components:
>> 1) "program"
>> 2) "config"
>>
First off, unfortunately at least for ice, the "main" section of NVM
contains both the management firmware as well as config settings. I
don't really have a way to split it up.
This series includes support for updating the main NVM section
containing the management firmware (and some config) "fw.mgmt", as well
as "fw.undi" which contains the OptionROM, and "fw.netlist" which
contains additional configuration TLVs.
The firmware interface allows me to separate the three components, but
does not let me separate the "fw binary" from the "config settings" that
are stored within the main NVM bank. (These fields include other data
like the device MAC address and VPD area of the device too, so using
"config" is a bit of a misnomer).
>> Then it is up to the user what he decides to flash.
>
> 99.9% of the time users want to flash "all". To achieve "don't flash
> config" with current infra users would have to flash each component
> one by one and then omit the one(s) which is config (guessing which
> one that is based on the name).
>
> Wouldn't this be quite inconvenient?
>
I also agree here, I'd like to be able to make the "update with the
complete file" just work in the most straight forward way (i.e. without
erasing stuff by accident) be the default.
The option I'm proposing here is to enable allowing tools to optionally
specify handling this type of overwrite. The goal is to support these
use cases:
a) (default) just update the image, but keep the config and vital data
the same as before the update.
b) overwrite config fields, but keep vital fields the same. Intended to
allow returning configuration to "image defaults". This mostly is
intended in case regular update caused some issues like if somehow the
config preservation didn't work properly.
c) overwrite all fields. The intention here is to allow programming a
customized image during initial setup that would contain new IDs etc. It
is not expected to be used in general, as this does overwrite vital data
like the MAC addresses and such.
So the problem is that the vital data, config data, and firmware
binaries are stored in the same section, without a good way to separate
between them. We program all of these together as one chunk to the
"secondary NVM bank" and then ask firmware to update. It reads through
and based on our "preservation" setting will update the binaries and
merge the configuration sections.
> In case of MLX is PSID considered config?
>
next prev parent reply other threads:[~2020-07-20 18:53 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-17 18:35 [RFC PATCH net-next v2 0/6] introduce PLDM firmware update library Jacob Keller
2020-07-17 18:35 ` [RFC PATCH net-next v2 1/6] ice: Add support for unified NVM update flow capability Jacob Keller
2020-07-17 18:35 ` [RFC PATCH net-next v2 2/6] ice: Add AdminQ commands for FW update Jacob Keller
2020-07-17 18:35 ` [RFC PATCH net-next v2 3/6] ice: add flags indicating pending update of firmware module Jacob Keller
2020-07-17 18:35 ` [RFC PATCH net-next v2 4/6] Add pldmfw library for PLDM firmware update Jacob Keller
2020-07-17 18:35 ` [RFC PATCH net-next v2 5/6] ice: implement device flash update via devlink Jacob Keller
2020-07-20 5:26 ` kernel test robot
2020-07-23 23:33 ` Jacob Keller
2020-07-17 18:35 ` [RFC PATCH net-next v2 6/6] devlink: add overwrite mode to flash update Jacob Keller
2020-07-20 10:09 ` Jiri Pirko
2020-07-20 15:51 ` Jakub Kicinski
2020-07-20 18:52 ` Jacob Keller [this message]
2020-07-21 13:56 ` Jiri Pirko
2020-07-21 17:28 ` Jacob Keller
2020-07-21 13:53 ` Jiri Pirko
2020-07-21 17:04 ` Jakub Kicinski
2020-07-21 17:31 ` Jacob Keller
2020-07-22 10:51 ` Jiri Pirko
2020-07-22 15:30 ` Keller, Jacob E
2020-07-22 16:52 ` Jakub Kicinski
2020-07-22 18:21 ` Jacob Keller
2020-07-26 7:18 ` Jiri Pirko
2020-07-27 18:11 ` Jacob Keller
2020-07-29 22:49 ` Jacob Keller
2020-07-29 23:16 ` Jakub Kicinski
2020-07-29 23:59 ` Jacob Keller
2020-07-26 7:16 ` Jiri Pirko
2020-07-27 18:13 ` Jacob Keller
2020-07-28 11:19 ` Jiri Pirko
2020-07-28 16:58 ` Jacob Keller
2020-07-28 17:09 ` Jakub Kicinski
2020-07-28 17:43 ` Jacob Keller
2020-07-28 22:59 ` Jacob Keller
2020-07-17 19:58 ` [RFC PATCH net-next v2 0/6] introduce PLDM firmware update library Jakub Kicinski
2020-07-17 21:00 ` Keller, Jacob E
2020-07-17 21:08 ` Keller, Jacob E
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=078815e8-637c-10d0-b4ec-9485b1be5df0@intel.com \
--to=jacob.e.keller@intel.com \
--cc=corbet@lwn.net \
--cc=danieller@mellanox.com \
--cc=idosch@mellanox.com \
--cc=jiri@mellanox.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=kubakici@wp.pl \
--cc=leon@kernel.org \
--cc=luobin9@huawei.com \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@mellanox.com \
--cc=tom@herbertland.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.