Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries
@ 2012-12-19 23:37 Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 1/6] imx-lib: new package Arnout Vandecappelle
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

 This patch series adds Freescale's proprietary multimedia libraries for
the i.MX platform.

 I only tested it on mx6q (SabreLite). I'm sending it now even though there
are still a few major shortcomings, so Peter (and others) have the chance
to test it on different platforms while I'm on vacation.

 These are the things I'd like to see improved - feedback is very welcome!

* The platform stuff. A separate choice in imx-lib and gst-fsl-plugins
really doesn't work, because they are not kept consistent (the 'select'
doesn't always work).

* The binary libraries are linked against glibc, so there probably
should be a dependency on glibc/eglibc as well. However, for
gst-fsl-plugins, not everything depends on the binary libraries.
For instance, the VPU encoder/decoder only requires a firmware blob.
Unfortunately, it still didn't work with uClibc (didn't spend much time
on it though).

* All the binary libraries are installed, even though they are for
other platforms. The whole thing is about 10MB.

* I couldn't find an official upstream download site, so I used a mirror,
but it risks disappearing unexpectedly.

* More stuff should be selectable (e.g. which gst plugins to build).

 The extraction of the .bin self-extractors if fortunately just slightly
messy :-) The legal-info on the other hand is horrible - as usual,
the proprietary projects are much less conscientious about legal stuff
and the typical open source project...


 For the platform stuff, one idea I had was to create a new menu for
platform-specific packages. In that menu, you'd have a menuconfig per
platform, and this menu could give a SoC choice. The platform-specific
menus can collect all the platform-specific packages which are now
"polluting" the rest of the menus. For example:

menu "Platform-specific packages"

menuconfig "Freescale i.MX"

choice "i.MX SoC"
config "i.MX 51"
config "i.MX 6"
endchoice

menuconfig "Freescale QorIQ"

menuconfig "Raspberry Pi"

menuconfig "Snowball"
source "package/snowball-hdmiservice"
source "package/snowball-init"

menuconfig "TI Davinci"


 How does this sound?

 Regards,
 Arnout

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 1/6] imx-lib: new package
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
@ 2012-12-19 23:37 ` Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 2/6] libfslvpuwrap: " Arnout Vandecappelle
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/Config.in          |    1 +
 package/imx-lib/Config.in  |   53 ++++++++++++++++++++++++++++++++++++++++++++
 package/imx-lib/imx-lib.mk |   41 ++++++++++++++++++++++++++++++++++
 3 files changed, 95 insertions(+)
 create mode 100644 package/imx-lib/Config.in
 create mode 100644 package/imx-lib/imx-lib.mk

diff --git a/package/Config.in b/package/Config.in
index 66445ff..def4b20 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -421,6 +421,7 @@ endmenu
 
 menu "Hardware handling"
 source "package/ccid/Config.in"
+source "package/imx-lib/Config.in"
 source "package/lcdapi/Config.in"
 source "package/libaio/Config.in"
 source "package/libraw1394/Config.in"
diff --git a/package/imx-lib/Config.in b/package/imx-lib/Config.in
new file mode 100644
index 0000000..1617009
--- /dev/null
+++ b/package/imx-lib/Config.in
@@ -0,0 +1,53 @@
+comment "imx-lib needs an imx-specific kernel to be built"
+	depends on BR2_arm && !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_IMX_LIB
+	bool "imx-lib"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_arm # Only relevant for i.MX
+	help
+	  Library of userspace helpers specific for the Freescale i.MX
+	  platform. It wraps the kernel interfaces for some i.MX platform
+	  specific drivers. It requires a kernel that includes the i.MX
+	  specific headers to be built.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
+
+if BR2_PACKAGE_IMX_LIB
+choice
+	prompt "i.MX platform"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX25_3STACK
+	bool "imx25-3stack"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX27ADS
+	bool "imx27ads"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX37_3STACK
+	bool "imx37-3stack"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX50
+	bool "imx50"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX51
+	bool "imx51"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX53
+	bool "imx53"
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM_IMX6Q
+	bool "imx6q"
+
+endchoice
+
+config BR2_PACKAGE_IMX_LIB_PLATFORM
+	string
+	default "IMX25_3STACK" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX25_3STACK
+	default "IMX27ADS" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX27ADS
+	default "IMX37_3STACK" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX37_3STACK
+	default "IMX50" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX50
+	default "IMX51" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX51
+	default "IMX53" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX53
+	default "IMX6Q" if BR2_PACKAGE_IMX_LIB_PLATFORM_IMX6Q
+endif
diff --git a/package/imx-lib/imx-lib.mk b/package/imx-lib/imx-lib.mk
new file mode 100644
index 0000000..c168c80
--- /dev/null
+++ b/package/imx-lib/imx-lib.mk
@@ -0,0 +1,41 @@
+#############################################################
+#
+# imx-lib
+#
+#############################################################
+
+IMX_LIB_VERSION = 12.09.01
+# No official download site from freescale, just this mirror
+IMX_LIB_SITE    = http://download.ossystems.com.br/bsp/freescale/source
+IMX_LIB_LICENSE = LGPLv2.1+
+# No license file included
+
+IMX_LIB_INSTALL_STAGING = YES
+
+# imx-lib needs access to imx-specific kernel headers
+IMX_LIB_DEPENDENCIES += linux
+IMX_LIB_INCLUDE = \
+	-I$(LINUX_DIR)/drivers/mxc/security/rng/include \
+	-I$(LINUX_DIR)/drivers/mxc/security/sahara2/include \
+	-idirafter $(LINUX_DIR)/include
+
+IMX_LIB_MAKE_ENV = \
+	$(TARGET_MAKE_ENV) \
+	$(TARGET_CONFIGURE_OPTS) \
+	CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
+	PLATFORM=$(BR2_PACKAGE_IMX_LIB_PLATFORM) \
+	INCLUDE="$(IMX_LIB_INCLUDE)"
+
+define IMX_LIB_BUILD_CMDS
+	$(IMX_LIB_MAKE_ENV) $(MAKE1) -C $(@D)
+endef
+
+define IMX_LIB_INSTALL_STAGING_CMDS
+	$(IMX_LIB_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(STAGING_DIR) install
+endef
+
+define IMX_LIB_INSTALL_TARGET_CMDS
+	$(IMX_LIB_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 2/6] libfslvpuwrap: new package
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 1/6] imx-lib: new package Arnout Vandecappelle
@ 2012-12-19 23:37 ` Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 3/6] firmware-imx: " Arnout Vandecappelle
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/Config.in                      |    1 +
 package/libfslvpuwrap/Config.in        |   13 +++++++++++++
 package/libfslvpuwrap/libfslvpuwrap.mk |   18 ++++++++++++++++++
 3 files changed, 32 insertions(+)
 create mode 100644 package/libfslvpuwrap/Config.in
 create mode 100644 package/libfslvpuwrap/libfslvpuwrap.mk

diff --git a/package/Config.in b/package/Config.in
index def4b20..ac2488e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -453,6 +453,7 @@ menu "Multimedia"
 source "package/libdvdread/Config.in"
 source "package/libdvdnav/Config.in"
 source "package/libebml/Config.in"
+source "package/libfslvpuwrap/Config.in"
 source "package/libmatroska/Config.in"
 source "package/libmms/Config.in"
 source "package/libmpeg2/Config.in"
diff --git a/package/libfslvpuwrap/Config.in b/package/libfslvpuwrap/Config.in
new file mode 100644
index 0000000..57b8a02
--- /dev/null
+++ b/package/libfslvpuwrap/Config.in
@@ -0,0 +1,13 @@
+comment "libfslvpuwrap needs an imx-specific kernel to be built"
+	depends on BR2_arm && !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_LIBFSLVPUWRAP
+	bool "libfslvpuwrap"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_arm # Only relevant for i.MX
+	select BR2_PACKAGE_IMX_LIB
+	help
+	  Wrapper library for the vpu library, giving it a different API.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/libfslvpuwrap/libfslvpuwrap.mk b/package/libfslvpuwrap/libfslvpuwrap.mk
new file mode 100644
index 0000000..3ad33f9
--- /dev/null
+++ b/package/libfslvpuwrap/libfslvpuwrap.mk
@@ -0,0 +1,18 @@
+#############################################################
+#
+# buildroot makefile for libfslvpuwrap
+#
+#############################################################
+
+LIBFSLVPUWRAP_VERSION = 1.0.17
+# No official download site from freescale, just this mirror
+LIBFSLVPUWRAP_SITE = http://download.ossystems.com.br/bsp/freescale/source
+LIBFSLVPUWRAP_LICENSE = Freescale Semiconductor Software License Agreement
+LIBFSLVPUWRAP_LICENSE_FILES = EULA.txt
+LIBFSLVPUWRAP_REDISTRIBUTE = NO
+
+LIBFSLVPUWRAP_INSTALL_STAGING = YES
+
+LIBFSLVPUWRAP_DEPENDENCIES += imx-lib
+
+$(eval $(autotools-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 3/6] firmware-imx: new package
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 1/6] imx-lib: new package Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 2/6] libfslvpuwrap: " Arnout Vandecappelle
@ 2012-12-19 23:37 ` Arnout Vandecappelle
  2013-01-14 15:24   ` Peter Korsgaard
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 4/6] libfslparser: " Arnout Vandecappelle
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>


Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/Config.in                    |    1 +
 package/firmware-imx/Config.in       |   13 ++++++++++++
 package/firmware-imx/firmware-imx.mk |   38 ++++++++++++++++++++++++++++++++++
 3 files changed, 52 insertions(+)
 create mode 100644 package/firmware-imx/Config.in
 create mode 100644 package/firmware-imx/firmware-imx.mk

diff --git a/package/Config.in b/package/Config.in
index ac2488e..52bb408 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -213,6 +213,7 @@ source "package/eeprog/Config.in"
 source "package/evtest/Config.in"
 source "package/flashrom/Config.in"
 source "package/fconfig/Config.in"
+source "package/firmware-imx/Config.in"
 source "package/fis/Config.in"
 source "package/fmtools/Config.in"
 source "package/fxload/Config.in"
diff --git a/package/firmware-imx/Config.in b/package/firmware-imx/Config.in
new file mode 100644
index 0000000..dd96d88
--- /dev/null
+++ b/package/firmware-imx/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_FIRMWARE_IMX
+	bool "firmware-imx"
+	depends on BR2_arm # Only relevant for i.MX
+	help
+	  Firmware blobs for the Freescale i.MX SoCs.
+
+	  It contains blobs for Atheros AR6003, SDMA and VPU.
+
+	  Note: it also contains a blob for ar3k/30101 but upstream
+	  linux-firmware has that as well.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/firmware-imx/firmware-imx.mk b/package/firmware-imx/firmware-imx.mk
new file mode 100644
index 0000000..5072288
--- /dev/null
+++ b/package/firmware-imx/firmware-imx.mk
@@ -0,0 +1,38 @@
+#############################################################
+#
+# buildroot makefile for firmware-imx
+#
+#############################################################
+
+FIRMWARE_IMX_VERSION = 12.09.01
+# No official download site from freescale, just this mirror
+FIRMWARE_IMX_SITE = http://download.ossystems.com.br/bsp/freescale/source
+FIRMWARE_IMX_SOURCE = firmware-imx-$(FIRMWARE_IMX_VERSION).bin
+FIRMWARE_IMX_LICENSE = Freescale Semiconductor Software License Agreement, \
+	Atheros license (ath6k)
+FIRMWARE_IMX_LICENSE_FILES = licenses/vpu/EULA licenses/ath6k/AR6102/License.txt
+# This is a legal minefield: the EULA specifies that
+# the Board Support Package includes software and hardware (sic!)
+# for which a separate license is needed...
+FIRMWARE_IMX_REDISTRIBUTE = NO
+
+FIRMWARE_IMX_BLOBS = ath6k sdma vpu
+
+# The archive is a shell-self-extractor of a bzipped tar. It happens
+# to extract in the correct directory (firmware-imx-x.y.z)
+# The --force makes sure it doesn't fail if the source dir already exists.
+# The --auto-accept skips the license check - not needed for us
+# because we have legal-info.
+define FIRMWARE_IMX_EXTRACT_CMDS
+	cd $(BUILD_DIR); \
+	sh $(DL_DIR)/$(FIRMWARE_IMX_SOURCE) --force --auto-accept
+endef
+
+
+define FIRMWARE_IMX_INSTALL_TARGET_CMDS
+	for blobdir in $(FIRMWARE_IMX_BLOBS); do \
+		cp -r $(@D)/firmware/$${blobdir} $(TARGET_DIR)/lib/firmware; \
+	done
+endef
+
+$(eval $(generic-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 4/6] libfslparser: new package
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
                   ` (2 preceding siblings ...)
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 3/6] firmware-imx: " Arnout Vandecappelle
@ 2012-12-19 23:37 ` Arnout Vandecappelle
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 5/6] libfslcodec: " Arnout Vandecappelle
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/Config.in                    |    1 +
 package/libfslparser/Config.in       |    8 +++++++
 package/libfslparser/libfslparser.mk |   40 ++++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+)
 create mode 100644 package/libfslparser/Config.in
 create mode 100644 package/libfslparser/libfslparser.mk

diff --git a/package/Config.in b/package/Config.in
index 52bb408..171d936 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -454,6 +454,7 @@ menu "Multimedia"
 source "package/libdvdread/Config.in"
 source "package/libdvdnav/Config.in"
 source "package/libebml/Config.in"
+source "package/libfslparser/Config.in"
 source "package/libfslvpuwrap/Config.in"
 source "package/libmatroska/Config.in"
 source "package/libmms/Config.in"
diff --git a/package/libfslparser/Config.in b/package/libfslparser/Config.in
new file mode 100644
index 0000000..e3ab980
--- /dev/null
+++ b/package/libfslparser/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBFSLPARSER
+	bool "libfslparser"
+	depends on BR2_arm # Only relevant for i.MX
+	help
+	  Binary parser libraries for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/libfslparser/libfslparser.mk b/package/libfslparser/libfslparser.mk
new file mode 100644
index 0000000..66f48cc
--- /dev/null
+++ b/package/libfslparser/libfslparser.mk
@@ -0,0 +1,40 @@
+#############################################################
+#
+# buildroot makefile for libfslparser
+#
+#############################################################
+
+LIBFSLPARSER_VERSION = 3.0.1
+# No official download site from freescale, just this mirror
+LIBFSLPARSER_SITE = http://download.ossystems.com.br/bsp/freescale/source
+LIBFSLPARSER_SOURCE = libfslparser-$(LIBFSLPARSER_VERSION).bin
+LIBFSLPARSER_LICENSE = Freescale Semiconductor Software License Agreement
+LIBFSLPARSER_LICENSE_FILES = EULA EULA.txt
+# This is a legal minefield: the EULA in the bin file specifies that
+# the Board Support Package includes software and hardware (sic!)
+# for which a separate license is needed...
+LIBFSLPARSER_REDISTRIBUTE = NO
+
+LIBFSLPARSER_INSTALL_STAGING = YES
+
+# The archive is a shell-self-extractor of a bzipped tar. It happens
+# to extract in the correct directory (libfslparser-x.y.z)
+# The --force makes sure it doesn't fail if the source dir already exists.
+# The --auto-accept skips the license check - not needed for us
+# because we have legal-info
+# Since the EULA in the bin file differs from the one in the tar file,
+# extract the one from the bin file as well.
+define LIBFSLPARSER_EXTRACT_CMDS
+	awk 'BEGIN      { start=0; } \
+	     /^EOEULA/  { start = 0; } \
+	                { if (start) print; } \
+	     /<<EOEULA/ { start=1; }'\
+	    $(DL_DIR)/$(LIBFSLPARSER_SOURCE) > $(@D)/EULA
+	cd $(BUILD_DIR); \
+	sh $(DL_DIR)/$(LIBFSLPARSER_SOURCE) --force --auto-accept
+endef
+
+# The Makefile installs several versions of the libraries, but we only
+# need one of them, depending on the platform.
+
+$(eval $(autotools-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 5/6] libfslcodec: new package
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
                   ` (3 preceding siblings ...)
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 4/6] libfslparser: " Arnout Vandecappelle
@ 2012-12-19 23:37 ` Arnout Vandecappelle
  2012-12-20  1:06   ` Benoît Thébaudeau
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 6/6] gst-fsl-plugins: " Arnout Vandecappelle
  2013-01-14 15:22 ` [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Peter Korsgaard
  6 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/Config.in                  |    1 +
 package/libfslcodec/Config.in      |    8 ++++++++
 package/libfslcodec/libfslcodec.mk |   40 ++++++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+)
 create mode 100644 package/libfslcodec/Config.in
 create mode 100644 package/libfslcodec/libfslcodec.mk

diff --git a/package/Config.in b/package/Config.in
index 171d936..a2bded6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -454,6 +454,7 @@ menu "Multimedia"
 source "package/libdvdread/Config.in"
 source "package/libdvdnav/Config.in"
 source "package/libebml/Config.in"
+source "package/libfslcodec/Config.in"
 source "package/libfslparser/Config.in"
 source "package/libfslvpuwrap/Config.in"
 source "package/libmatroska/Config.in"
diff --git a/package/libfslcodec/Config.in b/package/libfslcodec/Config.in
new file mode 100644
index 0000000..7b31b7a
--- /dev/null
+++ b/package/libfslcodec/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBFSLCODEC
+	bool "libfslcodec"
+	depends on BR2_arm # Only relevant for i.MX
+	help
+	  Binary codec libraries for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/libfslcodec/libfslcodec.mk b/package/libfslcodec/libfslcodec.mk
new file mode 100644
index 0000000..a2b57b8
--- /dev/null
+++ b/package/libfslcodec/libfslcodec.mk
@@ -0,0 +1,40 @@
+#############################################################
+#
+# buildroot makefile for libfslcodec
+#
+#############################################################
+
+LIBFSLCODEC_VERSION = 3.0.1
+# No official download site from freescale, just this mirror
+LIBFSLCODEC_SITE = http://download.ossystems.com.br/bsp/freescale/source
+LIBFSLCODEC_SOURCE = libfslcodec-$(LIBFSLCODEC_VERSION).bin
+LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c (flac, ogg headers)
+LIBFSLCODEC_LICENSE_FILES = EULA EULA.txt
+# This is a legal minefield: the EULA in the bin file specifies that
+# the Board Support Package includes software and hardware (sic!)
+# for which a separate license is needed...
+LIBFSLCODEC_REDISTRIBUTE = NO
+
+LIBFSLCODEC_INSTALL_STAGING = YES
+
+# The archive is a shell-self-extractor of a bzipped tar. It happens
+# to extract in the correct directory (libfslcodec-x.y.z)
+# The --force makes sure it doesn't fail if the source dir already exists.
+# The --auto-accept skips the license check - not needed for us
+# because we have legal-info.
+# Since the EULA in the bin file differs from the one in the tar file,
+# extract the one from the bin file as well.
+define LIBFSLCODEC_EXTRACT_CMDS
+	awk 'BEGIN      { start=0; } \
+	     /^EOEULA/  { start = 0; } \
+	                { if (start) print; } \
+	     /<<EOEULA/ { start=1; }'\
+	    $(DL_DIR)/$(LIBFSLCODEC_SOURCE) > $(@D)/EULA
+	cd $(BUILD_DIR); \
+	sh $(DL_DIR)/$(LIBFSLCODEC_SOURCE) --force --auto-accept
+endef
+
+# FIXME The Makefile installs both the arm9 and arm11 versions of the
+# libraries, but we only need one of them.
+
+$(eval $(autotools-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 6/6] gst-fsl-plugins: new package
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
                   ` (4 preceding siblings ...)
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 5/6] libfslcodec: " Arnout Vandecappelle
@ 2012-12-19 23:37 ` Arnout Vandecappelle
  2013-01-14 15:22 ` [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Peter Korsgaard
  6 siblings, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-19 23:37 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/multimedia/Config.in                       |    1 +
 package/multimedia/gst-fsl-plugins/Config.in       |   92 ++++++++++++++++++++
 ...sl-plugins-0001-gplay-add-missing-include.patch |   23 +++++
 ...gins-0002-Fix-bashism-in-configure-script.patch |   65 ++++++++++++++
 .../gst-fsl-plugins-0003-Use-proper-objdump.patch  |   36 ++++++++
 .../multimedia/gst-fsl-plugins/gst-fsl-plugins.mk  |   42 +++++++++
 6 files changed, 259 insertions(+)
 create mode 100644 package/multimedia/gst-fsl-plugins/Config.in
 create mode 100644 package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0001-gplay-add-missing-include.patch
 create mode 100644 package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0002-Fix-bashism-in-configure-script.patch
 create mode 100644 package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0003-Use-proper-objdump.patch
 create mode 100644 package/multimedia/gst-fsl-plugins/gst-fsl-plugins.mk

diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 273d9bc..e50eda9 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -8,6 +8,7 @@ source "package/multimedia/ffmpeg/Config.in"
 source "package/multimedia/gstreamer/Config.in"
 source "package/multimedia/gst-ffmpeg/Config.in"
 source "package/multimedia/gst-dsp/Config.in"
+source "package/multimedia/gst-fsl-plugins/Config.in"
 source "package/multimedia/gst-omapfb/Config.in"
 source "package/multimedia/gst-plugins-base/Config.in"
 source "package/multimedia/gst-plugins-good/Config.in"
diff --git a/package/multimedia/gst-fsl-plugins/Config.in b/package/multimedia/gst-fsl-plugins/Config.in
new file mode 100644
index 0000000..4246734
--- /dev/null
+++ b/package/multimedia/gst-fsl-plugins/Config.in
@@ -0,0 +1,92 @@
+comment "gst-fsl-plugins requires an imx-specific kernel to be built"
+	depends on BR2_arm && BR2_PACKAGE_GSTREAMER && !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_GST_FSL_PLUGINS
+	bool "gst-fsl-plugins"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_arm # Only relevant for i.MX
+	depends on BR2_PACKAGE_GSTREAMER
+	select BR2_PACKAGE_GST_PLUGINS_BASE
+	select BR2_PACKAGE_LIBFSLVPUWRAP
+	select BR2_PACKAGE_IMX_LIB
+	select BR2_PACKAGE_LIBFSLPARSER
+	select BR2_PACKAGE_LIBFSLCODEC
+	help
+	  GStreamer plugins for hardware-accelerated audio and video
+	  parsers and codecs on i.MX platforms. It requires a kernel that
+	  includes the i.MX specific headers to be built.
+
+	  To use the VPU, its firmware blob must be installed as well. This
+	  can be found in the firmware-imx package in the "Hardware handling"
+	  menu.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream. Pengutronix maintains gst-fsl-plugins at
+	  git://git.pengutronix.de/git/imx/gst-plugins-fsl-vpu.git
+	  but it diverges heavily from Freescale's original implementation.
+
+if BR2_PACKAGE_GST_FSL_PLUGINS
+choice
+	prompt "i.MX platform"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX233
+	bool "imx233"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX25
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX25_3STACK
+	bool "imx25"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX27
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX27ADS
+	bool "imx27"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX28
+	bool "imx28"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX31
+	bool "imx31"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX35
+	bool "imx35"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX37
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX37_3STACK
+	bool "imx37"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX50
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX50
+	bool "imx50"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX51
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX51
+	bool "imx51"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX53
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX53
+	bool "imx53"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX5X
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX5X
+	bool "imx5X"
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX6
+	select BR2_PACKAGE_IMX_LIB_PLATFORM_IMX6Q
+	bool "imx6"
+
+endchoice
+
+config BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM
+	string
+	default "MX233" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX233
+	default "MX25" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX25
+	default "MX27" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX27
+	default "MX28" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX28
+	default "MX31" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX31
+	default "MX35" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX35
+	default "MX37" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX37
+	default "MX50" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX50
+	default "MX51" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX51
+	default "MX53" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX53
+	default "MX5X" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX5X
+	default "MX6" if BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM_MX6
+endif
diff --git a/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0001-gplay-add-missing-include.patch b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0001-gplay-add-missing-include.patch
new file mode 100644
index 0000000..19753bc
--- /dev/null
+++ b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0001-gplay-add-missing-include.patch
@@ -0,0 +1,23 @@
+From ed649ccb8ddc724546172d329fca39b23c49b804 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Mon, 17 Dec 2012 17:58:28 +0100
+Subject: [PATCH] gplay: add missing include
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ tools/gplay/gst_snapshot.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/gplay/gst_snapshot.c b/tools/gplay/gst_snapshot.c
+index 40dbb6f..596f399 100755
+--- a/tools/gplay/gst_snapshot.c
++++ b/tools/gplay/gst_snapshot.c
+@@ -22,6 +22,7 @@
+ 
+ #include <gst/gst.h>
+ #include <string.h>
++#include <stdio.h>
+ #include "gst_snapshot.h"
+ 
+ static void
+-- 
diff --git a/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0002-Fix-bashism-in-configure-script.patch b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0002-Fix-bashism-in-configure-script.patch
new file mode 100644
index 0000000..8af3644
--- /dev/null
+++ b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0002-Fix-bashism-in-configure-script.patch
@@ -0,0 +1,65 @@
+From 83b4f84b1c490b9bb816e1ecbc743d80d48cc06d Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Tue, 18 Dec 2012 12:05:22 +0100
+Subject: [PATCH] Fix bashism in configure script.
+
+The configure script uses +=, which is not POSIX. Debians that
+have the default dash as /bin/sh define a variable ending with
++ instead of appending to it.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ configure.ac |   22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5968eb6..1a31a06 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -60,10 +60,10 @@ AC_DEFUN([CHECK_DISABLE_FEATURE],
+         [use_[$1]=yes])
+     if test "$use_[$1]" = "yes"; then
+         SAVE_CPPFLAGS="$CPPFLAGS"
+-        CPPFLAGS=`$PKG_CONFIG --cflags libfslaudiocodec`
+-        CPPFLAGS+=`$PKG_CONFIG --cflags libfslvideocodec`
+-        CPPFLAGS+=`$PKG_CONFIG --cflags libfslparser`
+-        CPPFLAGS+=`$PKG_CONFIG --cflags libfslvpuwrap`
++        CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libfslaudiocodec`"
++        CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libfslvideocodec`"
++        CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libfslparser`"
++        CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libfslvpuwrap`"
+         AC_CHECK_HEADERS([$4], HAVE_[$3]=yes, HAVE_[$3]=no && break)
+         CPPFLAGS="$SAVE_CPPFLAGS"
+         if test "x$HAVE_[$3]" = "xyes"; then
+@@ -157,7 +157,7 @@ AC_SUBST(GST_PLUGINS_BASE_LIBS)
+ AC_CHECK_HEADERS([vpu_lib.h], [HAVE_VPU_LIB=yes], [HAVE_VPU_LIB=no])
+ if test "x$HAVE_VPU_LIB" = "xyes"; then
+     VPU_LIBS=`$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`
+-    VPU_LIBS+=" -lvpu"
++    VPU_LIBS="$VPU_LIBS -lvpu"
+ fi
+ AC_SUBST(VPU_LIBS)
+ 
+@@ -173,15 +173,15 @@ AC_SUBST(IPU_CFLAGS)
+ AC_SUBST(IPU_LIBS)
+ 
+ FSL_MM_CORE_CFLAGS=`$PKG_CONFIG --cflags libfslaudiocodec 2>/dev/null`
+-FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslvideocodec 2>/dev/null`
+-FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslparser 2>/dev/null`
+-FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslvpuwrap 2>/dev/null`
++FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslvideocodec 2>/dev/null`"
++FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslparser 2>/dev/null`"
++FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslvpuwrap 2>/dev/null`"
+ AC_SUBST(FSL_MM_CORE_CFLAGS)
+ 
+ FSL_MM_CORE_LIBS=`$PKG_CONFIG --libs libfslaudiocodec 2>/dev/null`
+-FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslvideocodec 2>/dev/null`
+-FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslparser 2>/dev/null`
+-FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`
++FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslvideocodec 2>/dev/null`"
++FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslparser 2>/dev/null`"
++FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`"
+ AC_SUBST(FSL_MM_CORE_LIBS)
+ 
+ EXTRAPLATFORMCFLAGS="-DARM -D_GNUC_"
+-- 
diff --git a/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0003-Use-proper-objdump.patch b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0003-Use-proper-objdump.patch
new file mode 100644
index 0000000..8fce239
--- /dev/null
+++ b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins-0003-Use-proper-objdump.patch
@@ -0,0 +1,36 @@
+From c58b658a93b1b6d6e94ba0306d58de845012cef6 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Tue, 18 Dec 2012 12:22:52 +0100
+Subject: [PATCH] Use proper objdump
+
+If the OBJDUMP environment variable is set, that should be used rather
+than the objdump in PATH.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ configure.ac |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1a31a06..cc7557d 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,7 +17,7 @@ AC_DEFUN([FIND_PARSER_SONAME],
+     AC_MSG_CHECKING([for lib_$1_parser_$2_elinux.3.0.so soname])
+     path=`$PKG_CONFIG --variable=libdir libfslparser`
+     SONAME=$( $CC -print-file-name=$path/lib_$1_parser_$2_elinux.so | \
+-	    while read output; do objdump -p $output | \
++	    while read output; do $OBJDUMP -p $output | \
+ 	    grep "SONAME" | \
+ 	    sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
+     if [[ -z "$SONAME" ]]; then
+@@ -37,7 +37,7 @@ AC_DEFUN([FIND_ACODEC_SONAME],
+     AC_MSG_CHECKING([for lib_$1_wrap_$2_elinux.so soname])
+     path=`$PKG_CONFIG --variable=libdir libfslaudiocodec`
+     SONAME=$( $CC -print-file-name=$path/wrap/lib_$1_wrap_$2_elinux.so | \
+-	    while read output; do objdump -p $output | \
++	    while read output; do $OBJDUMP -p $output | \
+ 	    grep "SONAME" | \
+ 	    sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
+     if [[ -z "$SONAME" ]]; then
+-- 
diff --git a/package/multimedia/gst-fsl-plugins/gst-fsl-plugins.mk b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins.mk
new file mode 100644
index 0000000..639fd52
--- /dev/null
+++ b/package/multimedia/gst-fsl-plugins/gst-fsl-plugins.mk
@@ -0,0 +1,42 @@
+#############################################################
+#
+# buildroot makefile for gst-fsl-plugins
+#
+#############################################################
+
+GST_FSL_PLUGINS_VERSION = 3.0.1
+# No official download site from freescale, just this mirror
+GST_FSL_PLUGINS_SITE = http://download.ossystems.com.br/bsp/freescale/source
+
+# Most is LGPLv2+, but some sources are copied from upstream and are
+# LGPLv2.1+, which essentially makes it LGPLv2.1+
+GST_FSL_PLUGINS_LICENSE = LGPLv2+, LGPLv2.1+, PROPRIETARY (asf.h)
+GST_FSL_PLUGINS_LICENSE_FILES = COPYING-LGPL-2.1 COPYING-LGPL-2
+
+GST_FSL_PLUGINS_INSTALL_STAGING = YES
+GST_FSL_PLUGINS_AUTORECONF = YES
+
+GST_FSL_PLUGINS_DEPENDENCIES += host-pkgconf gstreamer gst-plugins-base \
+	libfslvpuwrap imx-lib libfslparser libfslcodec
+
+GST_FSL_PLUGINS_CONF_ENV = PLATFORM=$(BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM)
+
+# needs access to imx-specific kernel headers
+GST_FSL_PLUGINS_DEPENDENCIES += linux
+GST_FSL_PLUGINS_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -idirafter $(LINUX_DIR)/include"
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
+GST_FSL_PLUGINS_DEPENDENCIES += xlib_libX11
+GST_FSL_PLUGINS_CONF_OPT += --enable-x11
+else
+GST_FSL_PLUGINS_CONF_OPT += --disable-x11
+endif
+
+# Autoreconf requires an m4 directory to exist
+define GST_FSL_PLUGINS_PATCH_M4
+	mkdir -p $(@D)/m4
+endef
+
+GST_FSL_PLUGINS_POST_PATCH_HOOKS += GST_FSL_PLUGINS_PATCH_M4
+
+$(eval $(autotools-package))
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 5/6] libfslcodec: new package
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 5/6] libfslcodec: " Arnout Vandecappelle
@ 2012-12-20  1:06   ` Benoît Thébaudeau
  2012-12-20  8:19     ` Arnout Vandecappelle
  0 siblings, 1 reply; 14+ messages in thread
From: Benoît Thébaudeau @ 2012-12-20  1:06 UTC (permalink / raw)
  To: buildroot

Dear Arnout Vandecappelle,

On Thursday, December 20, 2012 12:37:35 AM, Arnout Vandecappelle wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> ---
>  package/Config.in                  |    1 +
>  package/libfslcodec/Config.in      |    8 ++++++++
>  package/libfslcodec/libfslcodec.mk |   40
>  ++++++++++++++++++++++++++++++++++++
>  3 files changed, 49 insertions(+)
>  create mode 100644 package/libfslcodec/Config.in
>  create mode 100644 package/libfslcodec/libfslcodec.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 171d936..a2bded6 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -454,6 +454,7 @@ menu "Multimedia"
>  source "package/libdvdread/Config.in"
>  source "package/libdvdnav/Config.in"
>  source "package/libebml/Config.in"
> +source "package/libfslcodec/Config.in"
>  source "package/libfslparser/Config.in"
>  source "package/libfslvpuwrap/Config.in"
>  source "package/libmatroska/Config.in"
> diff --git a/package/libfslcodec/Config.in
> b/package/libfslcodec/Config.in
> new file mode 100644
> index 0000000..7b31b7a
> --- /dev/null
> +++ b/package/libfslcodec/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_LIBFSLCODEC
> +	bool "libfslcodec"
> +	depends on BR2_arm # Only relevant for i.MX
> +	help
> +	  Binary codec libraries for the Freescale i.MX SoCs.
> +
> +	  This library is provided by Freescale as-is and doesn't have
> +	  an upstream.
> diff --git a/package/libfslcodec/libfslcodec.mk
> b/package/libfslcodec/libfslcodec.mk
> new file mode 100644
> index 0000000..a2b57b8
> --- /dev/null
> +++ b/package/libfslcodec/libfslcodec.mk
> @@ -0,0 +1,40 @@
> +#############################################################
> +#
> +# buildroot makefile for libfslcodec
> +#
> +#############################################################
> +
> +LIBFSLCODEC_VERSION = 3.0.1
> +# No official download site from freescale, just this mirror
> +LIBFSLCODEC_SITE =
> http://download.ossystems.com.br/bsp/freescale/source
> +LIBFSLCODEC_SOURCE = libfslcodec-$(LIBFSLCODEC_VERSION).bin
> +LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License
> Agreement, BSD-3c (flac, ogg headers)
> +LIBFSLCODEC_LICENSE_FILES = EULA EULA.txt
> +# This is a legal minefield: the EULA in the bin file specifies that
> +# the Board Support Package includes software and hardware (sic!)
> +# for which a separate license is needed...
> +LIBFSLCODEC_REDISTRIBUTE = NO
> +
> +LIBFSLCODEC_INSTALL_STAGING = YES
> +
> +# The archive is a shell-self-extractor of a bzipped tar. It happens
> +# to extract in the correct directory (libfslcodec-x.y.z)
> +# The --force makes sure it doesn't fail if the source dir already
> exists.
> +# The --auto-accept skips the license check - not needed for us
> +# because we have legal-info.
> +# Since the EULA in the bin file differs from the one in the tar
> file,
> +# extract the one from the bin file as well.
> +define LIBFSLCODEC_EXTRACT_CMDS
> +	awk 'BEGIN      { start=0; } \
> +	     /^EOEULA/  { start = 0; } \
> +	                { if (start) print; } \
> +	     /<<EOEULA/ { start=1; }'\
> +	    $(DL_DIR)/$(LIBFSLCODEC_SOURCE) > $(@D)/EULA
> +	cd $(BUILD_DIR); \
> +	sh $(DL_DIR)/$(LIBFSLCODEC_SOURCE) --force --auto-accept
> +endef
> +
> +# FIXME The Makefile installs both the arm9 and arm11 versions of
> the
> +# libraries, but we only need one of them.
> +
> +$(eval $(autotools-package))

For packages like this one that install pre-built libraries, it would be good to
document somewhere or to auto-check (e.g. with toolchain kconfig options vs.
package kconfig options) the ABI compatibility to make sure that there won't be
any issue with the toolchain used.

Best regards,
Beno?t

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 5/6] libfslcodec: new package
  2012-12-20  1:06   ` Benoît Thébaudeau
@ 2012-12-20  8:19     ` Arnout Vandecappelle
  2012-12-20  9:08       ` Peter Korsgaard
  0 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-20  8:19 UTC (permalink / raw)
  To: buildroot

On 20/12/12 02:06, Beno?t Th?baudeau wrote:
>> >  +# FIXME The Makefile installs both the arm9 and arm11 versions of
>> >  the
>> >  +# libraries, but we only need one of them.
>> >  +
>> >  +$(eval $(autotools-package))
> For packages like this one that install pre-built libraries, it would be good to
> document somewhere or to auto-check (e.g. with toolchain kconfig options vs.
> package kconfig options) the ABI compatibility to make sure that there won't be
> any issue with the toolchain used.

  I agree, but how?

  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 5/6] libfslcodec: new package
  2012-12-20  8:19     ` Arnout Vandecappelle
@ 2012-12-20  9:08       ` Peter Korsgaard
  2012-12-20 10:34         ` Arnout Vandecappelle
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Korsgaard @ 2012-12-20  9:08 UTC (permalink / raw)
  To: buildroot

>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:

Hi,

 >> For packages like this one that install pre-built libraries, it
 >> would be good to document somewhere or to auto-check (e.g. with
 >> toolchain kconfig options vs.  package kconfig options) the ABI
 >> compatibility to make sure that there won't be any issue with the
 >> toolchain used.

 Arnout>  I agree, but how?

I don't know the specifics of this package, but presumably it only works
with glibc and a specific soft/softfp/hard floating point mode? If so,
we could atleast catch some of these dependencies in Config.in.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 5/6] libfslcodec: new package
  2012-12-20  9:08       ` Peter Korsgaard
@ 2012-12-20 10:34         ` Arnout Vandecappelle
  2012-12-20 10:50           ` Peter Korsgaard
  0 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2012-12-20 10:34 UTC (permalink / raw)
  To: buildroot

On 20/12/12 10:08, Peter Korsgaard wrote:
>>>>>> "Arnout" == Arnout Vandecappelle<arnout@mind.be>  writes:
>
> Hi,
>
>   >>  For packages like this one that install pre-built libraries, it
>   >>  would be good to document somewhere or to auto-check (e.g. with
>   >>  toolchain kconfig options vs.  package kconfig options) the ABI
>   >>  compatibility to make sure that there won't be any issue with the
>   >>  toolchain used.
>
>   Arnout>   I agree, but how?
>
> I don't know the specifics of this package, but presumably it only works
> with glibc and a specific soft/softfp/hard floating point mode? If so,
> we could atleast catch some of these dependencies in Config.in.

  Yes, but how to know what the dependencies are (except by run-testing 
with all the different toolchains on all the different SoCs)?

  I'd also like to find a way to decide which of the _arm9, _arm11 or 
_arm12 libraries to use (they all have the same ABI flags...).

  Regards,
  Arnout


-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 5/6] libfslcodec: new package
  2012-12-20 10:34         ` Arnout Vandecappelle
@ 2012-12-20 10:50           ` Peter Korsgaard
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Korsgaard @ 2012-12-20 10:50 UTC (permalink / raw)
  To: buildroot

>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:

Hi,

 >> I don't know the specifics of this package, but presumably it only
 >> works with glibc and a specific soft/softfp/hard floating point
 >> mode? If so, we could atleast catch some of these dependencies in
 >> Config.in.

 Arnout>  Yes, but how to know what the dependencies are (except by
 Arnout> run-testing with all the different toolchains on all the
 Arnout> different SoCs)?

Doesn't Freescale document this anyware, or atleast mention what
toolchain they have used to build it?

 Arnout>  I'd also like to find a way to decide which of the _arm9,
 Arnout> _arm11 or _arm12 libraries to use (they all have the same ABI
 Arnout> flags...).

Can't you decide based on the selected ARM subarchitecture? If we need
to do this in a bunch of places we could centralize it by adding some
BR2_ARM_Vx symbols and select the correct one from the subarch choice.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries
  2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
                   ` (5 preceding siblings ...)
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 6/6] gst-fsl-plugins: " Arnout Vandecappelle
@ 2013-01-14 15:22 ` Peter Korsgaard
  6 siblings, 0 replies; 14+ messages in thread
From: Peter Korsgaard @ 2013-01-14 15:22 UTC (permalink / raw)
  To: buildroot

>>>>> "Arnout" == Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> writes:

 Arnout>  This patch series adds Freescale's proprietary multimedia libraries for
 Arnout> the i.MX platform.

 Arnout>  I only tested it on mx6q (SabreLite). I'm sending it now even
 Arnout> though there are still a few major shortcomings, so Peter (and
 Arnout> others) have the chance to test it on different platforms while
 Arnout> I'm on vacation.

Thanks. Nobody commented on these patches, and it's obviously useful for
some people even if it isn't perfect, so I've committed them, thanks.

I haven't gotten to runtime test it yet, just done a tets build based on
nitrogen6x_defconfig.

I will try to find time to runtime test stuff as well soonish.


 Arnout>  These are the things I'd like to see improved - feedback is
 Arnout>  very welcome!

 Arnout> * The platform stuff. A separate choice in imx-lib and
 Arnout> gst-fsl-plugins really doesn't work, because they are not kept
 Arnout> consistent (the 'select' doesn't always work).

Agreed. My build first failed because I had just enabled gst-fsl-plugins
but forgotten to track down the imx-lib option to build for mx6.

I wonder where we should put such a "global" option though. Together
with the arch settings?


 Arnout> * All the binary libraries are installed, even though they are
 Arnout> for other platforms. The whole thing is about 10MB.

Yeah, that could presumably be trimmed fairly easily if we had a global
imx variant setting.

 Arnout> * I couldn't find an official upstream download site, so I used
 Arnout> a mirror, but it risks disappearing unexpectedly.

Yeah :/ It should get mirrored on sources.buildroot.net soon
though. It's not completely clear to me if we are strictly allowed to
mirror these though.

 Arnout>  For the platform stuff, one idea I had was to create a new menu for
 Arnout> platform-specific packages. In that menu, you'd have a menuconfig per
 Arnout> platform, and this menu could give a SoC choice. The platform-specific
 Arnout> menus can collect all the platform-specific packages which are now
 Arnout> "polluting" the rest of the menus. For example:

 Arnout> menu "Platform-specific packages"

 Arnout> menuconfig "Freescale i.MX"

 Arnout> choice "i.MX SoC"
 Arnout> config "i.MX 51"
 Arnout> config "i.MX 6"
 Arnout> endchoice

 Arnout> menuconfig "Freescale QorIQ"

 Arnout> menuconfig "Raspberry Pi"

 Arnout> menuconfig "Snowball"
 Arnout> source "package/snowball-hdmiservice"
 Arnout> source "package/snowball-init"

 Arnout> menuconfig "TI Davinci"

Yes, I guess that's what we need to move towards. It gets complicated
when things either don't fit nicely within a single family though.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH RFC 3/6] firmware-imx: new package
  2012-12-19 23:37 ` [Buildroot] [PATCH RFC 3/6] firmware-imx: " Arnout Vandecappelle
@ 2013-01-14 15:24   ` Peter Korsgaard
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Korsgaard @ 2013-01-14 15:24 UTC (permalink / raw)
  To: buildroot

>>>>> "Arnout" == Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> writes:

 Arnout> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
 Arnout> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
 Arnout> ---
 Arnout>  package/Config.in                    |    1 +
 Arnout>  package/firmware-imx/Config.in       |   13 ++++++++++++
 Arnout>  package/firmware-imx/firmware-imx.mk |   38 ++++++++++++++++++++++++++++++++++
 Arnout>  3 files changed, 52 insertions(+)
 Arnout>  create mode 100644 package/firmware-imx/Config.in
 Arnout>  create mode 100644 package/firmware-imx/firmware-imx.mk

 Arnout> diff --git a/package/Config.in b/package/Config.in
 Arnout> index ac2488e..52bb408 100644
 Arnout> --- a/package/Config.in
 Arnout> +++ b/package/Config.in
 Arnout> @@ -213,6 +213,7 @@ source "package/eeprog/Config.in"
 Arnout>  source "package/evtest/Config.in"
 Arnout>  source "package/flashrom/Config.in"
 Arnout>  source "package/fconfig/Config.in"
 Arnout> +source "package/firmware-imx/Config.in"

I moved this under the new Misc devices firmware menu.


 Arnout> +define FIRMWARE_IMX_INSTALL_TARGET_CMDS
 Arnout> +	for blobdir in $(FIRMWARE_IMX_BLOBS); do \
 Arnout> +		cp -r $(@D)/firmware/$${blobdir} $(TARGET_DIR)/lib/firmware; \
 Arnout> +	done
 Arnout> +endef

And stuck a mkdir -p $(TARGET_DIR)/lib/firmware here to ensure it's
available.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-01-14 15:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-19 23:37 [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Arnout Vandecappelle
2012-12-19 23:37 ` [Buildroot] [PATCH RFC 1/6] imx-lib: new package Arnout Vandecappelle
2012-12-19 23:37 ` [Buildroot] [PATCH RFC 2/6] libfslvpuwrap: " Arnout Vandecappelle
2012-12-19 23:37 ` [Buildroot] [PATCH RFC 3/6] firmware-imx: " Arnout Vandecappelle
2013-01-14 15:24   ` Peter Korsgaard
2012-12-19 23:37 ` [Buildroot] [PATCH RFC 4/6] libfslparser: " Arnout Vandecappelle
2012-12-19 23:37 ` [Buildroot] [PATCH RFC 5/6] libfslcodec: " Arnout Vandecappelle
2012-12-20  1:06   ` Benoît Thébaudeau
2012-12-20  8:19     ` Arnout Vandecappelle
2012-12-20  9:08       ` Peter Korsgaard
2012-12-20 10:34         ` Arnout Vandecappelle
2012-12-20 10:50           ` Peter Korsgaard
2012-12-19 23:37 ` [Buildroot] [PATCH RFC 6/6] gst-fsl-plugins: " Arnout Vandecappelle
2013-01-14 15:22 ` [Buildroot] [PATCH RFC 0/6] Freescale i.MX multimedia libraries Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox