* [Buildroot] [PATCH v2] imx-uuc: add new package
@ 2016-04-13 10:40 Gary Bisson
2016-04-17 20:50 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Gary Bisson @ 2016-04-13 10:40 UTC (permalink / raw)
To: buildroot
This package provides the Universal Adapter user-space utility that is
used to receive commands from the Manufacturing Tool using the Freescale
UTP Protocol.
It requires a Freescale/NXP kernels whose configuration contains the
CONFIG_FSL_UTP option.
The /fat file is provided as a bootargs to the g_mass_storage driver
from U-Boot, see:
http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/tree/include/
configs/mx6sabre_common.h?h=imx_v2015.04_3.14.52_1.1.0_ga#n116
Init scripts are provided so that the tool starts automatically at
bootup.
Tested on Nitrogen6_MAX + MFGTools.
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
Hi all,
Changes v1 -> v2:
- add toolchain threads dependency
- add host-dosfstools selection
- add init scripts to start it as a daemon
- use manual install commands to control mkfs path and remove /linuxrc
- change Config.in comment
I have a few comments/questions on this new version:
- the install process still requires to use dd, hope using the system
one is ok.
- I chose the init script number randomly (S80), hope it's ok.
Regards,
Gary
---
package/freescale-imx/Config.in | 1 +
package/freescale-imx/imx-uuc/Config.in | 19 +++++++++++++
package/freescale-imx/imx-uuc/S80imx-uuc | 28 +++++++++++++++++++
package/freescale-imx/imx-uuc/imx-uuc.hash | 1 +
package/freescale-imx/imx-uuc/imx-uuc.mk | 40 +++++++++++++++++++++++++++
package/freescale-imx/imx-uuc/imx-uuc.service | 11 ++++++++
6 files changed, 100 insertions(+)
create mode 100644 package/freescale-imx/imx-uuc/Config.in
create mode 100644 package/freescale-imx/imx-uuc/S80imx-uuc
create mode 100644 package/freescale-imx/imx-uuc/imx-uuc.hash
create mode 100644 package/freescale-imx/imx-uuc/imx-uuc.mk
create mode 100644 package/freescale-imx/imx-uuc/imx-uuc.service
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 4a086ae..8c03190 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -51,6 +51,7 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
source "package/freescale-imx/imx-kobs/Config.in"
source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-uuc/Config.in"
source "package/freescale-imx/imx-vpu/Config.in"
source "package/freescale-imx/firmware-imx/Config.in"
if (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53)
diff --git a/package/freescale-imx/imx-uuc/Config.in b/package/freescale-imx/imx-uuc/Config.in
new file mode 100644
index 0000000..75e4c87
--- /dev/null
+++ b/package/freescale-imx/imx-uuc/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_IMX_UUC
+ bool "imx-uuc"
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_arm # Only relevant for i.MX
+ select BR2_PACKAGE_HOST_DOSFSTOOLS
+ help
+ This package provides the Universal Adapter user-space utility
+ that is used to receive commands from the Manufacturing Tool
+ using the Freescale UTP Protocol.
+
+ It requires a Freescale/NXP kernel whose configuration contains
+ the CONFIG_FSL_UTP option.
+
+ This package is provided by Freescale/NXP as-is and doesn't have
+ an upstream.
+
+comment "imx-uuc needs a toolchain w/ threads"
+ depends on BR2_ARM
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/freescale-imx/imx-uuc/S80imx-uuc b/package/freescale-imx/imx-uuc/S80imx-uuc
new file mode 100644
index 0000000..8d6d8c1
--- /dev/null
+++ b/package/freescale-imx/imx-uuc/S80imx-uuc
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+NAME=uuc
+DAEMON=/usr/bin/$NAME
+
+case "$1" in
+ start)
+ printf "Starting $NAME: "
+ start-stop-daemon -S -q -b -p /var/run/${NAME}.pid -x $DAEMON
+ echo "OK"
+ ;;
+ stop)
+ printf "Stopping $NAME: "
+ start-stop-daemon -K -q -p /var/run/${NAME}.pid
+ echo "OK"
+ ;;
+ restart|reload)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
diff --git a/package/freescale-imx/imx-uuc/imx-uuc.hash b/package/freescale-imx/imx-uuc/imx-uuc.hash
new file mode 100644
index 0000000..aab9ea8
--- /dev/null
+++ b/package/freescale-imx/imx-uuc/imx-uuc.hash
@@ -0,0 +1 @@
+sha256 95d7f7b075f58fedc07602fbc0e5bf5212d28deea3d09cdbcbd80992dcd18482 imx-uuc-0.5.1.tar.gz
diff --git a/package/freescale-imx/imx-uuc/imx-uuc.mk b/package/freescale-imx/imx-uuc/imx-uuc.mk
new file mode 100644
index 0000000..58e749e
--- /dev/null
+++ b/package/freescale-imx/imx-uuc/imx-uuc.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# imx-uuc
+#
+################################################################################
+
+IMX_UUC_VERSION = 0.5.1
+IMX_UUC_SITE = $(FREESCALE_IMX_SITE)
+IMX_UUC_LICENSE = GPLv2+
+IMX_UUC_LICENSE_FILES = COPYING
+
+# mkfs.vfat is needed to create a FAT partition used by g_mass_storage
+# so Windows do not offer to format the device when connected to the PC.
+IMX_UUC_DEPENDENCIES = host-dosfstools
+
+define IMX_UUC_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC=$(TARGET_CC)
+endef
+
+define IMX_UUC_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 755 $(@D)/uuc $(TARGET_DIR)/usr/bin/uuc
+ $(INSTALL) -D -m 755 $(@D)/sdimage $(TARGET_DIR)/usr/bin/sdimage
+ dd if=/dev/zero of=$(TARGET_DIR)/fat bs=1M count=1
+ $(HOST_DIR)/usr/sbin/mkfs.vfat $(TARGET_DIR)/fat
+endef
+
+define IMX_UUC_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 package/freescale-imx/imx-uuc/S80imx-uuc \
+ $(TARGET_DIR)/etc/init.d/S80imx-uuc
+endef
+
+define IMX_UUC_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 0644 package/freescale-imx/imx-uuc/imx-uuc.service \
+ $(TARGET_DIR)/usr/lib/systemd/system/imx-uuc.service
+ mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/
+ ln -fs ../../../../usr/lib/systemd/system/imx-uuc.service \
+ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/imx-uuc.service
+endef
+
+$(eval $(generic-package))
diff --git a/package/freescale-imx/imx-uuc/imx-uuc.service b/package/freescale-imx/imx-uuc/imx-uuc.service
new file mode 100644
index 0000000..fae7fc6
--- /dev/null
+++ b/package/freescale-imx/imx-uuc/imx-uuc.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=i.MX Universal UTP Communication Service
+After=systemd-modules-load.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/uuc
+
+[Install]
+WantedBy=multi-user.target
+
--
2.7.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Buildroot] [PATCH v2] imx-uuc: add new package
2016-04-13 10:40 [Buildroot] [PATCH v2] imx-uuc: add new package Gary Bisson
@ 2016-04-17 20:50 ` Thomas Petazzoni
2016-04-18 9:38 ` Gary Bisson
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2016-04-17 20:50 UTC (permalink / raw)
To: buildroot
Hello,
The commit title should have been:
imx-uuc: new package
(yes that's nitpicking)
On Wed, 13 Apr 2016 12:40:52 +0200, Gary Bisson wrote:
> diff --git a/package/freescale-imx/imx-uuc/Config.in b/package/freescale-imx/imx-uuc/Config.in
> new file mode 100644
> index 0000000..75e4c87
> --- /dev/null
> +++ b/package/freescale-imx/imx-uuc/Config.in
> @@ -0,0 +1,19 @@
> +config BR2_PACKAGE_IMX_UUC
> + bool "imx-uuc"
> + depends on BR2_TOOLCHAIN_HAS_THREADS
> + depends on BR2_arm # Only relevant for i.MX
> + select BR2_PACKAGE_HOST_DOSFSTOOLS
> + help
> + This package provides the Universal Adapter user-space utility
> + that is used to receive commands from the Manufacturing Tool
> + using the Freescale UTP Protocol.
> +
> + It requires a Freescale/NXP kernel whose configuration contains
> + the CONFIG_FSL_UTP option.
> +
> + This package is provided by Freescale/NXP as-is and doesn't have
> + an upstream.
Some of those lines were slightly too long, so I rewrapped.
> +
> +comment "imx-uuc needs a toolchain w/ threads"
> + depends on BR2_ARM
BR2_arm, not BR2_ARM.
> + depends on !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/freescale-imx/imx-uuc/S80imx-uuc b/package/freescale-imx/imx-uuc/S80imx-uuc
> new file mode 100644
> index 0000000..8d6d8c1
> --- /dev/null
> +++ b/package/freescale-imx/imx-uuc/S80imx-uuc
> @@ -0,0 +1,28 @@
> +#!/bin/sh
> +
> +NAME=uuc
> +DAEMON=/usr/bin/$NAME
> +
> +case "$1" in
> + start)
> + printf "Starting $NAME: "
> + start-stop-daemon -S -q -b -p /var/run/${NAME}.pid -x $DAEMON
> + echo "OK"
I've added missing error checking here.
> + ;;
> + stop)
> + printf "Stopping $NAME: "
> + start-stop-daemon -K -q -p /var/run/${NAME}.pid
> + echo "OK"
And here. I've also re-indented the init script to match the
indentation used in S50dropbear (which I believe is more or less our
reference).
> diff --git a/package/freescale-imx/imx-uuc/imx-uuc.hash b/package/freescale-imx/imx-uuc/imx-uuc.hash
> new file mode 100644
> index 0000000..aab9ea8
> --- /dev/null
> +++ b/package/freescale-imx/imx-uuc/imx-uuc.hash
> @@ -0,0 +1 @@
> +sha256 95d7f7b075f58fedc07602fbc0e5bf5212d28deea3d09cdbcbd80992dcd18482 imx-uuc-0.5.1.tar.gz
Missing source for the hash, so I've assumed it had been locally
calculated, and added the usual comment.
Applied with those changes, thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread* [Buildroot] [PATCH v2] imx-uuc: add new package
2016-04-17 20:50 ` Thomas Petazzoni
@ 2016-04-18 9:38 ` Gary Bisson
2016-04-18 9:52 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Gary Bisson @ 2016-04-18 9:38 UTC (permalink / raw)
To: buildroot
Thomas, All,
On Sun, Apr 17, 2016 at 10:50 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
>
> Hello,
>
> The commit title should have been:
>
> imx-uuc: new package
>
> (yes that's nitpicking)
No that's good to know, next time I'll make sure to name it like this.
> On Wed, 13 Apr 2016 12:40:52 +0200, Gary Bisson wrote:
> > diff --git a/package/freescale-imx/imx-uuc/Config.in b/package/freescale-imx/imx-uuc/Config.in
> > new file mode 100644
> > index 0000000..75e4c87
> > --- /dev/null
> > +++ b/package/freescale-imx/imx-uuc/Config.in
> > @@ -0,0 +1,19 @@
> > +config BR2_PACKAGE_IMX_UUC
> > + bool "imx-uuc"
> > + depends on BR2_TOOLCHAIN_HAS_THREADS
> > + depends on BR2_arm # Only relevant for i.MX
> > + select BR2_PACKAGE_HOST_DOSFSTOOLS
> > + help
> > + This package provides the Universal Adapter user-space utility
> > + that is used to receive commands from the Manufacturing Tool
> > + using the Freescale UTP Protocol.
> > +
> > + It requires a Freescale/NXP kernel whose configuration contains
> > + the CONFIG_FSL_UTP option.
> > +
> > + This package is provided by Freescale/NXP as-is and doesn't have
> > + an upstream.
>
> Some of those lines were slightly too long, so I rewrapped.
What number of characters would you like to see? I always go by the
80-character line rule.
> > +
> > +comment "imx-uuc needs a toolchain w/ threads"
> > + depends on BR2_ARM
>
> BR2_arm, not BR2_ARM.
>
> > + depends on !BR2_TOOLCHAIN_HAS_THREADS
> > diff --git a/package/freescale-imx/imx-uuc/S80imx-uuc b/package/freescale-imx/imx-uuc/S80imx-uuc
> > new file mode 100644
> > index 0000000..8d6d8c1
> > --- /dev/null
> > +++ b/package/freescale-imx/imx-uuc/S80imx-uuc
> > @@ -0,0 +1,28 @@
> > +#!/bin/sh
> > +
> > +NAME=uuc
> > +DAEMON=/usr/bin/$NAME
> > +
> > +case "$1" in
> > + start)
> > + printf "Starting $NAME: "
> > + start-stop-daemon -S -q -b -p /var/run/${NAME}.pid -x $DAEMON
> > + echo "OK"
>
> I've added missing error checking here.
>
> > + ;;
> > + stop)
> > + printf "Stopping $NAME: "
> > + start-stop-daemon -K -q -p /var/run/${NAME}.pid
> > + echo "OK"
>
> And here. I've also re-indented the init script to match the
> indentation used in S50dropbear (which I believe is more or less our
> reference).
Good to know too, I actually randomly copied one init script already
present (S53neard).
> > diff --git a/package/freescale-imx/imx-uuc/imx-uuc.hash b/package/freescale-imx/imx-uuc/imx-uuc.hash
> > new file mode 100644
> > index 0000000..aab9ea8
> > --- /dev/null
> > +++ b/package/freescale-imx/imx-uuc/imx-uuc.hash
> > @@ -0,0 +1 @@
> > +sha256 95d7f7b075f58fedc07602fbc0e5bf5212d28deea3d09cdbcbd80992dcd18482 imx-uuc-0.5.1.tar.gz
>
> Missing source for the hash, so I've assumed it had been locally
> calculated, and added the usual comment.
Yes it was locally, thanks.
> Applied with those changes, thanks!
No problem, I just want to add one thing that I discovered last week,
there's a Linux equivalent of the MFGTools developed by Ixonos:
https://github.com/ixonos/utp_com
It allows to do the same thing, send flashing scripts, executing
commands, flashing partitions etc... I might add it to the host
packages some day but it unfortunately depends on libsgutils2-dev for
the scsi headers in order to build. Not sure what the best approach
is.
Thanks,
Gary
^ permalink raw reply [flat|nested] 4+ messages in thread* [Buildroot] [PATCH v2] imx-uuc: add new package
2016-04-18 9:38 ` Gary Bisson
@ 2016-04-18 9:52 ` Thomas Petazzoni
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2016-04-18 9:52 UTC (permalink / raw)
To: buildroot
Hello,
On Mon, 18 Apr 2016 11:38:00 +0200, Gary Bisson wrote:
> > imx-uuc: new package
> >
> > (yes that's nitpicking)
>
> No that's good to know, next time I'll make sure to name it like this.
No problem, it's easy to fix :)
> > Some of those lines were slightly too long, so I rewrapped.
>
> What number of characters would you like to see? I always go by the
> 80-character line rule.
72 characters is our rule, including the tab+2 spaces indentation.
> > And here. I've also re-indented the init script to match the
> > indentation used in S50dropbear (which I believe is more or less our
> > reference).
>
> Good to know too, I actually randomly copied one init script already
> present (S53neard).
Our init scripts are far from being very consistent, so no problem with
this. We should probably write down a few rules, and do a bit of
cleanup work so that they look more similar.
> > Applied with those changes, thanks!
>
> No problem, I just want to add one thing that I discovered last week,
> there's a Linux equivalent of the MFGTools developed by Ixonos:
> https://github.com/ixonos/utp_com
>
> It allows to do the same thing, send flashing scripts, executing
> commands, flashing partitions etc... I might add it to the host
> packages some day but it unfortunately depends on libsgutils2-dev for
> the scsi headers in order to build. Not sure what the best approach
> is.
Just create a host package for libsgutils, and make host-utp-com depend
on it.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-04-18 9:52 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-13 10:40 [Buildroot] [PATCH v2] imx-uuc: add new package Gary Bisson
2016-04-17 20:50 ` Thomas Petazzoni
2016-04-18 9:38 ` Gary Bisson
2016-04-18 9:52 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox