diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2013-06-02 16:33:05 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2013-06-02 16:33:05 +0200 |
commit | 1ba51d2fbddd5650f8caea0a327b9031238ad843 (patch) | |
tree | 05d5df7b487e76597b34cb0b1fc9543525169a62 /package/freescale-imx | |
parent | 0c94aa549cc8cf483bc8c3443a2b1f772d5d180b (diff) | |
parent | fb2f3d58bde6aaac12b62eeb16492c93329b8713 (diff) | |
download | buildroot-novena-1ba51d2fbddd5650f8caea0a327b9031238ad843.tar.gz buildroot-novena-1ba51d2fbddd5650f8caea0a327b9031238ad843.zip |
Merge branch 'next'
Diffstat (limited to 'package/freescale-imx')
-rw-r--r-- | package/freescale-imx/Config.in | 8 | ||||
-rw-r--r-- | package/freescale-imx/firmware-imx/Config.in | 13 | ||||
-rw-r--r-- | package/freescale-imx/firmware-imx/firmware-imx.mk | 38 | ||||
-rw-r--r-- | package/freescale-imx/freescale-imx.mk | 13 | ||||
-rw-r--r-- | package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 35 | ||||
-rw-r--r-- | package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q-0001-correct-HAL-include.patch | 16 | ||||
-rw-r--r-- | package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 79 | ||||
-rw-r--r-- | package/freescale-imx/imx-lib/Config.in | 53 | ||||
-rw-r--r-- | package/freescale-imx/imx-lib/imx-lib.mk | 40 |
9 files changed, 295 insertions, 0 deletions
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in new file mode 100644 index 000000000..7c22f79cf --- /dev/null +++ b/package/freescale-imx/Config.in @@ -0,0 +1,8 @@ +menu "Freescale i.MX libraries" + depends on BR2_arm + +source "package/freescale-imx/imx-lib/Config.in" +source "package/freescale-imx/firmware-imx/Config.in" +source "package/freescale-imx/gpu-viv-bin-mx6q/Config.in" + +endmenu diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in new file mode 100644 index 000000000..dd96d8889 --- /dev/null +++ b/package/freescale-imx/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/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk new file mode 100644 index 000000000..85f8dc29d --- /dev/null +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk @@ -0,0 +1,38 @@ +############################################################# +# +# firmware-imx +# +############################################################# + +FIRMWARE_IMX_VERSION = $(FREESCALE_IMX_VERSION) +FIRMWARE_IMX_SITE = $(FREESCALE_IMX_MIRROR_SITE) +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 + mkdir -p $(TARGET_DIR)/lib/firmware + for blobdir in $(FIRMWARE_IMX_BLOBS); do \ + cp -r $(@D)/firmware/$${blobdir} $(TARGET_DIR)/lib/firmware; \ + done +endef + +$(eval $(generic-package)) diff --git a/package/freescale-imx/freescale-imx.mk b/package/freescale-imx/freescale-imx.mk new file mode 100644 index 000000000..2553f6720 --- /dev/null +++ b/package/freescale-imx/freescale-imx.mk @@ -0,0 +1,13 @@ +############################################################# +# +# freescale-imx +# +############################################################# + +FREESCALE_IMX_VERSION = 1.1.0 + +# No official download site from freescale, just this mirror +FREESCALE_IMX_MIRROR_SITE = http://download.ossystems.com.br/bsp/freescale/source + +include package/freescale-imx/*/*.mk + diff --git a/package/freescale-imx/gpu-viv-bin-mx6q/Config.in b/package/freescale-imx/gpu-viv-bin-mx6q/Config.in new file mode 100644 index 000000000..06544c406 --- /dev/null +++ b/package/freescale-imx/gpu-viv-bin-mx6q/Config.in @@ -0,0 +1,35 @@ +comment "gpu-viv-bin-mx6q requires a glibc toolchain" + depends on !(BR2_TOOLCHAIN_CTNG_glibc || \ + BR2_TOOLCHAIN_CTNG_eglibc || \ + BR2_TOOLCHAIN_EXTERNAL_GLIBC) + +config BR2_PACKAGE_GPU_VIV_BIN_MX6Q + bool "gpu-viv-bin-mx6q" + select BR2_PACKAGE_HAS_OPENGL_EGL + select BR2_PACKAGE_HAS_OPENGL_ES + depends on BR2_arm # Only relevant for i.MX6 + # Library binaries are linked against libc.so.6 + depends on BR2_TOOLCHAIN_CTNG_glibc || \ + BR2_TOOLCHAIN_CTNG_eglibc || \ + BR2_TOOLCHAIN_EXTERNAL_GLIBC + help + Userspace libraries for Vivante GPU on i.MX6 platforms + + It contains libraries and headers for GLES, OpenCL, and + OpenVG. It also contains a DRI plugin for X11. It also + contains a plugin for DirectFB-1.4.0, but that doesn't work + together with buildroot's DirectFB version. + + This library is provided by Freescale as-is and doesn't have + an upstream. + +if BR2_PACKAGE_GPU_VIV_BIN_MX6Q + +config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES + bool "install examples" + help + Copy the Vivante examples to the target. + + Warning: examples take approximately 150 MB of disk space. + +endif diff --git a/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q-0001-correct-HAL-include.patch b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q-0001-correct-HAL-include.patch new file mode 100644 index 000000000..c83cd559b --- /dev/null +++ b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q-0001-correct-HAL-include.patch @@ -0,0 +1,16 @@ +Correct the directory path for gc_hal_eglplatform_type.h + +Signed-off-by: Henk Fijnvandraat <h.fijnvandraat@inter.nl.net> + +diff -rup gpu-viv-bin-mx6q-1.1.0-orig/usr/include/gc_vdk_types.h gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h +--- gpu-viv-bin-mx6q-1.1.0-orig/usr/include/gc_vdk_types.h 2012-12-18 10:35:55.000000000 +0100 ++++ gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h 2013-05-09 21:09:28.080138681 +0200 +@@ -39,7 +39,7 @@ extern "C" { + #endif + + #include <EGL/egl.h> +-#include "gc_hal_eglplatform_type.h" ++#include <HAL/gc_hal_eglplatform_type.h> + + + /******************************************************************************* diff --git a/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk new file mode 100644 index 000000000..f988d252a --- /dev/null +++ b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk @@ -0,0 +1,79 @@ +############################################################# +# +# gpu-viv-bin-mx6q +# +############################################################# + +GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION) +GPU_VIV_BIN_MX6Q_SITE = $(FREESCALE_IMX_MIRROR_SITE) +GPU_VIV_BIN_MX6Q_SOURCE = gpu-viv-bin-mx6q-$(GPU_VIV_BIN_MX6Q_VERSION).bin + +GPU_VIV_BIN_MX6Q_INSTALL_STAGING = YES + +GPU_VIV_BIN_MX6Q_LICENSE = Freescale Semiconductor Software License Agreement + +# No license file is included in the archive; we could extract it from +# the self-extractor, but that's just too much effort. +# 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... +GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO + +# DirectFB is not supported (wrong version) +ifeq ($(BR2_PACKAGE_XORG7),y) +GPU_VIV_BIN_MX6Q_LIB_TARGET = x11 +else +GPU_VIV_BIN_MX6Q_LIB_TARGET = fb +endif + +# The archive is a shell-self-extractor of a bzipped tar. It happens +# to extract in the correct directory (gpu-viv-bin-mx6q-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 GPU_VIV_BIN_MX6Q_EXTRACT_CMDS + (cd $(BUILD_DIR); \ + sh $(DL_DIR)/$(GPU_VIV_BIN_MX6Q_SOURCE) --force --auto-accept) +endef + +# Instead of building, we fix up the inconsistencies that exist +# in the upstream archive here. +# Make sure these commands are idempotent. +define GPU_VIV_BIN_MX6Q_BUILD_CMDS + $(SED) 's/defined(LINUX)/defined(__linux__)/g' $(@D)/usr/include/*/*.h + for lib in EGL GAL VIVANTE; do \ + ln -sf lib$${lib}-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so \ + $(@D)/usr/lib/lib$${lib}.so; \ + done + ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1 + ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so +endef + +define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS + cp -r $(@D)/usr/* $(STAGING_DIR)/usr +endef + +ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES),y) +define GPU_VIV_BIN_MX6Q_INSTALL_EXAMPLES + mkdir -p $(TARGET_DIR)/usr/share/examples/ + cp -r $(@D)/opt/* $(TARGET_DIR)/usr/share/examples/ +endef +endif + +# On the target, remove the unused libraries. +# Note that this is _required_, else ldconfig may create symlinks +# to the wrong library +define GPU_VIV_BIN_MX6Q_INSTALL_TARGET_CMDS + $(GPU_VIV_BIN_MX6Q_INSTALL_EXAMPLES) + cp -a $(@D)/usr/lib $(TARGET_DIR)/usr + for lib in EGL GAL VIVANTE; do \ + for f in $(TARGET_DIR)/usr/lib/lib$${lib}-*.so; do \ + case $$f in \ + *-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so) : ;; \ + *) $(RM) $$f ;; \ + esac; \ + done; \ + done +endef + +$(eval $(generic-package)) diff --git a/package/freescale-imx/imx-lib/Config.in b/package/freescale-imx/imx-lib/Config.in new file mode 100644 index 000000000..161700985 --- /dev/null +++ b/package/freescale-imx/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/freescale-imx/imx-lib/imx-lib.mk b/package/freescale-imx/imx-lib/imx-lib.mk new file mode 100644 index 000000000..67e8db3e0 --- /dev/null +++ b/package/freescale-imx/imx-lib/imx-lib.mk @@ -0,0 +1,40 @@ +############################################################# +# +# imx-lib +# +############################################################# + +IMX_LIB_VERSION = $(FREESCALE_IMX_VERSION) +IMX_LIB_SITE = $(FREESCALE_IMX_MIRROR_SITE) +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)) |