All of 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 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.