linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gwendal Grignou <gwendal@chromium.org>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Alex Lemberg <Alex.Lemberg@sandisk.com>,
	Holger Schurig <holgerschurig@gmail.com>,
	Avi Shchislowski <Avi.Shchislowski@sandisk.com>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Chris Ball <chris@printf.net>,
	Baolin Wang <baolin.wang@linaro.org>
Subject: Re: [RFC 0/6] mmc: Field Firmware Update
Date: Fri, 1 Apr 2016 17:23:19 -0700	[thread overview]
Message-ID: <CAMHSBOUCT0mQfpN6+7NfeaR5wKMOizQeH__-j9fup1Y-H48Wcg@mail.gmail.com> (raw)
In-Reply-To: <CAPDyKFopp9gaaPu_DBR0Rpcsu6BCXu5DexXiVxYv9v5uX150jw@mail.gmail.com>

On Thu, Jan 14, 2016 at 5:16 AM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> On 28 December 2015 at 15:12, Alex Lemberg <Alex.Lemberg@sandisk.com> wrote:
>> Hi Ulf,
>>
>> We succeeded to run FFU via new mmc multi-command ioctl without any code modification,
>> but only by using Single Sector commands (CMD24).
>>
>> From running the FFU and from code review, we see two minor issues in this way of running FFU:
>> 1. There is no support for Multiple Block write commands (CMD25) in existing IOCTL implementation -
>
> That's right. But I guess we cope without the multiple block support!?
>
> Although, I wonder how hard it would be to add it...
>
>> seems like there is no polling for the card status on data transfer completion.
>
> We should fix that!
>
> In the rpmb case, we check the status so we can probably trigger that
> code to run for CMD24/25 as well.
>
>> (The kernel FFU implementation supports FFU using Multiple Block Write commands).
>> 2. As you probably remember, there are two ways to install the new FW in the end of FFU process -
>> In case MODE_OPERATION_CODES field is not supported by the device, the host sets to NORMAL state
>
> Before starting the update, you can find out which mode that is
> supported and take relevant actions, right?
>
>> and initiates a CMD0/HW_Reset/Power cycle to install the new firmware.
>
> Yes, but that's fragile - as discussed earlier.
>
> What we really need to do is to also remove the "card" device from the
> system, as otherwise we may have invalid data in its member variables
> and who knows what issues that can cause to upper levels.
>
>> This sequence cannot be done via multi-command ioctl, and requires manual reset of the device/platform.
>
> Yepp, it seems so at least for now. Perhaps we can think of a way to
> improve this?
>
>> (The kernel FFU implementation supports both FW install methods).
>>
>> For running FFU via new mmc multi-command ioctl, we have modified mmc-utils and add new functionality for FFU.
>> Please let us know if you want us to submit the patch for mmc-utils FFU functionality via multi-command ioctl.
>
> Yes please. Don't forget to send this to Chris as well!
I am arriving after the battle, but I have finally rebased the eMMC
FFU kernel ffu code to 4.x. It is based on what Avi and Alex have
written.
As stated earlier, the advantage over using MMC_MUTLI_CMD is we can
force a reset and rescan of the card without asking the user to reboot
their machine.
Also, by only sending a firmware name over the ioctl, we can use Kees'
work for firmware validation (https://lwn.net/Articles/605432/).
To prevent downloading firmware from unknown source, we would reject
some commands (like SWITCH with FFU_MODE) in the kernel
MMC_IOC/MULTI_CMD ioctl handler.

Gwendal.
>
> [...]
>
> Kind regards
> Uffe
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-04-02  0:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-13 14:56 [RFC 0/6] mmc: Field Firmware Update Holger Schurig
2015-11-13 14:56 ` [PATCH 1/6] mmc: move mmc_prepare_mrq() to core.c Holger Schurig
2015-11-13 14:56 ` [PATCH 2/6] mmc: move mmc_wait_busy() to core Holger Schurig
2015-11-13 14:56 ` [PATCH 3/6] mmc: move mmc_check_result() to core.c Holger Schurig
2015-11-13 14:56 ` [PATCH 4/6] mmc: move mmc_simple_transfer() " Holger Schurig
2015-11-13 14:56 ` [PATCH 5/6] mmc: move mmc_send_cxd_data() " Holger Schurig
2015-11-13 14:56 ` [PATCH 6/6] mmc: eMMC Field Firmware Update support Holger Schurig
2015-11-20 14:20 ` [RFC 0/6] mmc: Field Firmware Update Alan Cooper
2015-11-23 11:40 ` Avi Shchislowski
     [not found]   ` <CAOpc7mHbM8EYYNRKR+pKnzc0wf1DR1ojX-iFuDWDYyquC3EVZg@mail.gmail.com>
2015-12-15 15:35     ` Ulf Hansson
2015-12-22  8:15       ` Holger Schurig
2015-12-22  8:55         ` Ulf Hansson
2015-12-22  8:57           ` Ulf Hansson
2015-12-22 18:44             ` Olof Johansson
     [not found]               ` <CAG=SpYGf7czPwLrJVrq49n_Lhph33fmyKq-Nkm6=c0fB1Gn9_w@mail.gmail.com>
2016-01-14 12:50                 ` Ulf Hansson
2015-12-28 14:12         ` Alex Lemberg
2016-01-14 13:16           ` Ulf Hansson
2016-04-02  0:23             ` Gwendal Grignou [this message]
2016-04-04 11:50               ` Ulf Hansson
2016-04-13 22:33                 ` Gwendal Grignou
2016-04-14  8:35                   ` Ulf Hansson

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=CAMHSBOUCT0mQfpN6+7NfeaR5wKMOizQeH__-j9fup1Y-H48Wcg@mail.gmail.com \
    --to=gwendal@chromium.org \
    --cc=Alex.Lemberg@sandisk.com \
    --cc=Avi.Shchislowski@sandisk.com \
    --cc=baolin.wang@linaro.org \
    --cc=chris@printf.net \
    --cc=holgerschurig@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=ulf.hansson@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).