* [PATCH 1/2] ti-connectivity/uim: Add Usermode Init Mgr for TI Wilink Shared Transport
@ 2014-01-27 10:10 Eyal Reizer
2014-01-27 14:43 ` Denys Dmytriyenko
0 siblings, 1 reply; 4+ messages in thread
From: Eyal Reizer @ 2014-01-27 10:10 UTC (permalink / raw)
To: meta-arago
From: Roger Monk <r-monk@ti.com>
* New recipe pulling latest git version
* Patched to allow sysfs node to be passed via command line argument
* UIM Daemon plumbed to rcS.S03
Signed-off-by: Roger Monk <r-monk@ti.com>
Signed-off-by: Eyal Reizer <eyalr@ti.com>
---
...mand-line-args-for-passing-sysfs-node-pat.patch | 135 ++++++++++++++++++++
.../recipes-connectivity/uim/files/uim-sysfs | 33 +++++
.../recipes-connectivity/uim/uim_git.bb | 25 ++++
3 files changed, 193 insertions(+), 0 deletions(-)
create mode 100644 meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch
create mode 100755 meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
create mode 100644 meta-arago-extras/recipes-connectivity/uim/uim_git.bb
diff --git a/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch
new file mode 100644
index 0000000..ad6f95f
--- /dev/null
+++ b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch
@@ -0,0 +1,135 @@
+From 0df5f6766722a844162e96777980feee146a3c86 Mon Sep 17 00:00:00 2001
+From: Roger Monk <r-monk@ti.com>
+Date: Tue, 1 Oct 2013 17:17:25 +0100
+Subject: [PATCH] uim: Add command line args for passing sysfs node path
+
+ * pass -f <sysfs path> and/or -b <bd address>
+ * re-mapped DEFINEs to strings
+ * minimal code changes for minimal instrusion
+ * could be rewritten for cleaner implementation in the future
+ * default path (no args) remains the same
+ * users passing bd address via uim <addr> will need to add -b
+
+Signed-off-by: Roger Monk <r-monk@ti.com>
+---
+ uim.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++--------
+ uim.h | 10 +++++-----
+ 2 files changed, 58 insertions(+), 13 deletions(-)
+
+diff --git a/uim.c b/uim.c
+index 3775dda..4dfdbd7 100644
+--- a/uim.c
++++ b/uim.c
+@@ -38,6 +38,11 @@ static int exiting;
+ static int line_discipline;
+ static int dev_fd;
+
++static char install_sysfs_entry[48];
++static char dev_name_sysfs[48];
++static char baud_rate_sysfs[48];
++static char flow_cntrl_sysfs[48];
++
+ /* BD address as string and a pointer to array of hex bytes */
+ char uim_bd_address[BD_ADDR_LEN];
+ bdaddr_t *bd_addr;
+@@ -455,9 +460,17 @@ bdaddr_t *strtoba(const char *str)
+ return (bdaddr_t *) ba;
+ }
+
++void usage(void)
++{
++ UIM_ERR("Invalid arguments");
++ UIM_ERR("Usage: uim [ -f <path-to-sysfs-kim> ] [ -b <bd address XX:XX:XX:XX:XX:XX> ]");
++}
++
+ /*****************************************************************************/
+ int main(int argc, char *argv[])
+ {
++ int opt;
++ char *arg_kim_path = NULL, *arg_bd_addr = NULL, *temp_path = KIM_SYSFS_BASE;
+ int st_fd, err;
+ unsigned char install;
+ struct pollfd p;
+@@ -466,18 +479,50 @@ int main(int argc, char *argv[])
+ err = 0;
+
+ /* Parse the user input */
+- if ((argc > 2)) {
+- UIM_ERR("Invalid arguements");
+- UIM_ERR("Usage: uim <bd address>");
+- return -1;
++ while ((opt = getopt (argc, argv, "f:b:")) != -1) {
++ switch (opt) {
++ case 'f':
++ arg_kim_path = optarg;
++ break;
++ case 'b':
++ arg_bd_addr = optarg;
++ break;
++ default:
++ usage();
++ return -1;
++ }
++ }
++
++ if (arg_kim_path != NULL) {
++ temp_path = arg_kim_path;
++ if( strlen(temp_path) > (sizeof(install_sysfs_entry)-10) ) {
++ UIM_ERR("Path to sysfs node too long");
++ return -1;
++ }
+ }
+- if (argc == 2) {
+- if (strlen(argv[2]) != BD_ADDR_LEN) {
+- UIM_ERR("Usage: uim XX:XX:XX:XX:XX:XX");
++ strcpy(install_sysfs_entry, temp_path);
++ strcpy(dev_name_sysfs, temp_path);
++ strcpy(baud_rate_sysfs, temp_path);
++ strcpy(flow_cntrl_sysfs, temp_path);
++
++ strcat(install_sysfs_entry, "/install");
++ strcat(dev_name_sysfs, "/dev_name");
++ strcat(baud_rate_sysfs, "/baud_rate");
++ strcat(flow_cntrl_sysfs, "/flow_cntrl");
++
++ UIM_DBG("install = %s", install_sysfs_entry);
++ UIM_DBG("dev_name = %s", dev_name_sysfs);
++ UIM_DBG("baud_rate = %s", baud_rate_sysfs);
++ UIM_DBG("flow_cntrl = %s", flow_cntrl_sysfs);
++
++ if (arg_bd_addr != NULL) {
++ if (strlen(arg_bd_addr) != BD_ADDR_LEN) {
++ usage();
+ return -1;
+ }
++ UIM_DBG("Address = %s", arg_bd_addr);
+ /* BD address passed as string in xx:xx:xx:xx:xx:xx format */
+- strncpy(uim_bd_address, argv[2], sizeof(uim_bd_address));
++ strncpy(uim_bd_address, arg_bd_addr, sizeof(uim_bd_address));
+ bd_addr = strtoba(uim_bd_address);
+ }
+
+diff --git a/uim.h b/uim.h
+index a8ef699..32a8fe0 100644
+--- a/uim.h
++++ b/uim.h
+@@ -65,11 +65,11 @@
+ /* the sysfs entries with device configuration set by
+ * shared transport driver
+ */
+-#define INSTALL_SYSFS_ENTRY "/sys/devices/platform/kim/install"
+-#define DEV_NAME_SYSFS "/sys/devices/platform/kim/dev_name"
+-#define BAUD_RATE_SYSFS "/sys/devices/platform/kim/baud_rate"
+-#define FLOW_CTRL_SYSFS "/sys/devices/platform/kim/flow_cntrl"
+-
++#define KIM_SYSFS_BASE "/sys/devices/platform/kim"
++#define INSTALL_SYSFS_ENTRY install_sysfs_entry
++#define DEV_NAME_SYSFS dev_name_sysfs
++#define BAUD_RATE_SYSFS baud_rate_sysfs
++#define FLOW_CTRL_SYSFS flow_cntrl_sysfs
+
+ #define VERBOSE
+ /*Debug logs*/
+--
+1.7.9.5
+
diff --git a/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
new file mode 100755
index 0000000..0891768
--- /dev/null
+++ b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+NODE=`cd /sys; find . | grep kim | grep install`
+if [ $NODE ]
+then
+ echo UIM SYSFS Node Found at /sys/$NODE
+else
+ echo UIM SYSFS Node Not Found
+ exit 0
+fi
+
+uim="/usr/bin/uim"
+uim_args="-f `dirname /sys/$NODE`"
+
+test -x "$uim" || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting uim-sysfs daemon"
+ start-stop-daemon --start --quiet --pidfile /var/run/uim.pid --make-pidfile --exec $uim -- $uim_args &
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping uim-sysfs daemon"
+ start-stop-daemon --stop --quiet --pidfile /var/run/uim.pid
+ echo "."
+ ;;
+ *)
+ echo "Usage: /etc/init.d/uim-sysfs.sh {start|stop}"
+ exit 1
+esac
+
+exit 0
diff --git a/meta-arago-extras/recipes-connectivity/uim/uim_git.bb b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
new file mode 100644
index 0000000..5b28884
--- /dev/null
+++ b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Shared Transport Line Discipline User Mode initialisation Manager Daemon"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://uim.c;beginline=1;endline=18;md5=9f0bbfbc10c67689e81a523e2976c31e"
+
+PR ="r1"
+PR_append = "+gitr${SRCPV}"
+
+SRCREV = "c73894456df5def97111cb33d2106b684b8b7959"
+SRC_URI = "git://gitorious.org/uim/uim.git \
+ file://0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch \
+ file://uim-sysfs \
+"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "CC=${TARGET_PREFIX}gcc"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 uim ${D}${bindir}
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/uim-sysfs ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/rcS.d
+ ln -sf ../init.d/uim-sysfs ${D}${sysconfdir}/rcS.d/S03uim-sysfs
+}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] ti-connectivity/uim: Add Usermode Init Mgr for TI Wilink Shared Transport
2014-01-27 10:10 [PATCH 1/2] ti-connectivity/uim: Add Usermode Init Mgr for TI Wilink Shared Transport Eyal Reizer
@ 2014-01-27 14:43 ` Denys Dmytriyenko
2014-01-27 14:48 ` Reizer, Eyal
0 siblings, 1 reply; 4+ messages in thread
From: Denys Dmytriyenko @ 2014-01-27 14:43 UTC (permalink / raw)
To: Eyal Reizer; +Cc: meta-arago
See my comments down below.
On Mon, Jan 27, 2014 at 12:10:47PM +0200, Eyal Reizer wrote:
> From: Roger Monk <r-monk@ti.com>
>
> * New recipe pulling latest git version
> * Patched to allow sysfs node to be passed via command line argument
> * UIM Daemon plumbed to rcS.S03
>
> Signed-off-by: Roger Monk <r-monk@ti.com>
> Signed-off-by: Eyal Reizer <eyalr@ti.com>
> ---
> ...mand-line-args-for-passing-sysfs-node-pat.patch | 135 ++++++++++++++++++++
> .../recipes-connectivity/uim/files/uim-sysfs | 33 +++++
> .../recipes-connectivity/uim/uim_git.bb | 25 ++++
> 3 files changed, 193 insertions(+), 0 deletions(-)
> create mode 100644 meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch
> create mode 100755 meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> create mode 100644 meta-arago-extras/recipes-connectivity/uim/uim_git.bb
>
> diff --git a/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch
> new file mode 100644
> index 0000000..ad6f95f
> --- /dev/null
> +++ b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch
> @@ -0,0 +1,135 @@
> +From 0df5f6766722a844162e96777980feee146a3c86 Mon Sep 17 00:00:00 2001
> +From: Roger Monk <r-monk@ti.com>
> +Date: Tue, 1 Oct 2013 17:17:25 +0100
> +Subject: [PATCH] uim: Add command line args for passing sysfs node path
> +
> + * pass -f <sysfs path> and/or -b <bd address>
> + * re-mapped DEFINEs to strings
> + * minimal code changes for minimal instrusion
> + * could be rewritten for cleaner implementation in the future
> + * default path (no args) remains the same
> + * users passing bd address via uim <addr> will need to add -b
> +
> +Signed-off-by: Roger Monk <r-monk@ti.com>
> +---
> + uim.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++--------
> + uim.h | 10 +++++-----
> + 2 files changed, 58 insertions(+), 13 deletions(-)
> +
> +diff --git a/uim.c b/uim.c
> +index 3775dda..4dfdbd7 100644
> +--- a/uim.c
> ++++ b/uim.c
> +@@ -38,6 +38,11 @@ static int exiting;
> + static int line_discipline;
> + static int dev_fd;
> +
> ++static char install_sysfs_entry[48];
> ++static char dev_name_sysfs[48];
> ++static char baud_rate_sysfs[48];
> ++static char flow_cntrl_sysfs[48];
> ++
> + /* BD address as string and a pointer to array of hex bytes */
> + char uim_bd_address[BD_ADDR_LEN];
> + bdaddr_t *bd_addr;
> +@@ -455,9 +460,17 @@ bdaddr_t *strtoba(const char *str)
> + return (bdaddr_t *) ba;
> + }
> +
> ++void usage(void)
> ++{
> ++ UIM_ERR("Invalid arguments");
> ++ UIM_ERR("Usage: uim [ -f <path-to-sysfs-kim> ] [ -b <bd address XX:XX:XX:XX:XX:XX> ]");
> ++}
> ++
> + /*****************************************************************************/
> + int main(int argc, char *argv[])
> + {
> ++ int opt;
> ++ char *arg_kim_path = NULL, *arg_bd_addr = NULL, *temp_path = KIM_SYSFS_BASE;
> + int st_fd, err;
> + unsigned char install;
> + struct pollfd p;
> +@@ -466,18 +479,50 @@ int main(int argc, char *argv[])
> + err = 0;
> +
> + /* Parse the user input */
> +- if ((argc > 2)) {
> +- UIM_ERR("Invalid arguements");
> +- UIM_ERR("Usage: uim <bd address>");
> +- return -1;
> ++ while ((opt = getopt (argc, argv, "f:b:")) != -1) {
> ++ switch (opt) {
> ++ case 'f':
> ++ arg_kim_path = optarg;
> ++ break;
> ++ case 'b':
> ++ arg_bd_addr = optarg;
> ++ break;
> ++ default:
> ++ usage();
> ++ return -1;
> ++ }
> ++ }
> ++
> ++ if (arg_kim_path != NULL) {
> ++ temp_path = arg_kim_path;
> ++ if( strlen(temp_path) > (sizeof(install_sysfs_entry)-10) ) {
> ++ UIM_ERR("Path to sysfs node too long");
> ++ return -1;
> ++ }
> + }
> +- if (argc == 2) {
> +- if (strlen(argv[2]) != BD_ADDR_LEN) {
> +- UIM_ERR("Usage: uim XX:XX:XX:XX:XX:XX");
> ++ strcpy(install_sysfs_entry, temp_path);
> ++ strcpy(dev_name_sysfs, temp_path);
> ++ strcpy(baud_rate_sysfs, temp_path);
> ++ strcpy(flow_cntrl_sysfs, temp_path);
> ++
> ++ strcat(install_sysfs_entry, "/install");
> ++ strcat(dev_name_sysfs, "/dev_name");
> ++ strcat(baud_rate_sysfs, "/baud_rate");
> ++ strcat(flow_cntrl_sysfs, "/flow_cntrl");
> ++
> ++ UIM_DBG("install = %s", install_sysfs_entry);
> ++ UIM_DBG("dev_name = %s", dev_name_sysfs);
> ++ UIM_DBG("baud_rate = %s", baud_rate_sysfs);
> ++ UIM_DBG("flow_cntrl = %s", flow_cntrl_sysfs);
> ++
> ++ if (arg_bd_addr != NULL) {
> ++ if (strlen(arg_bd_addr) != BD_ADDR_LEN) {
> ++ usage();
> + return -1;
> + }
> ++ UIM_DBG("Address = %s", arg_bd_addr);
> + /* BD address passed as string in xx:xx:xx:xx:xx:xx format */
> +- strncpy(uim_bd_address, argv[2], sizeof(uim_bd_address));
> ++ strncpy(uim_bd_address, arg_bd_addr, sizeof(uim_bd_address));
> + bd_addr = strtoba(uim_bd_address);
> + }
> +
> +diff --git a/uim.h b/uim.h
> +index a8ef699..32a8fe0 100644
> +--- a/uim.h
> ++++ b/uim.h
> +@@ -65,11 +65,11 @@
> + /* the sysfs entries with device configuration set by
> + * shared transport driver
> + */
> +-#define INSTALL_SYSFS_ENTRY "/sys/devices/platform/kim/install"
> +-#define DEV_NAME_SYSFS "/sys/devices/platform/kim/dev_name"
> +-#define BAUD_RATE_SYSFS "/sys/devices/platform/kim/baud_rate"
> +-#define FLOW_CTRL_SYSFS "/sys/devices/platform/kim/flow_cntrl"
> +-
> ++#define KIM_SYSFS_BASE "/sys/devices/platform/kim"
> ++#define INSTALL_SYSFS_ENTRY install_sysfs_entry
> ++#define DEV_NAME_SYSFS dev_name_sysfs
> ++#define BAUD_RATE_SYSFS baud_rate_sysfs
> ++#define FLOW_CTRL_SYSFS flow_cntrl_sysfs
> +
> + #define VERBOSE
> + /*Debug logs*/
> +--
> +1.7.9.5
> +
> diff --git a/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> new file mode 100755
> index 0000000..0891768
> --- /dev/null
> +++ b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> @@ -0,0 +1,33 @@
> +#! /bin/sh
> +
> +NODE=`cd /sys; find . | grep kim | grep install`
> +if [ $NODE ]
> +then
> + echo UIM SYSFS Node Found at /sys/$NODE
> +else
> + echo UIM SYSFS Node Not Found
> + exit 0
> +fi
> +
> +uim="/usr/bin/uim"
> +uim_args="-f `dirname /sys/$NODE`"
> +
> +test -x "$uim" || exit 0
> +
> +case "$1" in
> + start)
> + echo -n "Starting uim-sysfs daemon"
> + start-stop-daemon --start --quiet --pidfile /var/run/uim.pid --make-pidfile --exec $uim -- $uim_args &
> + echo "."
> + ;;
> + stop)
> + echo -n "Stopping uim-sysfs daemon"
> + start-stop-daemon --stop --quiet --pidfile /var/run/uim.pid
> + echo "."
> + ;;
> + *)
> + echo "Usage: /etc/init.d/uim-sysfs.sh {start|stop}"
> + exit 1
> +esac
> +
> +exit 0
> diff --git a/meta-arago-extras/recipes-connectivity/uim/uim_git.bb b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> new file mode 100644
> index 0000000..5b28884
> --- /dev/null
> +++ b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> @@ -0,0 +1,25 @@
> +DESCRIPTION = "Shared Transport Line Discipline User Mode initialisation Manager Daemon"
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM = "file://uim.c;beginline=1;endline=18;md5=9f0bbfbc10c67689e81a523e2976c31e"
> +
> +PR ="r1"
> +PR_append = "+gitr${SRCPV}"
> +
> +SRCREV = "c73894456df5def97111cb33d2106b684b8b7959"
> +SRC_URI = "git://gitorious.org/uim/uim.git \
> + file://0001-uim-Add-command-line-args-for-passing-sysfs-node-pat.patch \
> + file://uim-sysfs \
> +"
> +
> +S = "${WORKDIR}/git"
> +
> +EXTRA_OEMAKE = "CC=${TARGET_PREFIX}gcc"
> +
> +do_install() {
> + install -d ${D}${bindir}
> + install -m 0755 uim ${D}${bindir}
> + install -d ${D}${sysconfdir}/init.d
> + install -m 0755 ${WORKDIR}/uim-sysfs ${D}${sysconfdir}/init.d
> + install -d ${D}${sysconfdir}/rcS.d
> + ln -sf ../init.d/uim-sysfs ${D}${sysconfdir}/rcS.d/S03uim-sysfs
Why not use the standard INITSCRIPTS functionality here?
> +}
> --
> 1.7.0.4
>
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] ti-connectivity/uim: Add Usermode Init Mgr for TI Wilink Shared Transport
2014-01-27 14:43 ` Denys Dmytriyenko
@ 2014-01-27 14:48 ` Reizer, Eyal
2014-01-27 16:57 ` Denys Dmytriyenko
0 siblings, 1 reply; 4+ messages in thread
From: Reizer, Eyal @ 2014-01-27 14:48 UTC (permalink / raw)
To: Dmytriyenko, Denys, Eyal Reizer; +Cc: meta-arago@arago-project.org
Hi,
Comments below.
> -----Original Message-----
> From: meta-arago-bounces@arago-project.org [mailto:meta-arago-
> bounces@arago-project.org] On Behalf Of Dmytriyenko, Denys
> Sent: Monday, January 27, 2014 4:44 PM
> To: Eyal Reizer
> Cc: meta-arago@arago-project.org
> Subject: Re: [meta-arago] [PATCH 1/2] ti-connectivity/uim: Add Usermode
> Init Mgr for TI Wilink Shared Transport
>
> See my comments down below.
>
> On Mon, Jan 27, 2014 at 12:10:47PM +0200, Eyal Reizer wrote:
> > From: Roger Monk <r-monk@ti.com>
> >
> > * New recipe pulling latest git version
> > * Patched to allow sysfs node to be passed via command line
> argument
> > * UIM Daemon plumbed to rcS.S03
> >
> > Signed-off-by: Roger Monk <r-monk@ti.com>
> > Signed-off-by: Eyal Reizer <eyalr@ti.com>
> > ---
> > ...mand-line-args-for-passing-sysfs-node-pat.patch | 135
> ++++++++++++++++++++
> > .../recipes-connectivity/uim/files/uim-sysfs | 33 +++++
> > .../recipes-connectivity/uim/uim_git.bb | 25 ++++
> > 3 files changed, 193 insertions(+), 0 deletions(-)
> > create mode 100644 meta-arago-extras/recipes-
> connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-
> node-pat.patch
> > create mode 100755 meta-arago-extras/recipes-
> connectivity/uim/files/uim-sysfs
> > create mode 100644 meta-arago-extras/recipes-
> connectivity/uim/uim_git.bb
> >
> > diff --git a/meta-arago-extras/recipes-connectivity/uim/files/0001-
> uim-Add-command-line-args-for-passing-sysfs-node-pat.patch b/meta-arago-
> extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-
> for-passing-sysfs-node-pat.patch
> > new file mode 100644
> > index 0000000..ad6f95f
> > --- /dev/null
> > +++ b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-
> command-line-args-for-passing-sysfs-node-pat.patch
> > @@ -0,0 +1,135 @@
> > +From 0df5f6766722a844162e96777980feee146a3c86 Mon Sep 17 00:00:00
> 2001
> > +From: Roger Monk <r-monk@ti.com>
> > +Date: Tue, 1 Oct 2013 17:17:25 +0100
> > +Subject: [PATCH] uim: Add command line args for passing sysfs node
> path
> > +
> > + * pass -f <sysfs path> and/or -b <bd address>
> > + * re-mapped DEFINEs to strings
> > + * minimal code changes for minimal instrusion
> > + * could be rewritten for cleaner implementation in the future
> > + * default path (no args) remains the same
> > + * users passing bd address via uim <addr> will need to add -b
> > +
> > +Signed-off-by: Roger Monk <r-monk@ti.com>
> > +---
> > + uim.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
> ------
> > + uim.h | 10 +++++-----
> > + 2 files changed, 58 insertions(+), 13 deletions(-)
> > +
> > +diff --git a/uim.c b/uim.c
> > +index 3775dda..4dfdbd7 100644
> > +--- a/uim.c
> > ++++ b/uim.c
> > +@@ -38,6 +38,11 @@ static int exiting;
> > + static int line_discipline;
> > + static int dev_fd;
> > +
> > ++static char install_sysfs_entry[48];
> > ++static char dev_name_sysfs[48];
> > ++static char baud_rate_sysfs[48];
> > ++static char flow_cntrl_sysfs[48];
> > ++
> > + /* BD address as string and a pointer to array of hex bytes */
> > + char uim_bd_address[BD_ADDR_LEN];
> > + bdaddr_t *bd_addr;
> > +@@ -455,9 +460,17 @@ bdaddr_t *strtoba(const char *str)
> > + return (bdaddr_t *) ba;
> > + }
> > +
> > ++void usage(void)
> > ++{
> > ++ UIM_ERR("Invalid arguments");
> > ++ UIM_ERR("Usage: uim [ -f <path-to-sysfs-kim> ] [ -b <bd address
> XX:XX:XX:XX:XX:XX> ]");
> > ++}
> > ++
> > +
> /***********************************************************************
> ******/
> > + int main(int argc, char *argv[])
> > + {
> > ++ int opt;
> > ++ char *arg_kim_path = NULL, *arg_bd_addr = NULL, *temp_path =
> KIM_SYSFS_BASE;
> > + int st_fd, err;
> > + unsigned char install;
> > + struct pollfd p;
> > +@@ -466,18 +479,50 @@ int main(int argc, char *argv[])
> > + err = 0;
> > +
> > + /* Parse the user input */
> > +- if ((argc > 2)) {
> > +- UIM_ERR("Invalid arguements");
> > +- UIM_ERR("Usage: uim <bd address>");
> > +- return -1;
> > ++ while ((opt = getopt (argc, argv, "f:b:")) != -1) {
> > ++ switch (opt) {
> > ++ case 'f':
> > ++ arg_kim_path = optarg;
> > ++ break;
> > ++ case 'b':
> > ++ arg_bd_addr = optarg;
> > ++ break;
> > ++ default:
> > ++ usage();
> > ++ return -1;
> > ++ }
> > ++ }
> > ++
> > ++ if (arg_kim_path != NULL) {
> > ++ temp_path = arg_kim_path;
> > ++ if( strlen(temp_path) > (sizeof(install_sysfs_entry)-10) ) {
> > ++ UIM_ERR("Path to sysfs node too long");
> > ++ return -1;
> > ++ }
> > + }
> > +- if (argc == 2) {
> > +- if (strlen(argv[2]) != BD_ADDR_LEN) {
> > +- UIM_ERR("Usage: uim XX:XX:XX:XX:XX:XX");
> > ++ strcpy(install_sysfs_entry, temp_path);
> > ++ strcpy(dev_name_sysfs, temp_path);
> > ++ strcpy(baud_rate_sysfs, temp_path);
> > ++ strcpy(flow_cntrl_sysfs, temp_path);
> > ++
> > ++ strcat(install_sysfs_entry, "/install");
> > ++ strcat(dev_name_sysfs, "/dev_name");
> > ++ strcat(baud_rate_sysfs, "/baud_rate");
> > ++ strcat(flow_cntrl_sysfs, "/flow_cntrl");
> > ++
> > ++ UIM_DBG("install = %s", install_sysfs_entry);
> > ++ UIM_DBG("dev_name = %s", dev_name_sysfs);
> > ++ UIM_DBG("baud_rate = %s", baud_rate_sysfs);
> > ++ UIM_DBG("flow_cntrl = %s", flow_cntrl_sysfs);
> > ++
> > ++ if (arg_bd_addr != NULL) {
> > ++ if (strlen(arg_bd_addr) != BD_ADDR_LEN) {
> > ++ usage();
> > + return -1;
> > + }
> > ++ UIM_DBG("Address = %s", arg_bd_addr);
> > + /* BD address passed as string in xx:xx:xx:xx:xx:xx format
> */
> > +- strncpy(uim_bd_address, argv[2], sizeof(uim_bd_address));
> > ++ strncpy(uim_bd_address, arg_bd_addr,
> sizeof(uim_bd_address));
> > + bd_addr = strtoba(uim_bd_address);
> > + }
> > +
> > +diff --git a/uim.h b/uim.h
> > +index a8ef699..32a8fe0 100644
> > +--- a/uim.h
> > ++++ b/uim.h
> > +@@ -65,11 +65,11 @@
> > + /* the sysfs entries with device configuration set by
> > + * shared transport driver
> > + */
> > +-#define INSTALL_SYSFS_ENTRY "/sys/devices/platform/kim/install"
> > +-#define DEV_NAME_SYSFS "/sys/devices/platform/kim/dev_name"
> > +-#define BAUD_RATE_SYSFS "/sys/devices/platform/kim/baud_rate"
> > +-#define FLOW_CTRL_SYSFS "/sys/devices/platform/kim/flow_cntrl"
> > +-
> > ++#define KIM_SYSFS_BASE "/sys/devices/platform/kim"
> > ++#define INSTALL_SYSFS_ENTRY install_sysfs_entry
> > ++#define DEV_NAME_SYSFS dev_name_sysfs
> > ++#define BAUD_RATE_SYSFS baud_rate_sysfs
> > ++#define FLOW_CTRL_SYSFS flow_cntrl_sysfs
> > +
> > + #define VERBOSE
> > + /*Debug logs*/
> > +--
> > +1.7.9.5
> > +
> > diff --git a/meta-arago-extras/recipes-connectivity/uim/files/uim-
> sysfs b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> > new file mode 100755
> > index 0000000..0891768
> > --- /dev/null
> > +++ b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> > @@ -0,0 +1,33 @@
> > +#! /bin/sh
> > +
> > +NODE=`cd /sys; find . | grep kim | grep install`
> > +if [ $NODE ]
> > +then
> > + echo UIM SYSFS Node Found at /sys/$NODE
> > +else
> > + echo UIM SYSFS Node Not Found
> > + exit 0
> > +fi
> > +
> > +uim="/usr/bin/uim"
> > +uim_args="-f `dirname /sys/$NODE`"
> > +
> > +test -x "$uim" || exit 0
> > +
> > +case "$1" in
> > + start)
> > + echo -n "Starting uim-sysfs daemon"
> > + start-stop-daemon --start --quiet --pidfile /var/run/uim.pid --
> make-pidfile --exec $uim -- $uim_args &
> > + echo "."
> > + ;;
> > + stop)
> > + echo -n "Stopping uim-sysfs daemon"
> > + start-stop-daemon --stop --quiet --pidfile /var/run/uim.pid
> > + echo "."
> > + ;;
> > + *)
> > + echo "Usage: /etc/init.d/uim-sysfs.sh {start|stop}"
> > + exit 1
> > +esac
> > +
> > +exit 0
> > diff --git a/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> > new file mode 100644
> > index 0000000..5b28884
> > --- /dev/null
> > +++ b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> > @@ -0,0 +1,25 @@
> > +DESCRIPTION = "Shared Transport Line Discipline User Mode
> initialisation Manager Daemon"
> > +LICENSE = "GPLv2"
> > +LIC_FILES_CHKSUM =
> "file://uim.c;beginline=1;endline=18;md5=9f0bbfbc10c67689e81a523e2976c31
> e"
> > +
> > +PR ="r1"
> > +PR_append = "+gitr${SRCPV}"
> > +
> > +SRCREV = "c73894456df5def97111cb33d2106b684b8b7959"
> > +SRC_URI = "git://gitorious.org/uim/uim.git \
> > + file://0001-uim-Add-command-line-args-for-passing-sysfs-node-
> pat.patch \
> > + file://uim-sysfs \
> > +"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +EXTRA_OEMAKE = "CC=${TARGET_PREFIX}gcc"
> > +
> > +do_install() {
> > + install -d ${D}${bindir}
> > + install -m 0755 uim ${D}${bindir}
> > + install -d ${D}${sysconfdir}/init.d
> > + install -m 0755 ${WORKDIR}/uim-sysfs ${D}${sysconfdir}/init.d
> > + install -d ${D}${sysconfdir}/rcS.d
> > + ln -sf ../init.d/uim-sysfs ${D}${sysconfdir}/rcS.d/S03uim-sysfs
>
> Why not use the standard INITSCRIPTS functionality here?
The original recipe was not written by me. Just pulling it over from GLSDK.
Anyway, not sure I am familiar with the INITSCRIPTS concept and how it should be used here.
Any pointers?
>
>
> > +}
> > --
> > 1.7.0.4
> >
> > _______________________________________________
> > meta-arago mailing list
> > meta-arago@arago-project.org
> > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] ti-connectivity/uim: Add Usermode Init Mgr for TI Wilink Shared Transport
2014-01-27 14:48 ` Reizer, Eyal
@ 2014-01-27 16:57 ` Denys Dmytriyenko
0 siblings, 0 replies; 4+ messages in thread
From: Denys Dmytriyenko @ 2014-01-27 16:57 UTC (permalink / raw)
To: Reizer, Eyal; +Cc: meta-arago@arago-project.org
On Mon, Jan 27, 2014 at 09:48:50AM -0500, Reizer, Eyal wrote:
> Hi,
>
> Comments below.
>
> > -----Original Message-----
> > From: meta-arago-bounces@arago-project.org [mailto:meta-arago-
> > bounces@arago-project.org] On Behalf Of Dmytriyenko, Denys
> > Sent: Monday, January 27, 2014 4:44 PM
> > To: Eyal Reizer
> > Cc: meta-arago@arago-project.org
> > Subject: Re: [meta-arago] [PATCH 1/2] ti-connectivity/uim: Add Usermode
> > Init Mgr for TI Wilink Shared Transport
> >
> > See my comments down below.
> >
> > On Mon, Jan 27, 2014 at 12:10:47PM +0200, Eyal Reizer wrote:
> > > From: Roger Monk <r-monk@ti.com>
> > >
> > > * New recipe pulling latest git version
> > > * Patched to allow sysfs node to be passed via command line
> > argument
> > > * UIM Daemon plumbed to rcS.S03
> > >
> > > Signed-off-by: Roger Monk <r-monk@ti.com>
> > > Signed-off-by: Eyal Reizer <eyalr@ti.com>
> > > ---
> > > ...mand-line-args-for-passing-sysfs-node-pat.patch | 135
> > ++++++++++++++++++++
> > > .../recipes-connectivity/uim/files/uim-sysfs | 33 +++++
> > > .../recipes-connectivity/uim/uim_git.bb | 25 ++++
> > > 3 files changed, 193 insertions(+), 0 deletions(-)
> > > create mode 100644 meta-arago-extras/recipes-
> > connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-sysfs-
> > node-pat.patch
> > > create mode 100755 meta-arago-extras/recipes-
> > connectivity/uim/files/uim-sysfs
> > > create mode 100644 meta-arago-extras/recipes-
> > connectivity/uim/uim_git.bb
> > >
> > > diff --git a/meta-arago-extras/recipes-connectivity/uim/files/0001-
> > uim-Add-command-line-args-for-passing-sysfs-node-pat.patch b/meta-arago-
> > extras/recipes-connectivity/uim/files/0001-uim-Add-command-line-args-
> > for-passing-sysfs-node-pat.patch
> > > new file mode 100644
> > > index 0000000..ad6f95f
> > > --- /dev/null
> > > +++ b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-Add-
> > command-line-args-for-passing-sysfs-node-pat.patch
> > > @@ -0,0 +1,135 @@
> > > +From 0df5f6766722a844162e96777980feee146a3c86 Mon Sep 17 00:00:00
> > 2001
> > > +From: Roger Monk <r-monk@ti.com>
> > > +Date: Tue, 1 Oct 2013 17:17:25 +0100
> > > +Subject: [PATCH] uim: Add command line args for passing sysfs node
> > path
> > > +
> > > + * pass -f <sysfs path> and/or -b <bd address>
> > > + * re-mapped DEFINEs to strings
> > > + * minimal code changes for minimal instrusion
> > > + * could be rewritten for cleaner implementation in the future
> > > + * default path (no args) remains the same
> > > + * users passing bd address via uim <addr> will need to add -b
> > > +
> > > +Signed-off-by: Roger Monk <r-monk@ti.com>
> > > +---
> > > + uim.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > ------
> > > + uim.h | 10 +++++-----
> > > + 2 files changed, 58 insertions(+), 13 deletions(-)
> > > +
> > > +diff --git a/uim.c b/uim.c
> > > +index 3775dda..4dfdbd7 100644
> > > +--- a/uim.c
> > > ++++ b/uim.c
> > > +@@ -38,6 +38,11 @@ static int exiting;
> > > + static int line_discipline;
> > > + static int dev_fd;
> > > +
> > > ++static char install_sysfs_entry[48];
> > > ++static char dev_name_sysfs[48];
> > > ++static char baud_rate_sysfs[48];
> > > ++static char flow_cntrl_sysfs[48];
> > > ++
> > > + /* BD address as string and a pointer to array of hex bytes */
> > > + char uim_bd_address[BD_ADDR_LEN];
> > > + bdaddr_t *bd_addr;
> > > +@@ -455,9 +460,17 @@ bdaddr_t *strtoba(const char *str)
> > > + return (bdaddr_t *) ba;
> > > + }
> > > +
> > > ++void usage(void)
> > > ++{
> > > ++ UIM_ERR("Invalid arguments");
> > > ++ UIM_ERR("Usage: uim [ -f <path-to-sysfs-kim> ] [ -b <bd address
> > XX:XX:XX:XX:XX:XX> ]");
> > > ++}
> > > ++
> > > +
> > /***********************************************************************
> > ******/
> > > + int main(int argc, char *argv[])
> > > + {
> > > ++ int opt;
> > > ++ char *arg_kim_path = NULL, *arg_bd_addr = NULL, *temp_path =
> > KIM_SYSFS_BASE;
> > > + int st_fd, err;
> > > + unsigned char install;
> > > + struct pollfd p;
> > > +@@ -466,18 +479,50 @@ int main(int argc, char *argv[])
> > > + err = 0;
> > > +
> > > + /* Parse the user input */
> > > +- if ((argc > 2)) {
> > > +- UIM_ERR("Invalid arguements");
> > > +- UIM_ERR("Usage: uim <bd address>");
> > > +- return -1;
> > > ++ while ((opt = getopt (argc, argv, "f:b:")) != -1) {
> > > ++ switch (opt) {
> > > ++ case 'f':
> > > ++ arg_kim_path = optarg;
> > > ++ break;
> > > ++ case 'b':
> > > ++ arg_bd_addr = optarg;
> > > ++ break;
> > > ++ default:
> > > ++ usage();
> > > ++ return -1;
> > > ++ }
> > > ++ }
> > > ++
> > > ++ if (arg_kim_path != NULL) {
> > > ++ temp_path = arg_kim_path;
> > > ++ if( strlen(temp_path) > (sizeof(install_sysfs_entry)-10) ) {
> > > ++ UIM_ERR("Path to sysfs node too long");
> > > ++ return -1;
> > > ++ }
> > > + }
> > > +- if (argc == 2) {
> > > +- if (strlen(argv[2]) != BD_ADDR_LEN) {
> > > +- UIM_ERR("Usage: uim XX:XX:XX:XX:XX:XX");
> > > ++ strcpy(install_sysfs_entry, temp_path);
> > > ++ strcpy(dev_name_sysfs, temp_path);
> > > ++ strcpy(baud_rate_sysfs, temp_path);
> > > ++ strcpy(flow_cntrl_sysfs, temp_path);
> > > ++
> > > ++ strcat(install_sysfs_entry, "/install");
> > > ++ strcat(dev_name_sysfs, "/dev_name");
> > > ++ strcat(baud_rate_sysfs, "/baud_rate");
> > > ++ strcat(flow_cntrl_sysfs, "/flow_cntrl");
> > > ++
> > > ++ UIM_DBG("install = %s", install_sysfs_entry);
> > > ++ UIM_DBG("dev_name = %s", dev_name_sysfs);
> > > ++ UIM_DBG("baud_rate = %s", baud_rate_sysfs);
> > > ++ UIM_DBG("flow_cntrl = %s", flow_cntrl_sysfs);
> > > ++
> > > ++ if (arg_bd_addr != NULL) {
> > > ++ if (strlen(arg_bd_addr) != BD_ADDR_LEN) {
> > > ++ usage();
> > > + return -1;
> > > + }
> > > ++ UIM_DBG("Address = %s", arg_bd_addr);
> > > + /* BD address passed as string in xx:xx:xx:xx:xx:xx format
> > */
> > > +- strncpy(uim_bd_address, argv[2], sizeof(uim_bd_address));
> > > ++ strncpy(uim_bd_address, arg_bd_addr,
> > sizeof(uim_bd_address));
> > > + bd_addr = strtoba(uim_bd_address);
> > > + }
> > > +
> > > +diff --git a/uim.h b/uim.h
> > > +index a8ef699..32a8fe0 100644
> > > +--- a/uim.h
> > > ++++ b/uim.h
> > > +@@ -65,11 +65,11 @@
> > > + /* the sysfs entries with device configuration set by
> > > + * shared transport driver
> > > + */
> > > +-#define INSTALL_SYSFS_ENTRY "/sys/devices/platform/kim/install"
> > > +-#define DEV_NAME_SYSFS "/sys/devices/platform/kim/dev_name"
> > > +-#define BAUD_RATE_SYSFS "/sys/devices/platform/kim/baud_rate"
> > > +-#define FLOW_CTRL_SYSFS "/sys/devices/platform/kim/flow_cntrl"
> > > +-
> > > ++#define KIM_SYSFS_BASE "/sys/devices/platform/kim"
> > > ++#define INSTALL_SYSFS_ENTRY install_sysfs_entry
> > > ++#define DEV_NAME_SYSFS dev_name_sysfs
> > > ++#define BAUD_RATE_SYSFS baud_rate_sysfs
> > > ++#define FLOW_CTRL_SYSFS flow_cntrl_sysfs
> > > +
> > > + #define VERBOSE
> > > + /*Debug logs*/
> > > +--
> > > +1.7.9.5
> > > +
> > > diff --git a/meta-arago-extras/recipes-connectivity/uim/files/uim-
> > sysfs b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> > > new file mode 100755
> > > index 0000000..0891768
> > > --- /dev/null
> > > +++ b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
> > > @@ -0,0 +1,33 @@
> > > +#! /bin/sh
> > > +
> > > +NODE=`cd /sys; find . | grep kim | grep install`
> > > +if [ $NODE ]
> > > +then
> > > + echo UIM SYSFS Node Found at /sys/$NODE
> > > +else
> > > + echo UIM SYSFS Node Not Found
> > > + exit 0
> > > +fi
> > > +
> > > +uim="/usr/bin/uim"
> > > +uim_args="-f `dirname /sys/$NODE`"
> > > +
> > > +test -x "$uim" || exit 0
> > > +
> > > +case "$1" in
> > > + start)
> > > + echo -n "Starting uim-sysfs daemon"
> > > + start-stop-daemon --start --quiet --pidfile /var/run/uim.pid --
> > make-pidfile --exec $uim -- $uim_args &
> > > + echo "."
> > > + ;;
> > > + stop)
> > > + echo -n "Stopping uim-sysfs daemon"
> > > + start-stop-daemon --stop --quiet --pidfile /var/run/uim.pid
> > > + echo "."
> > > + ;;
> > > + *)
> > > + echo "Usage: /etc/init.d/uim-sysfs.sh {start|stop}"
> > > + exit 1
> > > +esac
> > > +
> > > +exit 0
> > > diff --git a/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> > b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> > > new file mode 100644
> > > index 0000000..5b28884
> > > --- /dev/null
> > > +++ b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
> > > @@ -0,0 +1,25 @@
> > > +DESCRIPTION = "Shared Transport Line Discipline User Mode
> > initialisation Manager Daemon"
> > > +LICENSE = "GPLv2"
> > > +LIC_FILES_CHKSUM =
> > "file://uim.c;beginline=1;endline=18;md5=9f0bbfbc10c67689e81a523e2976c31
> > e"
> > > +
> > > +PR ="r1"
> > > +PR_append = "+gitr${SRCPV}"
> > > +
> > > +SRCREV = "c73894456df5def97111cb33d2106b684b8b7959"
> > > +SRC_URI = "git://gitorious.org/uim/uim.git \
> > > + file://0001-uim-Add-command-line-args-for-passing-sysfs-node-
> > pat.patch \
> > > + file://uim-sysfs \
> > > +"
> > > +
> > > +S = "${WORKDIR}/git"
> > > +
> > > +EXTRA_OEMAKE = "CC=${TARGET_PREFIX}gcc"
> > > +
> > > +do_install() {
> > > + install -d ${D}${bindir}
> > > + install -m 0755 uim ${D}${bindir}
> > > + install -d ${D}${sysconfdir}/init.d
> > > + install -m 0755 ${WORKDIR}/uim-sysfs ${D}${sysconfdir}/init.d
> > > + install -d ${D}${sysconfdir}/rcS.d
> > > + ln -sf ../init.d/uim-sysfs ${D}${sysconfdir}/rcS.d/S03uim-sysfs
> >
> > Why not use the standard INITSCRIPTS functionality here?
>
> The original recipe was not written by me. Just pulling it over from GLSDK.
Yes, I know - I tried to copy Roger in my reply...
> Anyway, not sure I am familiar with the INITSCRIPTS concept and how it
> should be used here.
> Any pointers?
It is provided by update-rc.d class, which takes care of setting up all the
necessary links in /etc/init.d and /etc/rcS.d for provided initscripts. One of
the easiest examples you can look up here:
http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/tree/recipes-bsp/ti/am33x-cm3_git.bb
--
Denys
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-01-27 16:57 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-27 10:10 [PATCH 1/2] ti-connectivity/uim: Add Usermode Init Mgr for TI Wilink Shared Transport Eyal Reizer
2014-01-27 14:43 ` Denys Dmytriyenko
2014-01-27 14:48 ` Reizer, Eyal
2014-01-27 16:57 ` Denys Dmytriyenko
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.