[dpdk-dev] [PATCH v2 1/8] crypto/bcmfs: add BCMFS driver
Vikas Gupta
vikas.gupta at broadcom.com
Tue Sep 29 12:52:01 CEST 2020
Hi Akhil,
On Tue, Sep 29, 2020 at 12:19 AM Akhil Goyal <akhil.goyal at nxp.com> wrote:
>
> Hi Vikas,
>
> > +BCMFS crypto PMD depend upon the devices present in the path
> > +/sys/bus/platform/devices/fs<version>/<dev_name> on the platform.
> > +Each cryptodev PMD instance can be attached to the nodes present
> > +in the mentioned path.
>
> It would be good, if you can mention the details about the SDKs which need
> To be installed, any kernel dependencies if any.
> The device path mentioned is from which rootfs? This looks incomplete documentation.
Ok sure I`ll add missing items in next patch set.
>
> > diff --git a/doc/guides/cryptodevs/index.rst b/doc/guides/cryptodevs/index.rst
> > index a67ed5a28..5d7e028bd 100644
> > --- a/doc/guides/cryptodevs/index.rst
> > +++ b/doc/guides/cryptodevs/index.rst
> > @@ -29,3 +29,4 @@ Crypto Device Drivers
> > qat
> > virtio
> > zuc
> > + bcmfs
>
> It is better to maintain an alphabetical order.
Sure.
>
> > diff --git a/drivers/crypto/bcmfs/bcmfs_device.c
> > b/drivers/crypto/bcmfs/bcmfs_device.c
> > new file mode 100644
> > index 000000000..47c776de6
> > --- /dev/null
> > +++ b/drivers/crypto/bcmfs/bcmfs_device.c
> > @@ -0,0 +1,256 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * Copyright(C) 2020 Broadcom.
> > + * All rights reserved.
> > + */
> > +
> > +#include <dirent.h>
> > +#include <stdbool.h>
> > +#include <sys/queue.h>
> > +
> > +#include <rte_string_fns.h>
> > +
> > +#include "bcmfs_device.h"
> > +#include "bcmfs_logs.h"
> > +
> > +struct bcmfs_device_attr {
> > + const char name[BCMFS_MAX_PATH_LEN];
> > + const char suffix[BCMFS_DEV_NAME_LEN];
> > + const enum bcmfs_device_type type;
> > + const uint32_t offset;
> > + const uint32_t version;
> > +};
> > +
> > +/* BCMFS supported devices */
> > +static struct bcmfs_device_attr dev_table[] = {
> > + {
> > + .name = "fs4",
> > + .suffix = "crypto_mbox",
> > + .type = BCMFS_SYM_FS4,
> > + .offset = 0,
> > + .version = 0x76303031
> > + },
> > + {
> > + .name = "fs5",
> > + .suffix = "mbox",
> > + .type = BCMFS_SYM_FS5,
> > + .offset = 0,
> > + .version = 0x76303032
> > + },
> > + {
> > + /* sentinel */
> > + }
> > +};
> > +
> > +TAILQ_HEAD(fsdev_list, bcmfs_device);
> > +static struct fsdev_list fsdev_list = TAILQ_HEAD_INITIALIZER(fsdev_list);
> > +
> > +static struct bcmfs_device *
> > +fsdev_allocate_one_dev(struct rte_vdev_device *vdev,
> > + char *dirpath,
> > + char *devname,
> > + enum bcmfs_device_type dev_type __rte_unused)
> > +{
> > + struct bcmfs_device *fsdev;
> > +
> > + fsdev = calloc(1, sizeof(*fsdev));
>
> Can we use rte_calloc
will fix it in next patch set.
>
> > + if (!fsdev)
> > + return NULL;
> > +
> > + if (strlen(dirpath) > sizeof(fsdev->dirname)) {
> > + BCMFS_LOG(ERR, "dir path name is too long");
> > + goto cleanup;
> > + }
> > +
> > + if (strlen(devname) > sizeof(fsdev->name)) {
> > + BCMFS_LOG(ERR, "devname is too long");
> > + goto cleanup;
> > + }
> > +
> > + strcpy(fsdev->dirname, dirpath);
> > + strcpy(fsdev->name, devname);
> > +
> > + fsdev->vdev = vdev;
> > +
> > + TAILQ_INSERT_TAIL(&fsdev_list, fsdev, next);
> > +
> > + return fsdev;
> > +
> > +cleanup:
> > + free(fsdev);
> > +
> > + return NULL;
> > +}
> > +
>
> <snip>
>
> > diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
> > index a2423507a..8e06d0533 100644
> > --- a/drivers/crypto/meson.build
> > +++ b/drivers/crypto/meson.build
> > @@ -23,7 +23,8 @@ drivers = ['aesni_gcm',
> > 'scheduler',
> > 'snow3g',
> > 'virtio',
> > - 'zuc']
> > + 'zuc',
> > + 'bcmfs']
>
> Please maintain an alphabetical order.
Sure.
More information about the dev
mailing list