lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 7 Dec 2020 11:53:58 -0800 From: Randy Dunlap <rdunlap@...radead.org> To: mgross@...ux.intel.com, markgross@...nel.org, arnd@...db.de, bp@...e.de, damien.lemoal@....com, dragan.cvetic@...inx.com, gregkh@...uxfoundation.org, corbet@....net, leonard.crestez@....com, palmerdabbelt@...gle.com, paul.walmsley@...ive.com, peng.fan@....com, robh+dt@...nel.org, shawnguo@...nel.org Cc: linux-kernel@...r.kernel.org, Seamus Kelly <seamus.kelly@...el.com>, linux-doc@...r.kernel.org, Ryan Carnaghi <ryan.r.carnaghi@...el.com> Subject: Re: [PATCH 16/22] xlink-ipc: Add xlink ipc driver Ahoy-- On 12/1/20 2:35 PM, mgross@...ux.intel.com wrote: > From: Seamus Kelly <seamus.kelly@...el.com> > > Add xLink driver, which interfaces the xLink Core driver with the Keem > Bay VPU IPC driver, thus enabling xLink to control and communicate with > the VPU IP present on the Intel Keem Bay SoC. > > Specifically the driver enables xLink Core to: > > * Boot / Reset the VPU IP > * Register to VPU IP event notifications (device connected, device > disconnected, WDT event) > * Query the status of the VPU IP (OFF, BUSY, READY, ERROR, RECOVERY) > * Exchange data with the VPU IP, using the Keem Bay IPC mechanism > - Including the ability to send 'volatile' data (i.e., small amount of > data, up to 128-bytes that was not allocated in the CPU/VPU shared > memory region) > > Cc: linux-doc@...r.kernel.org > Reviewed-by: Mark Gross <mgross@...ux.intel.com> > Signed-off-by: Seamus Kelly <seamus.kelly@...el.com> > Signed-off-by: Ryan Carnaghi <ryan.r.carnaghi@...el.com> > --- > Documentation/vpu/index.rst | 1 + > Documentation/vpu/xlink-ipc.rst | 50 ++ > MAINTAINERS | 6 + > drivers/misc/Kconfig | 1 + > drivers/misc/Makefile | 1 + > drivers/misc/xlink-ipc/Kconfig | 7 + > drivers/misc/xlink-ipc/Makefile | 4 + > drivers/misc/xlink-ipc/xlink-ipc.c | 879 +++++++++++++++++++++++++++++ > include/linux/xlink-ipc.h | 48 ++ > 9 files changed, 997 insertions(+) > create mode 100644 Documentation/vpu/xlink-ipc.rst > create mode 100644 drivers/misc/xlink-ipc/Kconfig > create mode 100644 drivers/misc/xlink-ipc/Makefile > create mode 100644 drivers/misc/xlink-ipc/xlink-ipc.c > create mode 100644 include/linux/xlink-ipc.h > diff --git a/Documentation/vpu/xlink-ipc.rst b/Documentation/vpu/xlink-ipc.rst > new file mode 100644 > index 000000000000..af583579e70d > --- /dev/null > +++ b/Documentation/vpu/xlink-ipc.rst > @@ -0,0 +1,50 @@ > +.. SPDX-License-Identifier: GPL-2.0-only > + > +Kernel driver: xLink IPC driver > +================================= > +Supported chips: > + > +* | Intel Edge.AI Computer Vision platforms: Keem Bay > + | Suffix: Bay > + | Datasheet: (not yet publicly available) > + > +------------ > +Introduction > +------------ > + > +The xLink IPC driver interfaces the xLink Core driver with the Keem Bay VPU IPC > +driver, thus enabling xLink to control and communicate with the VPU IP present > +on the Intel Keem Bay SoC. > + > +Specifically the driver enables xLink Core to: > + > +* Boot / Reset the VPU IP > +* Register to VPU IP event notifications (device connected, device disconnected, > + WDT event) > +* Query the status of the VPU IP (OFF, BUSY, READY, ERROR, RECOVERY) > +* Exchange data with the VPU IP, using the Keem Bay IPC mechanism > + > + * Including the ability to send 'volatile' data (i.e., small amount of data, > + up to 128-bytes that was not allocated in the CPU/VPU shared memory region) > + > +Sending / Receiving 'volatile' data > +----------------------------------- > + > +Data to be exchanged with Keem Bay IPC needs to be allocated in the portion of > +DDR shared between the CPU and VPU. > + > +This can be impractical for small amount of data that user code can allocate amounts > +on the stack. > + > +To reduce the burden on user code, xLink Core provides special send / receive > +functions to send up to 128 bytes of 'volatile data', i.e., data that is not > +allocated in the shared memory and that might also disappear after the xLink > +API is called (e.g., because allocated on the stack). > + > +The xLink IPC driver implements support for transferring such 'volatile data' > +to the VPU using Keem Bay IPC. To this end, the driver reserved some memory in better: reserves > +the shared memory region. > + > +When volatile data is to be sent, xLink IPC allocates a buffer from the > +reserved memory region and copies the volatile data to the buffer. The buffer > +is then transferred to the VPU using Keem Bay IPC. > diff --git a/drivers/misc/xlink-ipc/Kconfig b/drivers/misc/xlink-ipc/Kconfig > new file mode 100644 > index 000000000000..6aa2592fe9a3 > --- /dev/null > +++ b/drivers/misc/xlink-ipc/Kconfig > @@ -0,0 +1,7 @@ > +config XLINK_IPC > + tristate "Support for XLINK IPC" > + depends on KEEMBAY_VPU_IPC > + help > + XLINK IPC enables the communication/control IPC Sub-System. > + > + Select M if you have an Intel SoC with a Vision Processing Unit (VPU) End that sentence with a '.', please. -- ~Randy
Powered by blists - more mailing lists