From: Tomas Winkler <tomas.winkler@intel.com>
To: gregkh@linuxfoundation.org, Ulf Hansson <ulf.hansson@linaro.org>,
Adrian Hunter <adrian.hunter@intel.com>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Vinayak Holikatti <vinholikatti@gmail.com>,
Andy Lutomirski <luto@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>,
Yaniv Gardi <ygardi@codeaurora.org>,
Joao Pinto <Joao.Pinto@synopsys.com>,
linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-kernel@vger.kernel.org,
Tomas Winkler <tomas.winkler@intel.com>
Subject: [PATCH 0/8 V2] Replay Protected Memory Block (RPMB) subsystem
Date: Mon, 4 Apr 2016 14:11:16 +0300 [thread overview]
Message-ID: <1459768284-26997-1-git-send-email-tomas.winkler@intel.com> (raw)
Few storage technology such is EMMC, UFS, and NVMe support RPMB
hardware partition with common protocol and frame layout.
The RPMB partition cannot be accessed via standard block layer, but
by a set of specific commands: WRITE, READ, GET_WRITE_COUNTER, and
PROGRAM_KEY.
Such a partition provides authenticated and replay protected access,
hence suitable as a secure storage.
A storage device registers its RPMB hardware (emmc) partition or
RPMB W-LUN (ufs) with the RPMB layer providing an implementation for
send_rpmb_req() handler.
Tere is as well simulation platform device. This is handy as an RPMB
key can be programmed only once at storage device lifetime.
ThePMB layer aims to provide in-kernel API for Trusted Execution
Environment (TEE) devices that are capable to securely compute block
frame signature. In case a TEE device wish to store a replay protected
data, it creates an RPMB frame with requested data and computes HMAC of
the frame, then it requests the storage device via RPMB layer to store
the data.
A TEE driver can claim rpmb interface, for example,
via class_interface_register ().
A parallel user space API is provided via /dev/rpmbX character
device with a single IOCTL command similar to the one provided by
mmc/ioctl. h
There is a sample tool under tools/rpmb/ directory that exercises
this interface.
Tomas Winkler (8):
rpmb: add Replay Protected Memory Block (RPMB) subsystem
char: rpmb: add sysfs-class ABI documentation
char: rpmb: add device attributes
char: rpmb: provide user space interface
char: rpmb: add RPMB simulation device
tools rpmb: add RPBM access tool
mmc: block: register rpmb partition with the RPMB subsystem
scsi: ufs: connect to RPMB subsystem
Documentation/ABI/testing/sysfs-class-rpmb | 39 ++
Documentation/ioctl/ioctl-number.txt | 1 +
MAINTAINERS | 10 +
drivers/char/Kconfig | 2 +
drivers/char/Makefile | 1 +
drivers/char/rpmb/Kconfig | 25 +
drivers/char/rpmb/Makefile | 6 +
drivers/char/rpmb/cdev.c | 209 ++++++++
drivers/char/rpmb/core.c | 408 +++++++++++++++
drivers/char/rpmb/rpmb-cdev.h | 31 ++
drivers/char/rpmb/rpmb_sim.c | 584 +++++++++++++++++++++
drivers/mmc/card/block.c | 289 +++++++++++
drivers/scsi/ufs/ufshcd.c | 219 ++++++++
drivers/scsi/ufs/ufshcd.h | 2 +
include/linux/rpmb.h | 138 +++++
include/uapi/linux/rpmb.h | 120 +++++
tools/Makefile | 16 +-
tools/rpmb/.gitignore | 2 +
tools/rpmb/Makefile | 32 ++
tools/rpmb/rpmb.c | 807 +++++++++++++++++++++++++++++
20 files changed, 2936 insertions(+), 5 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-class-rpmb
create mode 100644 drivers/char/rpmb/Kconfig
create mode 100644 drivers/char/rpmb/Makefile
create mode 100644 drivers/char/rpmb/cdev.c
create mode 100644 drivers/char/rpmb/core.c
create mode 100644 drivers/char/rpmb/rpmb-cdev.h
create mode 100644 drivers/char/rpmb/rpmb_sim.c
create mode 100644 include/linux/rpmb.h
create mode 100644 include/uapi/linux/rpmb.h
create mode 100644 tools/rpmb/.gitignore
create mode 100644 tools/rpmb/Makefile
create mode 100644 tools/rpmb/rpmb.c
--
2.4.3
next reply other threads:[~2016-04-04 11:12 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-04 11:11 Tomas Winkler [this message]
2016-04-04 11:11 ` [PATCH v2 1/8] rpmb: add " Tomas Winkler
2016-04-04 11:11 ` [PATCH v2 2/8] char: rpmb: add sysfs-class ABI documentation Tomas Winkler
2016-04-04 11:11 ` [PATCH v2 3/8] char: rpmb: add device attributes Tomas Winkler
2016-04-04 11:11 ` [PATCH v2 4/8] char: rpmb: provide user space interface Tomas Winkler
2016-04-04 11:11 ` [PATCH v2 5/8] char: rpmb: add RPMB simulation device Tomas Winkler
2016-04-04 11:11 ` [PATCH v2 6/8] tools rpmb: add RPBM access tool Tomas Winkler
2016-04-05 12:16 ` kbuild test robot
2016-04-11 10:50 ` Winkler, Tomas
2016-04-05 12:29 ` kbuild test robot
2016-04-05 12:31 ` kbuild test robot
2016-04-11 13:33 ` Josh Poimboeuf
2016-04-04 11:11 ` [PATCH v2 7/8] mmc: block: register rpmb partition with the RPMB subsystem Tomas Winkler
2016-04-04 11:11 ` [PATCH v2 8/8] scsi: ufs: connect to " Tomas Winkler
2016-04-06 8:51 ` Joao Pinto
2016-04-07 21:15 ` Winkler, Tomas
2016-04-08 9:24 ` Joao Pinto
2016-04-08 11:17 ` Joao Pinto
2016-04-08 11:21 ` Joao Pinto
2016-04-08 17:29 ` Joao Pinto
2016-04-08 20:33 ` Winkler, Tomas
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=1459768284-26997-1-git-send-email-tomas.winkler@intel.com \
--to=tomas.winkler@intel.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=Joao.Pinto@synopsys.com \
--cc=adrian.hunter@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=luto@kernel.org \
--cc=martin.petersen@oracle.com \
--cc=ulf.hansson@linaro.org \
--cc=vinholikatti@gmail.com \
--cc=ygardi@codeaurora.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
all inboxes | Powered by JetHome®