[meta-intel] Yocto meta-intel LMS patch:

Wold, Saul saul.wold at intel.com
Thu Jul 6 21:16:16 PDT 2017


Please review the 

https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
 
and 

https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines

On how to properly submit a patch to meta-intel at yoctoproject.org.

This is not correctly formatted and the internal 0003* patch does not
contain a properly formatted commit message with Upsteam-Status: and
Signed-off-by:

Please correct this and re-submit.

Sau!
 
On Thu, 2017-07-06 at 23:12 +0000, Vastrad, Anand wrote:
> Hi meta-intel at yocto
>  
> LMS8 is currently broken on meta-intel Yocto repository. Attached
> patch(same as below plain text) gets LMS8 working on meta-intel
> Yocto.
> Please pick this patch into meta-intel Yocto.
>  
> Thanks,
> Anand Vastrad
> -------------------------------------------------------------------
> ---
>  
> Added /dev/mei0 device file reference. Fix select timeout on
> SendMessage.
>  
> LMS uses /dev/mei character device which is absent on current kernel
> versions causing LMS fail to initialize. LMS sends messages to MEI
> with a post select timeout. Select timeout causes SendMessage to fail
> causing LMS to not to communicate properly with MEI.
>  
> Adding /dev/mei0 device file reference to check first and then
> /dev/mei sucessfully initializes LMS. Rely on write return length and
> remove select with timeout to fix communication with MEI.
>  
> Signed-off-by: Anand Vishwanath Vastrad <anand.vastrad at intel.com>
>  
> diff --git a/common/recipes-bsp/amt/lms/0003-device-file-reference-
> fix.patch b/common/recipes-bsp/amt/lms/0003-device-file-reference-
> fix.patch
> new file mode 100644
> index 0000000..d616731
> --- /dev/null
> +++ b/common/recipes-bsp/amt/lms/0003-device-file-reference-fix.patch
> @@ -0,0 +1,73 @@
> +--- lms8_8.0.0-7.orig/src/mei/MEILinux.cpp 2012-10-11
> 05:16:05.000000000 -0700
> ++++ lms8_8.0.0-7/src/mei/MEILinux.cpp 2017-06-21 15:14:13.725853901
> -0700
> +@@ -94,13 +94,17 @@
> +          Deinit();
> +    }
> +
> +-   _fd = open("/dev/mei", O_RDWR);
> ++   _fd = open("/dev/mei0", O_RDWR);
> +
> +    if (_fd == -1 ) {
> +          if (_verbose) {
> +-              fprintf(stderr, "Error: Cannot establish a handle to
> the MEI driver\n");
> ++              fprintf(stderr, "Warning: Cannot establish a handle
> to the MEI driver mei0, retrying with mei \n");
> ++         }
> ++         _fd = open("/dev/mei", O_RDWR);
> ++         if (_fd == -1 ) {
> ++              fprintf(stderr, "Error: Cannot establish a handle to
> the MEI driver mei\n");
> ++              return false;
> +          }
> +-         return false;
> +    }
> +    _initialized = true;
> +
> +@@ -181,13 +185,7 @@
> + int MEILinux::SendMessage(const unsigned char *buffer, int len,
> unsigned long timeout)
> + {
> +    int rv = 0;
> +-   int return_length =0;
> +    int error = 0;
> +-   fd_set set;
> +-   struct timeval tv;
> +-
> +-   tv.tv_sec =  timeout / 1000;
> +-   tv.tv_usec =(timeout % 1000) * 1000000;
> +
> +    if (_verbose) {
> +          fprintf(stdout, "call write length = %d\n", len);
> +@@ -198,35 +196,8 @@
> +          if (_verbose) {
> +               fprintf(stderr,"write failed with status %d %d\n",
> rv, error);
> +          }
> +-         goto out;
> +-   }
> +-
> +-   return_length = rv;
> +-
> +-   FD_ZERO(&set);
> +-   FD_SET(_fd, &set);
> +-   rv = select(_fd+1 ,&set, NULL, NULL, &tv);
> +-   if (rv > 0 && FD_ISSET(_fd, &set)) {
> +-         if (_verbose) {
> +-              fprintf(stderr, "write success\n");
> +-         }
> +    }
> +-   else if (rv == 0) {
> +-         if (_verbose) {
> +-              fprintf(stderr, "write failed on timeout with
> status\n");
> +-         }
> +-         goto out;
> +-   }
> +-   else { //rv<0
> +-         if (_verbose) {
> +-              fprintf(stderr, "write failed on select with status
> %d\n", rv);
> +-         }
> +-         goto out;
> +-   }
> +-
> +-   rv = return_length;
> +
> +-out:
> +    if (rv < 0) {
> +          Deinit();
> +    }
> diff --git a/common/recipes-bsp/amt/lms8_8.0.0-7.bb b/common/recipes-
> bsp/amt/lms8_8.0.0-7.bb
> index 842e34a..e50b3e8 100644
> --- a/common/recipes-bsp/amt/lms8_8.0.0-7.bb
> +++ b/common/recipes-bsp/amt/lms8_8.0.0-7.bb
> @@ -12,6 +12,7 @@ SRC_URI = "http://software.intel.com/sites/default/
> files/${BPN}-${PV}.tar.gz \
>             file://0001-Protocol.cpp-Add-whitespace-for-gcc6-compile-
> error.patch \
>             file://0001-Include-sys-select.h-for-fd_set.patch \
>             file://0002-Use-proper-netinet-in.h-API.patch \
> +           file://0003-device-file-reference-fix.patch \
>             "
>  COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
>  
>  


More information about the meta-intel mailing list