From: Denys Dmytriyenko <denys@ti.com>
To: Carlos Hernandez <ceh@ti.com>
Cc: meta-arago@arago-project.org
Subject: Re: [PATCH 1/3 v2] meta-arago-distro/recipes-devtools: serialcheck recipe
Date: Tue, 3 Mar 2015 19:37:48 -0500 [thread overview]
Message-ID: <20150304003748.GA6052@edge> (raw)
In-Reply-To: <1425312208-9221-1-git-send-email-ceh@ti.com>
On Mon, Mar 02, 2015 at 11:03:28AM -0500, Carlos Hernandez wrote:
> Serialcheck is a simple utility to verify serial ports functionality.
> It supports all "standard" bauds listed in
> include/uapi/asm-generic/termbits.h
Looks good, thanks. Just a small clarification - I see you install it in /bin
instead of more standard /usr/bin. Is there any special reason for that?
> Signed-off-by: Carlos Hernandez <ceh@ti.com>
> ---
> ...01-Add-option-to-enable-internal-loopback.patch | 80 ++++++++++++++++++++++
> .../0002-Restore-original-loopback-config.patch | 48 +++++++++++++
> .../serialcheck/serialcheck_1.0.0.bb | 20 ++++++
> 3 files changed, 148 insertions(+)
> create mode 100644 meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
> create mode 100644 meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
> create mode 100644 meta-arago-distro/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
>
> diff --git a/meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch b/meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
> new file mode 100644
> index 0000000..fc387d7
> --- /dev/null
> +++ b/meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
> @@ -0,0 +1,80 @@
> +From 059d5512e840fe68e2bb37add6c9208fa9c34d15 Mon Sep 17 00:00:00 2001
> +From: Sekhar Nori <nsekhar@ti.com>
> +Date: Tue, 24 Feb 2015 22:16:37 +0530
> +Subject: [PATCH 1/2] Add option to enable internal loopback
> +
> +---
> + serialcheck.c | 23 +++++++++++++++++++++++
> + 1 file changed, 23 insertions(+)
> +
> +diff --git a/serialcheck.c b/serialcheck.c
> +index 4f5b747..4100c37 100644
> +--- a/serialcheck.c
> ++++ b/serialcheck.c
> +@@ -12,6 +12,8 @@
> + #include <sys/ioctl.h>
> + #include <linux/serial.h>
> +
> ++#define TIOCM_LOOP 0x8000
> ++
> + #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
> + #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
> + #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
> +@@ -40,6 +42,7 @@ struct g_opt {
> + unsigned char hflow;
> + unsigned char do_termios;
> + unsigned char *cmp_buff;
> ++ unsigned char loopback;
> + };
> +
> + /* name, key, arg, flags, doc, group */
> +@@ -51,6 +54,7 @@ static struct argp_option options[] = {
> + {"mode", 'm', "M", 0, "transfer mode (d = duplex, t = send r = receive)", 0},
> + {"loops", 'l', "NUM", 0, "loops to perform (0 => wait fot CTRL-C", 0},
> + {"no-termios", 'n', NULL, 0, "No termios change (baud rate etc. remains unchanged)", 0},
> ++ {"loopback", 'k', NULL, 0, "loopback mode", 0},
> + {NULL, 0, NULL, 0, NULL, 0}
> + };
> +
> +@@ -67,6 +71,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
> + go->baudrate = 115200;
> + go->loops = UINT_MAX;
> + go->do_termios = 1;
> ++ go->loopback = 0;
> + break;
> + case ARGP_KEY_ARG:
> + ret = ARGP_ERR_UNKNOWN;
> +@@ -113,6 +118,9 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
> + } else
> + go->loops = num;
> + break;
> ++ case 'k':
> ++ go->loopback = 1;
> ++ break;
> + default:
> + ret = ARGP_ERR_UNKNOWN;
> + }
> +@@ -487,6 +495,21 @@ int main(int argc, char *argv[])
> + die("tcflush failed: %m\n");
> + }
> +
> ++ if (opts.loopback) {
> ++ unsigned int mcr;
> ++
> ++ ret = ioctl(fd, TIOCMGET, &mcr);
> ++ if (ret < 0)
> ++ die("mcr get failed: %m\n");
> ++
> ++ mcr |= TIOCM_LOOP;
> ++
> ++ ret = ioctl(fd, TIOCMSET, &mcr);
> ++ if (ret < 0)
> ++ die ("mcr set failed: %m\n");
> ++
> ++ }
> ++
> + ret = fcntl(fd, F_SETFL, 0);
> + if (ret)
> + printf("Failed to remove nonblock mode\n");
> +--
> +1.9.1
> diff --git a/meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch b/meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
> new file mode 100644
> index 0000000..c9478fc
> --- /dev/null
> +++ b/meta-arago-distro/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
> @@ -0,0 +1,48 @@
> +From a6e5813d2f8402bf3a311c8bcda02623bfb76882 Mon Sep 17 00:00:00 2001
> +From: Carlos Hernandez <ceh@ti.com>
> +Date: Tue, 24 Feb 2015 16:00:34 -0500
> +Subject: [PATCH 2/2] Restore original loopback config
> +
> +If loopback option is enabled. Disabled it at the end of the test.
> +
> +Signed-off-by: Carlos Hernandez <ceh@ti.com>
> +---
> + serialcheck.c | 9 +++++++--
> + 1 file changed, 7 insertions(+), 2 deletions(-)
> +
> +diff --git a/serialcheck.c b/serialcheck.c
> +index 4100c37..06470f7 100644
> +--- a/serialcheck.c
> ++++ b/serialcheck.c
> +@@ -427,6 +427,7 @@ int main(int argc, char *argv[])
> + unsigned char *data;
> + unsigned int open_mode;
> + off_t data_len;
> ++ unsigned int mcr;
> +
> + argp_parse(&argp, argc, argv, 0, NULL, &opts);
> + if (!opts.file_trans)
> +@@ -496,8 +497,6 @@ int main(int argc, char *argv[])
> + }
> +
> + if (opts.loopback) {
> +- unsigned int mcr;
> +-
> + ret = ioctl(fd, TIOCMGET, &mcr);
> + if (ret < 0)
> + die("mcr get failed: %m\n");
> +@@ -535,6 +534,12 @@ int main(int argc, char *argv[])
> + ret = tcsetattr(fd, TCSAFLUSH, &old_term);
> + if (ret)
> + printf("tcsetattr() of old ones failed: %m\n");
> ++ if (opts.loopback) {
> ++ mcr &= ~(TIOCM_LOOP);
> ++ ret = ioctl(fd, TIOCMSET, &mcr);
> ++ }
> ++ if (ret)
> ++ printf("disabling loopback failed: %m\n");
> +
> + close(fd);
> + return status;
> +--
> +1.9.1
> diff --git a/meta-arago-distro/recipes-devtools/serialcheck/serialcheck_1.0.0.bb b/meta-arago-distro/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
> new file mode 100644
> index 0000000..6929ffc
> --- /dev/null
> +++ b/meta-arago-distro/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
> @@ -0,0 +1,20 @@
> +SUMMARY = "Application to verify operation of serial ports"
> +HOMEPAGE = "git://git.breakpoint.cc/bigeasy/serialcheck.git"
> +LICENSE = "GPLv2"
> +
> +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
> +SRC_URI = "git://git.breakpoint.cc/bigeasy/serialcheck.git"
> +
> +SRC_URI_append = " file://0001-Add-option-to-enable-internal-loopback.patch \
> + file://0002-Restore-original-loopback-config.patch "
> +
> +SRCREV = "63854a2d0c0129efab132ec328a75279e013fb84"
> +
> +S = "${WORKDIR}/git"
> +
> +CFLAGS_prepend = "-Wall -Wextra -Wno-sign-compare -Wno-pointer-sign "
> +
> +do_install() {
> + install -d ${D}${base_bindir}
> + install ${S}/serialcheck ${D}${base_bindir}/serialcheck
> +}
> --
> 1.9.1
>
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
next prev parent reply other threads:[~2015-03-04 0:37 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-27 20:55 [PATCH 1/3] meta-arago-distro/recipes-devtools: serialcheck recipe Carlos Hernandez
2015-02-27 20:55 ` [PATCH 2/3] packagegroup-arago-test: Add serialcheck Carlos Hernandez
2015-02-27 20:55 ` [PATCH 3/3] ltp-ddt: Add runtime dependency to serialcheck Carlos Hernandez
2015-02-27 22:34 ` [PATCH 1/3] meta-arago-distro/recipes-devtools: serialcheck recipe Denys Dmytriyenko
2015-03-02 16:03 ` [PATCH 1/3 v2] " Carlos Hernandez
2015-03-04 0:37 ` Denys Dmytriyenko [this message]
2015-03-04 14:38 ` Carlos Hernandez
2015-03-04 14:46 ` Denys Dmytriyenko
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=20150304003748.GA6052@edge \
--to=denys@ti.com \
--cc=ceh@ti.com \
--cc=meta-arago@arago-project.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.