RE: Outstanding MQ questions from MMC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You can see how it's done in mmc_blk_ioctl_rpmb_cmd().

The RPMB protocol defines 6 types of accesses:
Accesses that performs read operation (read counter, read data, and read configuration) - requires sending 2 requests. 
Accesses that performs write operation (program key, write data, write configuration) - requires sending 3 requests,
But you must do read counter beforehand (accept from program key), hence the 5 different requests.

The standard does not define a "special" request that does it all in once, 
but expects a pre-define series of cmd18 & cmd25 for each access type, 
in which the payload are 512 bytes frames in a pre-defined structure.
  
Cheers,
Avri

> -----Original Message-----
> From: Linus Walleij [mailto:linus.walleij@xxxxxxxxxx]
> Sent: Saturday, April 15, 2017 9:35 PM
> To: Avri Altman <Avri.Altman@xxxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>; Ulf Hansson
> <ulf.hansson@xxxxxxxxxx>; linux-mmc@xxxxxxxxxxxxxxx; linux-
> block@xxxxxxxxxxxxxxx; Jens Axboe <axboe@xxxxxxxxx>; Christoph Hellwig
> <hch@xxxxxx>; Adrian Hunter <adrian.hunter@xxxxxxxxx>; Paolo Valente
> <paolo.valente@xxxxxxxxxx>
> Subject: Re: Outstanding MQ questions from MMC
> 
> On Fri, Apr 14, 2017 at 8:41 PM, Avri Altman <Avri.Altman@xxxxxxxxxxx>
> wrote:
> > [Me]
> >> 2. Turn RPMB and other ioctl() MMC operations into mmc_queue_req
> >>    things and funnel them into the block scheduler
> >>    using REQ_OP_DRV_IN/OUT requests.
> >>
> >
> > Accessing the RPMB is done via a strange protocol, in which each access is
> comprised of several requests.
> > For example, writing to the RPMB will require sending 5 different requests:
> > 2 requests to read the write counter, and then 3 more requests for the
> write operation itself.
> >
> > Once the sequence has started, it should not get interfered by other
> requests, or the operation will fail.
> 
> So I guess currently something takes a host lock and then performs the
> 5 requests.
> 
> Thus we need to send a single custom request containing a list of 5 things to
> do, and return after that.
> 
> Or do you mean that we return to userspace inbetween these different
> requests and the sequencing is done in userspace?
> 
> I hope not because that sounds fragile, like userspace could crash and leave
> the host lock dangling :/
> 
> Yours,
> Linus Walleij




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux