RE: [EXT] Re: [PATCH v7,net-next,07/13] crypto: octeontx2: load microcode and create engine groups

Srujana Challa
2020-10-15T08:30:21Z

> Subject: [EXT] Re: [PATCH v7,net-next,07/13] crypto: octeontx2: load microcode
> and create engine groups
>
> External Email
>
> ----------------------------------------------------------------------
> On Mon, 12 Oct 2020 16:27:13 +0530 Srujana Challa wrote:
> > +/* tar header as defined in POSIX 1003.1-1990. */
> > +struct tar_hdr_t {
> > + char name[100];
> > + char mode[8];
> > + char uid[8];
> > + char gid[8];
> > + char size[12];
> > + char mtime[12];
> > + char chksum[8];
> > + char typeflag;
> > + char linkname[100];
> > + char magic[6];
> > + char version[2];
> > + char uname[32];
> > + char gname[32];
> > + char devmajor[8];
> > + char devminor[8];
> > + char prefix[155];
> > +};
> > +
> > +struct tar_blk_t {
> > + union {
> > + struct tar_hdr_t hdr;
> > + char block[TAR_BLOCK_LEN];
> > + };
> > +};
>
> In networking we've been pushing back on parsing firmware files
> in the kernel. Why do you need to parse tar archives?

We have 3 variants of crypto engines and each uses a different firmware file. So instead of 3 independent files in /lib/firmware, we have a consolidated tar file. The tar file is a container.
Minimal parsing of firmware file is required to ensure parity between engine, firmware and driver. For example we verify version compatibility.