initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
+129
View File
@@ -0,0 +1,129 @@
menuconfig BR2_PACKAGE_FREESCALE_IMX
bool "Freescale i.MX libraries"
depends on BR2_arm || BR2_aarch64
help
Those packages provide hardware acceleration for GPU or VPU,
hardware optimization or some hardware tools for Freescale
i.MX platforms.
if BR2_PACKAGE_FREESCALE_IMX
choice
prompt "i.MX platform"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
bool "imx25-3stack"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
bool "imx27ads"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
bool "imx37-3stack"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
bool "imx50"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
bool "imx51"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
bool "imx53"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
bool "imx6q/imx6dl"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
bool "imx6sl/imx6sx"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
bool "imx6ul/imx6ull"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
bool "imx7d/imx7ulp"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
bool "imx8"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
bool "imx8m"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
bool "imx8mm"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
bool "imx8mn"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
bool "imx8mp"
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
bool "imx8x"
endchoice
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
string
default "IMX25_3STACK" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
default "IMX27ADS" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
default "IMX37_3STACK" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
default "IMX50" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
default "IMX51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
default "IMX53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
default "IMX6Q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
default "IMX8MQ" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
default "IMX8MM" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
default "IMX8MN" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
default "IMX8MP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
bool
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
bool
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
bool
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
source "package/freescale-imx/imx-alsa-plugins/Config.in"
source "package/freescale-imx/imx-codec/Config.in"
source "package/freescale-imx/imx-kobs/Config.in"
source "package/freescale-imx/imx-lib/Config.in"
source "package/freescale-imx/imx-m4fwloader/Config.in"
source "package/freescale-imx/imx-parser/Config.in"
source "package/freescale-imx/imx-uuc/Config.in"
source "package/freescale-imx/imx-vpu/Config.in"
source "package/freescale-imx/imx-vpu-hantro/Config.in"
source "package/freescale-imx/imx-vpuwrap/Config.in"
source "package/freescale-imx/firmware-imx/Config.in"
source "package/freescale-imx/imx-sc-firmware/Config.in"
source "package/freescale-imx/imx-seco/Config.in"
source "package/freescale-imx/imx-vpu-hantro-vc/Config.in"
if (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53)
source "package/freescale-imx/gpu-amd-bin-mx51/Config.in"
source "package/freescale-imx/libz160/Config.in"
endif
if BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
source "package/freescale-imx/imx-gpu-g2d/Config.in"
source "package/freescale-imx/imx-gpu-viv/Config.in"
source "package/freescale-imx/kernel-module-imx-gpu-viv/Config.in"
endif
endif
@@ -0,0 +1,90 @@
config BR2_PACKAGE_FIRMWARE_IMX
bool "firmware-imx"
depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
help
Firmware blobs for the Freescale i.MX SoCs.
It contains blobs for SDMA, VPU, HDMI, EDPC, and DDR
training.
This library is provided by Freescale as-is and doesn't have
an upstream.
if BR2_PACKAGE_FIRMWARE_IMX
config BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME
string
default "imx25" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
config BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME
string
default "imx27" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
default "imx6" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
default "imx8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
default "imx8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW
bool
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW
bool
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
bool
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
choice
bool "DDR training binaries"
default BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
help
Choose the DDR training binaries to be used depending on the
kind of memory that is available on the target board (DDR4,
LPDDR4, etc...).
config BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
bool "lpddr4"
help
Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
config BR2_PACKAGE_FIRMWARE_IMX_DDR4
bool "DDR4"
help
Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
endchoice # DDR training FW
config BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN
hex "(LP)DDR IMEM padding length"
default 0x8000
help
The IMEM firmware will be padded to this length
config BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN
hex "(LP)DDR DMEM padding length"
default 0x4000
help
The DMEM firmware will be padded to this length
endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
endif # BR2_PACKAGE_FIRMWARE_IMX
@@ -0,0 +1,4 @@
# Locally calculated
sha256 6b6747bf36ecc53e385234afdce01f69c5775adf0d6685c885281ca6e4e322ef firmware-imx-8.12.bin
sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
@@ -0,0 +1,148 @@
################################################################################
#
# firmware-imx
#
################################################################################
FIRMWARE_IMX_VERSION = 8.12
FIRMWARE_IMX_SITE = $(FREESCALE_IMX_SITE)
FIRMWARE_IMX_SOURCE = firmware-imx-$(FIRMWARE_IMX_VERSION).bin
FIRMWARE_IMX_LICENSE = NXP Semiconductor Software License Agreement
FIRMWARE_IMX_LICENSE_FILES = EULA COPYING
FIRMWARE_IMX_REDISTRIBUTE = NO
FIRMWARE_IMX_INSTALL_IMAGES = YES
define FIRMWARE_IMX_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
endef
#
# DDR firmware
#
define FIRMWARE_IMX_PREPARE_DDR_FW
$(TARGET_OBJCOPY) -I binary -O binary \
--pad-to $(BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN) --gap-fill=0x0 \
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1)).bin \
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1))_pad.bin
$(TARGET_OBJCOPY) -I binary -O binary \
--pad-to $(BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN) --gap-fill=0x0 \
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2)).bin \
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2))_pad.bin
cat $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1))_pad.bin \
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2))_pad.bin > \
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(3)).bin
endef
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y)
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
# Create padded versions of lpddr4_pmu_* and generate lpddr4_pmu_train_fw.bin.
# lpddr4_pmu_train_fw.bin is needed when generating imx8-boot-sd.bin
# which is done in post-image script.
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
lpddr4_pmu_train_1d_imem,lpddr4_pmu_train_1d_dmem,lpddr4_pmu_train_1d_fw)
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
lpddr4_pmu_train_2d_imem,lpddr4_pmu_train_2d_dmem,lpddr4_pmu_train_2d_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
# U-Boot supports creation of the combined flash.bin image. To make
# sure that U-Boot can access all available files copy them to
# the binary dir.
cp $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4*.bin $(BINARIES_DIR)/
endef
endif
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_DDR4),y)
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
# Create padded versions of ddr4_* and generate ddr4_fw.bin.
# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
# which is done in post-image script.
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
ddr4_imem_1d_201810,ddr4_dmem_1d_201810,ddr4_1d_201810_fw)
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
ddr4_imem_2d_201810,ddr4_dmem_2d_201810,ddr4_2d_201810_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
$(BINARIES_DIR)/ddr4_201810_fw.bin
ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
# U-Boot supports creation of the combined flash.bin image. To make
# sure that U-Boot can access all available files copy them to
# the binary dir.
cp $(FIRMWARE_IMX_DDRFW_DIR)/ddr4*.bin $(BINARIES_DIR)/
endef
endif
#
# HDMI firmware
#
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),y)
define FIRMWARE_IMX_INSTALL_IMAGE_HDMI_FW
cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
$(BINARIES_DIR)/signed_hdmi_imx8m.bin
endef
endif
#
# EPDC firmware
#
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW),y)
define FIRMWARE_IMX_INSTALL_TARGET_EPDC_FW
mkdir -p $(TARGET_DIR)/lib/firmware/imx
cp -r $(@D)/firmware/epdc $(TARGET_DIR)/lib/firmware/imx
mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
endef
endif
#
# SDMA firmware
#
FIRMWARE_IMX_SDMA_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME))
ifneq ($(FIRMWARE_IMX_SDMA_FW_NAME),)
define FIRMWARE_IMX_INSTALL_TARGET_SDMA_FW
mkdir -p $(TARGET_DIR)/lib/firmware/imx/sdma
cp -r $(@D)/firmware/sdma/sdma-$(FIRMWARE_IMX_SDMA_FW_NAME)*.bin \
$(TARGET_DIR)/lib/firmware/imx/sdma/
endef
endif
#
# VPU firmware
#
FIRMWARE_IMX_VPU_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME))
ifneq ($(FIRMWARE_IMX_VPU_FW_NAME),)
define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW
mkdir -p $(TARGET_DIR)/lib/firmware/vpu
for i in $$(find $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin); do \
cp $$i $(TARGET_DIR)/lib/firmware/vpu/ ; \
ln -sf vpu/$$(basename $$i) $(TARGET_DIR)/lib/firmware/$$(basename $$i) ; \
done
endef
endif
define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
$(FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW)
$(FIRMWARE_IMX_INSTALL_IMAGE_HDMI_FW)
endef
define FIRMWARE_IMX_INSTALL_TARGET_CMDS
$(FIRMWARE_IMX_INSTALL_TARGET_EPDC_FW)
$(FIRMWARE_IMX_INSTALL_TARGET_SDMA_FW)
$(FIRMWARE_IMX_INSTALL_TARGET_VPU_FW)
endef
$(eval $(generic-package))
+34
View File
@@ -0,0 +1,34 @@
################################################################################
#
# freescale-imx
#
################################################################################
FREESCALE_IMX_SITE = http://www.nxp.com/lgfiles/NMG/MAD/YOCTO
# Helper for self-extracting binaries distributed by Freescale.
#
# The --force option makes sure it doesn't fail if the source
# directory already exists. The --auto-accept skips the license check,
# as it is not needed in Buildroot because we have legal-info. Since
# there's a EULA in the binary file, we extract it in this macro, and
# it should therefore be added to the LICENSE_FILES variable of
# packages using this macro. Also, remember to set REDISTRIBUTE to
# "NO". Indeed, 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...
#
# $(1): full path to the archive file
#
define FREESCALE_IMX_EXTRACT_HELPER
awk 'BEGIN { start = 0; } \
/^EOEULA/ { start = 0; } \
{ if (start) print; } \
/<<EOEULA/ { start = 1; }' \
$(1) > $(@D)/EULA
cd $(@D) && sh $(1) --force --auto-accept
find $(@D)/$(basename $(notdir $(1))) -mindepth 1 -maxdepth 1 -exec mv {} $(@D) \;
rmdir $(@D)/$(basename $(notdir $(1)))
endef
include $(sort $(wildcard package/freescale-imx/*/*.mk))
@@ -0,0 +1,60 @@
comment "gpu-amd-bin-mx51 needs a glibc EABI toolchain w/ C++"
depends on BR2_arm
depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC || \
!BR2_INSTALL_LIBSTDCPP
config BR2_PACKAGE_GPU_AMD_BIN_MX51
bool "gpu-amd-bin-mx51 (also imx53)"
depends on BR2_ARM_EABI
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_HAS_LIBEGL
select BR2_PACKAGE_HAS_LIBGLES
select BR2_PACKAGE_HAS_LIBOPENVG
help
Freescale libraries, headers and executables for the
AMD GPU on i.MX5x, containing OpenGL/ES, OpenVG
and EGL support.
if BR2_PACKAGE_GPU_AMD_BIN_MX51
choice
prompt "Output option"
help
There are two versions of this library: one for
direct framebuffer access, one for X11 rendering.
Choose here which version to install.
config BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_X11
bool "X11"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XLIB_LIBXEXT
select BR2_PACKAGE_XLIB_LIBXRENDER
select BR2_PACKAGE_XLIB_LIBXDMCP
select BR2_PACKAGE_XLIB_LIBXAU
comment "X11 backend needs X.org enabled"
depends on !BR2_PACKAGE_XORG7
config BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_FB
bool "Framebuffer"
endchoice
config BR2_PACKAGE_PROVIDES_LIBEGL
default "gpu-amd-bin-mx51"
config BR2_PACKAGE_PROVIDES_LIBGLES
default "gpu-amd-bin-mx51"
config BR2_PACKAGE_PROVIDES_LIBOPENVG
default "gpu-amd-bin-mx51"
config BR2_PACKAGE_GPU_AMD_BIN_MX51_EXAMPLES
bool "install examples"
help
Copy the examples to the target.
endif
@@ -0,0 +1,10 @@
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: egl
Description: Freescale amd-gpu-bin-mx51 implementation of EGL
Version: 7.11.0
Libs: -L${libdir} -lEGL
Cflags: -I${includedir}
@@ -0,0 +1,10 @@
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: glesv2
Description: Freescale amd-gpu-bin-mx51 implementation of OpenGL ESv2
Version: 7.11.0
Libs: -L${libdir} -lGLESv2
Cflags: -I${includedir}
@@ -0,0 +1,3 @@
# locally computed
sha256 c7a6fa03b7aa2a375556c59908876554ba720c1e744baba2debb84a408f790db amd-gpu-x11-bin-mx51-11.09.01.bin
sha256 f0db68a764b5fb199729e7435f606b8d12b61ca97990336c647b7e81f4a584d9 amd-gpu-bin-mx51-11.09.01.bin
@@ -0,0 +1,67 @@
################################################################################
#
# gpu-amd-bin-mx51
#
################################################################################
GPU_AMD_BIN_MX51_SITE = $(FREESCALE_IMX_SITE)
GPU_AMD_BIN_MX51_BASE_VERSION = 11.09.01
ifeq ($(BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_FB),y)
GPU_AMD_BIN_MX51_VERSION = $(GPU_AMD_BIN_MX51_BASE_VERSION)-fb
GPU_AMD_BIN_MX51_SOURCE = amd-gpu-bin-mx51-$(GPU_AMD_BIN_MX51_BASE_VERSION).bin
else
GPU_AMD_BIN_MX51_VERSION = $(GPU_AMD_BIN_MX51_BASE_VERSION)-x11
GPU_AMD_BIN_MX51_SOURCE = amd-gpu-x11-bin-mx51-$(GPU_AMD_BIN_MX51_BASE_VERSION).bin
GPU_AMD_BIN_MX51_DEPENDENCIES += libxcb xlib_libX11 xlib_libXext \
xlib_libXrender xlib_libXau xlib_libXdmcp
endif
GPU_AMD_BIN_MX51_PROVIDES = libegl libgles libopenvg
GPU_AMD_BIN_MX51_INSTALL_STAGING = YES
GPU_AMD_BIN_MX51_LICENSE = Freescale Semiconductor Software License Agreement
GPU_AMD_BIN_MX51_LICENSE_FILES = EULA
GPU_AMD_BIN_MX51_REDISTRIBUTE = NO
define GPU_AMD_BIN_MX51_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(GPU_AMD_BIN_MX51_DL_DIR)/$(GPU_AMD_BIN_MX51_SOURCE))
endef
# Upstream headers need to be compiled with -D_LINUX. It is more convenient
# to rely on __linux__ which is defined in compiler itself
define GPU_AMD_BIN_MX51_FIXUP_HEADERS
$(SED) 's/_LINUX/__linux__/g' $(@D)/usr/include/*/*.h
endef
GPU_AMD_BIN_MX51_POST_PATCH_HOOKS += GPU_AMD_BIN_MX51_FIXUP_HEADERS
# eglplatform_1.4.h contains X11 compatible headers
ifeq ($(BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_X11),y)
define GPU_AMD_BIN_MX51_FIXUP_EGL_HEADERS
mv $(STAGING_DIR)/usr/include/EGL/eglplatform_1.4.h $(STAGING_DIR)/usr/include/EGL/eglplatform.h
endef
endif
define GPU_AMD_BIN_MX51_INSTALL_STAGING_CMDS
$(INSTALL) -d $(STAGING_DIR)/usr/lib/pkgconfig
$(INSTALL) -m 644 package/freescale-imx/gpu-amd-bin-mx51/*.pc $(STAGING_DIR)/usr/lib/pkgconfig/
$(INSTALL) -m 755 $(@D)/usr/lib/lib* $(STAGING_DIR)/usr/lib/
cp -r $(@D)/usr/include/* $(STAGING_DIR)/usr/include
$(GPU_AMD_BIN_MX51_FIXUP_EGL_HEADERS)
endef
ifeq ($(BR2_PACKAGE_GPU_AMD_BIN_MX51_EXAMPLES),y)
define GPU_AMD_BIN_MX51_INSTALL_EXAMPLES
$(INSTALL) -d $(TARGET_DIR)/usr/share/examples/gpu_amd_samples
$(INSTALL) -m 755 $(@D)/usr/bin/* $(TARGET_DIR)/usr/share/examples/gpu_amd_samples
endef
endif
define GPU_AMD_BIN_MX51_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 $(@D)/usr/lib/lib*so* $(TARGET_DIR)/usr/lib/
$(GPU_AMD_BIN_MX51_INSTALL_EXAMPLES)
endef
define GPU_AMD_BIN_MX51_DEVICES
/dev/gsl_kmod c 640 0 0 249 0 1 4
endef
$(eval $(generic-package))
@@ -0,0 +1,10 @@
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: vg
Description: Freescale amd-gpu-bin-mx51 implementation of OpenVG
Version: 1.1
Libs: -L${libdir} -lOpenVG
Cflags: -I${includedir}/
@@ -0,0 +1,22 @@
config BR2_PACKAGE_IMX_ALSA_PLUGINS
bool "imx-alsa-plugins"
depends on BR2_arm # Only relevant for i.MX
depends on BR2_LINUX_KERNEL
depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
select BR2_PACKAGE_ALSA_LIB
help
ALSA plugins specific for the Freescale i.MX platform. It
requires a kernel that includes the i.MX specific headers
to be built.
The following plugins are provided so far:
* Rate Converter Plugin Using Freescale ASRC Hardware
Resampler (i.MX53 and most i.MX6)
comment "imx-alsa-libs needs an imx-specific Linux kernel to be built"
depends on BR2_arm
depends on !BR2_LINUX_KERNEL
comment "imx-alsa-libs needs a toolchain w/ threads"
depends on BR2_arm
depends on BR2_LINUX_KERNEL && !BR2_TOOLCHAIN_HAS_THREADS
@@ -0,0 +1,3 @@
# Locally calculated:
sha256 a9a5ef408a7329c2c5fa2a084ae7824afbfbebed68612bd72509488ccb0b94b3 imx-alsa-plugins-rel_imx_4.9.x_1.0.0_ga-br1.tar.gz
sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING.GPL
@@ -0,0 +1,21 @@
################################################################################
#
# imx-alsa-plugins
#
################################################################################
IMX_ALSA_PLUGINS_VERSION = rel_imx_4.9.x_1.0.0_ga
IMX_ALSA_PLUGINS_SITE = https://source.codeaurora.org/external/imx/imx-alsa-plugins
IMX_ALSA_PLUGINS_SITE_METHOD = git
IMX_ALSA_PLUGINS_LICENSE = GPL-2.0+
IMX_ALSA_PLUGINS_LICENSE_FILES = COPYING.GPL
IMX_ALSA_PLUGINS_DEPENDENCIES = host-pkgconf alsa-lib
# git, no configure
IMX_ALSA_PLUGINS_AUTORECONF = YES
# needs access to imx-specific kernel headers
IMX_ALSA_PLUGINS_DEPENDENCIES += linux
IMX_ALSA_PLUGINS_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -idirafter $(LINUX_DIR)/include/uapi"
$(eval $(autotools-package))
+13
View File
@@ -0,0 +1,13 @@
config BR2_PACKAGE_IMX_CODEC
bool "imx-codec"
depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
depends on BR2_TOOLCHAIN_USES_GLIBC # prebuilt binaries
help
Binary codec libraries for the NXP i.MX SoCs.
This library is provided by NXP as-is and doesn't have
an upstream.
comment "imx-codec needs a glibc toolchain"
depends on BR2_arm || BR2_aarch64
depends on !BR2_TOOLCHAIN_USES_GLIBC
@@ -0,0 +1,4 @@
# locally computed
sha256 6bb54f91c3ca18567e14d95d3858022dc9be00dc86e9edfdb544d1240a3b2b04 imx-codec-4.3.5.bin
sha256 78696664f7afe7f2b081c99af60082d6403fab935b1b10056ed41aec123ff7fa COPYING
sha256 fc93f26e4197b9240c327ce26ae6e02123f022423d4704c7b0448a37372cf2a2 EULA
@@ -0,0 +1,44 @@
################################################################################
#
# imx-codec
#
################################################################################
IMX_CODEC_VERSION = 4.3.5
IMX_CODEC_SITE = $(FREESCALE_IMX_SITE)
IMX_CODEC_SOURCE = imx-codec-$(IMX_CODEC_VERSION).bin
IMX_CODEC_INSTALL_STAGING = YES
IMX_CODEC_LICENSE = NXP Semiconductor Software License Agreement, BSD-3-Clause (flac, ogg headers)
IMX_CODEC_LICENSE_FILES = EULA COPYING
IMX_CODEC_REDISTRIBUTE = NO
ifeq ($(BR2_aarch64),y)
IMX_CODEC_CONF_OPTS += --enable-armv8
endif
ifeq ($(BR2_ARM_EABIHF),y)
IMX_CODEC_CONF_OPTS += --enable-fhw
endif
ifeq ($(BR2_PACKAGE_IMX_VPU),y)
IMX_CODEC_CONF_OPTS += --enable-vpu
endif
define IMX_CODEC_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_CODEC_DL_DIR)/$(IMX_CODEC_SOURCE))
endef
# FIXME The Makefile installs both the arm9 and arm11 versions of the
# libraries, but we only need one of them.
# Upstream installs libraries into usr/lib/imx-mm, but the dynamic
# loader only looks in usr/lib, so move the libraries there
define IMX_CODEC_FIXUP_TARGET_PATH
find $(TARGET_DIR)/usr/lib/imx-mm -not -type d \
-exec mv {} $(TARGET_DIR)/usr/lib \;
rm -rf $(TARGET_DIR)/usr/lib/imx-mm
endef
IMX_CODEC_POST_INSTALL_TARGET_HOOKS += IMX_CODEC_FIXUP_TARGET_PATH
$(eval $(autotools-package))
@@ -0,0 +1,29 @@
comment "imx-gpu-g2d needs a glibc toolchain with armhf enabled"
depends on BR2_arm
depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF
comment "imx-gpu-g2d needs a glibc toolchain"
depends on BR2_aarch64
depends on !BR2_TOOLCHAIN_USES_GLIBC
config BR2_PACKAGE_IMX_GPU_G2D
bool "imx-gpu-g2d"
# Pre-built binaries only available for ARM EABIhf
depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64
# Library binaries are linked against libc.so.6
depends on BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_IMX_GPU_VIV
help
Userspace 2D libraries for Vivante GPU on i.MX platforms.
This library is provided by NXP as-is and doesn't have an
upstream.
if BR2_PACKAGE_IMX_GPU_G2D
config BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES
bool "install examples"
help
Copy the Vivante G2D examples to the target.
endif
@@ -0,0 +1,5 @@
# Locally calculated
sha256 39fe307916e19a0892a514621121086e276a43858af90230372a1344852116a2 imx-gpu-g2d-6.4.3.p2.0-arm.bin
sha256 2642a49e088daae4cf568a150d01e7c095995e8a6ff1883c02c3fa6d26d254b3 imx-gpu-g2d-6.4.3.p2.0-aarch64.bin
sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
@@ -0,0 +1,41 @@
################################################################################
#
# imx-gpu-g2d
#
################################################################################
ifeq ($(BR2_aarch64),y)
IMX_GPU_G2D_VERSION = 6.4.3.p2.0-aarch64
else
IMX_GPU_G2D_VERSION = 6.4.3.p2.0-arm
endif
IMX_GPU_G2D_SITE = $(FREESCALE_IMX_SITE)
IMX_GPU_G2D_SOURCE = imx-gpu-g2d-$(IMX_GPU_G2D_VERSION).bin
IMX_GPU_G2D_DEPENDENCIES = imx-gpu-viv
IMX_GPU_G2D_INSTALL_STAGING = YES
IMX_GPU_G2D_LICENSE = NXP Semiconductor Software License Agreement
IMX_GPU_G2D_LICENSE_FILES = EULA COPYING
IMX_GPU_G2D_REDISTRIBUTE = NO
define IMX_GPU_G2D_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_GPU_G2D_DL_DIR)/$(IMX_GPU_G2D_SOURCE))
endef
define IMX_GPU_G2D_INSTALL_STAGING_CMDS
cp -a $(@D)/g2d/usr/* $(STAGING_DIR)/usr
endef
ifeq ($(BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES),y)
define IMX_GPU_G2D_INSTALL_EXAMPLES
mkdir -p $(TARGET_DIR)/usr/share/examples/
cp -a $(@D)/gpu-demos/opt/* $(TARGET_DIR)/usr/share/examples/
endef
endif
define IMX_GPU_G2D_INSTALL_TARGET_CMDS
$(IMX_GPU_G2D_INSTALL_EXAMPLES)
cp -a $(@D)/g2d/usr/lib $(TARGET_DIR)/usr
endef
$(eval $(generic-package))
+103
View File
@@ -0,0 +1,103 @@
comment "imx-gpu-viv needs a glibc toolchain with armhf enabled"
depends on BR2_arm
depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF
comment "imx-gpu-viv needs a glibc toolchain"
depends on BR2_aarch64
depends on !BR2_TOOLCHAIN_USES_GLIBC
config BR2_PACKAGE_IMX_GPU_VIV
bool "imx-gpu-viv"
# Pre-built binaries only available for ARM EABIhf
depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64
# Library binaries are linked against libc.so.6
depends on BR2_TOOLCHAIN_USES_GLIBC
# Library binaries are linked against libdrm.so.2, except framebuffer
# output on ARM
select BR2_PACKAGE_LIBDRM if !(BR2_arm && BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB)
select BR2_PACKAGE_HAS_LIBEGL
select BR2_PACKAGE_HAS_LIBGLES
select BR2_PACKAGE_HAS_LIBOPENCL
select BR2_PACKAGE_HAS_LIBOPENVG
help
Userspace libraries for Vivante GPU on i.MX 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_IMX_GPU_VIV
choice
prompt "Output option"
help
There are two versions of this library: one for
direct framebuffer access, one for X11 rendering.
Choose here which version to install.
config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11
bool "X11"
depends on BR2_PACKAGE_XORG7
# The i.MX8 blob doesn't support X11 output
depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
select BR2_PACKAGE_XLIB_LIBXDAMAGE
select BR2_PACKAGE_XLIB_LIBXEXT
select BR2_PACKAGE_XLIB_LIBXFIXES
comment "X11 backend needs Xorg package"
depends on !BR2_PACKAGE_XORG7
depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB
bool "Framebuffer"
# The i.MX8 blob doesn't support FB output
depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
bool "Wayland"
select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
endchoice
config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT
string
default "x11" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11
default "fb" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB
default "wayland" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
config BR2_PACKAGE_PROVIDES_LIBEGL
default "imx-gpu-viv"
config BR2_PACKAGE_PROVIDES_LIBGLES
default "imx-gpu-viv"
config BR2_PACKAGE_PROVIDES_LIBOPENCL
default "imx-gpu-viv"
config BR2_PACKAGE_PROVIDES_LIBOPENVG
default "imx-gpu-viv"
config BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES
bool "install examples"
# example binaries are linked against libstdc++.so.6
depends on BR2_INSTALL_LIBSTDCPP
help
Copy the Vivante examples to the target.
Warning: examples take approximately 150 MB of disk space.
comment "imx-gpu-viv-examples need a toolchain w/ C++ support"
depends on !BR2_INSTALL_LIBSTDCPP
config BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO
bool "install gmem_info tool"
help
Copy the gmem_info tool to the target which provides
information about GPU memory consumption.
endif
@@ -0,0 +1,5 @@
# Locally calculated
sha256 1324b1aaf190110b80ad9a6f6533f4f50dce9e9ab8d49d8503f59764b151d219 imx-gpu-viv-6.4.3.p2.0-aarch32.bin
sha256 003c30baefb1655790b475c3cdfa5cefbf81ea89ef37c6649b64f151dd23a52e imx-gpu-viv-6.4.3.p2.0-aarch64.bin
sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
@@ -0,0 +1,96 @@
################################################################################
#
# imx-gpu-viv
#
################################################################################
ifeq ($(BR2_aarch64),y)
IMX_GPU_VIV_VERSION = 6.4.3.p2.0-aarch64
else
IMX_GPU_VIV_VERSION = 6.4.3.p2.0-aarch32
endif
IMX_GPU_VIV_SITE = $(FREESCALE_IMX_SITE)
IMX_GPU_VIV_SOURCE = imx-gpu-viv-$(IMX_GPU_VIV_VERSION).bin
IMX_GPU_VIV_INSTALL_STAGING = YES
IMX_GPU_VIV_LICENSE = NXP Semiconductor Software License Agreement
IMX_GPU_VIV_LICENSE_FILES = EULA COPYING
IMX_GPU_VIV_REDISTRIBUTE = NO
IMX_GPU_VIV_PROVIDES = libegl libgles libopencl libopenvg
IMX_GPU_VIV_LIB_TARGET = $(call qstrip,$(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT))
ifeq ($(IMX_GPU_VIV_LIB_TARGET),x11)
# The libGAL.so library provided by imx-gpu-viv uses X functions. Packages
# may want to link against libGAL.so (QT5 Base with OpenGL and X support
# does so). For this to work we need build dependencies to libXdamage,
# libXext and libXfixes so that X functions used in libGAL.so are referenced.
IMX_GPU_VIV_DEPENDENCIES += xlib_libXdamage xlib_libXext xlib_libXfixes
endif
# Libraries are linked against libdrm, except framebuffer output on ARM
ifneq ($(IMX_GPU_VIV_LIB_TARGET)$(BR2_arm),fby)
IMX_GPU_VIV_DEPENDENCIES += libdrm
endif
ifeq ($(IMX_GPU_VIV_LIB_TARGET),wayland)
IMX_GPU_VIV_DEPENDENCIES += wayland
endif
define IMX_GPU_VIV_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_GPU_VIV_DL_DIR)/$(IMX_GPU_VIV_SOURCE))
endef
ifeq ($(IMX_GPU_VIV_LIB_TARGET),fb)
define IMX_GPU_VIV_FIXUP_PKGCONFIG
ln -sf egl_linuxfb.pc $(@D)/gpu-core/usr/lib/pkgconfig/egl.pc
endef
else ifeq ($(IMX_GPU_VIV_LIB_TARGET),wayland)
define IMX_GPU_VIV_FIXUP_PKGCONFIG
ln -sf egl_wayland.pc $(@D)/gpu-core/usr/lib/pkgconfig/egl.pc
endef
else ifeq ($(IMX_GPU_VIV_LIB_TARGET),x11)
define IMX_GPU_VIV_FIXUP_PKGCONFIG
$(foreach lib,egl gbm glesv1_cm glesv2 vg, \
ln -sf $(lib)_x11.pc $(@D)/gpu-core/usr/lib/pkgconfig/$(lib).pc
)
endef
endif
# Instead of building, we fix up the inconsistencies that exist
# in the upstream archive here. We also remove unused backend files.
# Make sure these commands are idempotent.
define IMX_GPU_VIV_BUILD_CMDS
cp -dpfr $(@D)/gpu-core/usr/lib/$(IMX_GPU_VIV_LIB_TARGET)/* $(@D)/gpu-core/usr/lib/
$(foreach backend,fb x11 wayland, \
$(RM) -r $(@D)/gpu-core/usr/lib/$(backend)
)
$(IMX_GPU_VIV_FIXUP_PKGCONFIG)
endef
define IMX_GPU_VIV_INSTALL_STAGING_CMDS
cp -r $(@D)/gpu-core/usr/* $(STAGING_DIR)/usr
endef
ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES),y)
define IMX_GPU_VIV_INSTALL_EXAMPLES
mkdir -p $(TARGET_DIR)/usr/share/examples/
cp -r $(@D)/gpu-demos/opt/* $(TARGET_DIR)/usr/share/examples/
endef
endif
ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO),y)
define IMX_GPU_VIV_INSTALL_GMEM_INFO
cp -dpfr $(@D)/gpu-tools/gmem-info/usr/bin/* $(TARGET_DIR)/usr/bin/
endef
endif
define IMX_GPU_VIV_INSTALL_TARGET_CMDS
$(IMX_GPU_VIV_INSTALL_EXAMPLES)
$(IMX_GPU_VIV_INSTALL_GMEM_INFO)
cp -a $(@D)/gpu-core/usr/lib $(TARGET_DIR)/usr
$(INSTALL) -D -m 0644 $(@D)/gpu-core/etc/Vivante.icd $(TARGET_DIR)/etc/OpenCL/vendors/Vivante.icd
endef
$(eval $(generic-package))
@@ -0,0 +1,39 @@
[PATCH] Fix musl build
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
src/mtd.c | 1 +
src/mtd.h | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/src/mtd.c b/src/mtd.c
index 1edc441..6d2264c 100644
--- a/src/mtd.c
+++ b/src/mtd.c
@@ -31,6 +31,7 @@
#include <fcntl.h>
#include <ctype.h>
#include <errno.h>
+#include <stddef.h>
#include <sys/types.h>
#include <sys/ioctl.h>
diff --git a/src/mtd.h b/src/mtd.h
index bd21add..debfc84 100644
--- a/src/mtd.h
+++ b/src/mtd.h
@@ -31,6 +31,11 @@
#include "BootControlBlocks.h"
#include "rom_nand_hamming_code_ecc.h"
+// musl library doesn't define loff_t
+#if !defined(__GLIBC__) && !defined(__UCLIBC__)
+#define loff_t off_t
+#endif
+
//------------------------------------------------------------------------------
// Re-definitions of true and false, because the standard ones aren't good
// enough?
--
2.5.1
@@ -0,0 +1,26 @@
[PATCH] Fix build for recent toolchains
Starting with Linux 4.4 headers, mtd-user.h isn't including stdint.h
anymore which breaks the build.
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
src/BootControlBlocks.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/BootControlBlocks.h b/src/BootControlBlocks.h
index 192eb61..aacdb64 100644
--- a/src/BootControlBlocks.h
+++ b/src/BootControlBlocks.h
@@ -20,6 +20,8 @@
#ifndef BOOTCONTROLBLOCKS_H_
#define BOOTCONTROLBLOCKS_H_
+#include <stdint.h>
+
#define NCB_FINGERPRINT1 0x504d5453 //!< 'STMP'
#define NCB_FINGERPRINT2 0x2042434e //!< 'NCB<space>' - NAND Control Block
#define NCB_FINGERPRINT3 0x4e494252 //!< 'RBIN' - ROM Boot Image Block - N
--
2.6.4
+9
View File
@@ -0,0 +1,9 @@
config BR2_PACKAGE_IMX_KOBS
bool "imx-kobs"
depends on BR2_arm # Only relevant for i.MX
help
The imx-kobs tool is used for writing images to NAND on i.MX
platforms.
This library is provided by Freescale as-is and doesn't have
an upstream.
@@ -0,0 +1,3 @@
# Locally computed
sha256 5855c8964f908ad30e5d4500180ee57c51af68186289ef1bdf8553ee60d3b1f5 imx-kobs-a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b.tar.gz
sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING
@@ -0,0 +1,12 @@
################################################################################
#
# imx-kobs
#
################################################################################
IMX_KOBS_VERSION = a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b
IMX_KOBS_SITE = $(call github,codeauroraforum,imx-kobs,$(IMX_KOBS_VERSION))
IMX_KOBS_LICENSE = GPL-2.0+
IMX_KOBS_LICENSE_FILES = COPYING
$(eval $(autotools-package))
+15
View File
@@ -0,0 +1,15 @@
comment "imx-lib needs an imx-specific Linux 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.
@@ -0,0 +1,3 @@
# locally computed
sha256 cad7823568cbd367ed8525e01c8c11a2393fc2dc481425273cb7919385367c61 imx-lib-3f777974c0c146817e2ff5cb0340ca66a1f99e57-br1.tar.gz
sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING-LGPL-2.1
+39
View File
@@ -0,0 +1,39 @@
################################################################################
#
# imx-lib
#
################################################################################
IMX_LIB_VERSION = 3f777974c0c146817e2ff5cb0340ca66a1f99e57
IMX_LIB_SITE = https://source.codeaurora.org/external/imx/imx-lib
IMX_LIB_SITE_METHOD = git
IMX_LIB_LICENSE = LGPL-2.1+
IMX_LIB_LICENSE_FILES = COPYING-LGPL-2.1
IMX_LIB_INSTALL_STAGING = YES
# imx-lib needs access to imx-specific kernel headers
IMX_LIB_DEPENDENCIES += linux
IMX_LIB_INCLUDE = \
-idirafter $(LINUX_DIR)/include/uapi
IMX_LIB_MAKE_ENV = \
$(TARGET_MAKE_ENV) \
$(TARGET_CONFIGURE_OPTS) \
CROSS_COMPILE="$(TARGET_CROSS)" \
PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_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))
@@ -0,0 +1,8 @@
config BR2_PACKAGE_IMX_M4FWLOADER
bool "imx-m4fwloader"
depends on BR2_arm # Only relevant for i.MX
help
This package provides a tool to load a firmware to the
Cortex-M4 core available in some i.MX processors.
https://github.com/codeauroraforum/imx-m4fwloader
@@ -0,0 +1,3 @@
# Locally computed
sha256 fb6334900972fe389e808845417dd9045fb0f7eb47952fc22a00f4cdaf94af1a imx-m4fwloader-8cf4d17a09ba23250d43381b49ba00d92406fad9.tar.gz
sha256 c03cea027b4b40e4402fabd08557736727ec3d5bc54ad64ab6472de432198cad LICENSE
@@ -0,0 +1,22 @@
################################################################################
#
# imx-m4fwloader
#
################################################################################
IMX_M4FWLOADER_VERSION = 8cf4d17a09ba23250d43381b49ba00d92406fad9
IMX_M4FWLOADER_SITE = $(call github,codeauroraforum,imx-m4fwloader,$(IMX_M4FWLOADER_VERSION))
IMX_M4FWLOADER_LICENSE = GPL-2.0+
IMX_M4FWLOADER_LICENSE_FILES = LICENSE
define IMX_M4FWLOADER_BUILD_CMDS
$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/imx-m4fwloader \
$(@D)/m4fwloader.c
endef
define IMX_M4FWLOADER_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 755 $(@D)/imx-m4fwloader \
$(TARGET_DIR)/usr/sbin/imx-m4fwloader
endef
$(eval $(generic-package))
@@ -0,0 +1,8 @@
config BR2_PACKAGE_IMX_PARSER
bool "imx-parser"
depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
help
Binary parser libraries for the NXP i.MX SoCs.
This library is provided by NXP as-is and doesn't have
an upstream.
@@ -0,0 +1,4 @@
# locally computed
sha256 9cd8c49a0bb1050afcfbcc7a677a348443fda4ecacb621cc6e38897619e27c67 imx-parser-4.3.5.bin
sha256 78696664f7afe7f2b081c99af60082d6403fab935b1b10056ed41aec123ff7fa COPYING
sha256 fc93f26e4197b9240c327ce26ae6e02123f022423d4704c7b0448a37372cf2a2 EULA
@@ -0,0 +1,42 @@
################################################################################
#
# imx-parser
#
################################################################################
IMX_PARSER_VERSION = 4.3.5
IMX_PARSER_SITE = $(FREESCALE_IMX_SITE)
IMX_PARSER_SOURCE = imx-parser-$(IMX_PARSER_VERSION).bin
IMX_PARSER_INSTALL_STAGING = YES
IMX_PARSER_LICENSE = NXP Semiconductor Software License Agreement
IMX_PARSER_LICENSE_FILES = EULA COPYING
IMX_PARSER_REDISTRIBUTE = NO
ifeq ($(BR2_aarch64),y)
IMX_PARSER_CONF_OPTS += --enable-armv8
endif
ifeq ($(BR2_ARM_EABIHF),y)
IMX_PARSER_CONF_OPTS += --enable-fhw
else
IMX_PARSER_CONF_OPTS += --enable-fsw
endif
define IMX_PARSER_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_PARSER_DL_DIR)/$(IMX_PARSER_SOURCE))
endef
# The Makefile installs several versions of the libraries, but we only
# need one of them, depending on the platform.
# Upstream installs libraries into usr/lib/imx-mm, but the dynamic
# loader only looks in usr/lib, so move the libraries there
define IMX_PARSER_FIXUP_TARGET_PATH
find $(TARGET_DIR)/usr/lib/imx-mm -not -type d \
-exec mv {} $(TARGET_DIR)/usr/lib \;
rm -rf $(TARGET_DIR)/usr/lib/imx-mm
endef
IMX_PARSER_POST_INSTALL_TARGET_HOOKS += IMX_PARSER_FIXUP_TARGET_PATH
$(eval $(autotools-package))
@@ -0,0 +1,10 @@
config BR2_PACKAGE_IMX_SC_FIRMWARE
bool "imx-sc-firmware"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
help
System Control Unit Firmware blobs for the Freescale i.MX8
SoCs.
This library is provided by Freescale as-is and doesn't have
an upstream.
@@ -0,0 +1,4 @@
# Locally calculated
sha256 24a647237c0077ce0172563d67fcbc5e8f231bad7cf55a2436848c89579c5a06 imx-sc-firmware-1.8.0.bin
sha256 a07e8df685161553d7e0b78b8b93ebe9086d95bb8635abff0ed3247992181e85 EULA
sha256 4f3cc2dcbe3b7369bd4a51df749f432b69d8189fc2bde88f9fadbec73c686683 COPYING
@@ -0,0 +1,34 @@
################################################################################
#
# imx-sc-firmware
#
################################################################################
IMX_SC_FIRMWARE_VERSION = 1.8.0
IMX_SC_FIRMWARE_SITE = $(FREESCALE_IMX_SITE)
IMX_SC_FIRMWARE_SOURCE = imx-sc-firmware-$(IMX_SC_FIRMWARE_VERSION).bin
IMX_SC_FIRMWARE_LICENSE = NXP Semiconductor Software License Agreement
IMX_SC_FIRMWARE_LICENSE_FILES = EULA COPYING
IMX_SC_FIRMWARE_REDISTRIBUTE = NO
define IMX_SC_FIRMWARE_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_SC_FIRMWARE_DL_DIR)/$(IMX_SC_FIRMWARE_SOURCE))
endef
IMX_SC_FIRMWARE_INSTALL_IMAGES = YES
# SCFW firmware is needed when generating imx8-boot-sd.bin which is
# done in post-image script.
ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
define IMX_SC_FIRMWARE_INSTALL_IMAGES_CMDS
cp $(@D)/mx8qx-mek-scfw-tcm.bin $(BINARIES_DIR)/mx8qx-mek-scfw-tcm.bin
cp $(@D)/mx8qx-val-scfw-tcm.bin $(BINARIES_DIR)/mx8qx-val-scfw-tcm.bin
endef
else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8),y)
define IMX_SC_FIRMWARE_INSTALL_IMAGES_CMDS
cp $(@D)/mx8qm-*-scfw-tcm.bin $(BINARIES_DIR)/
endef
endif
$(eval $(generic-package))
+53
View File
@@ -0,0 +1,53 @@
config BR2_PACKAGE_IMX_SECO
bool "imx-seco"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
help
Firmware file for the i.MX8 and i.MX8X Security Controller.
This library is provided by Freescale as-is and doesn't have
an upstream.
if BR2_PACKAGE_IMX_SECO
choice
prompt "i.MX Seco Firmware Release"
default BR2_PACKAGE_IMX_SECO_MX8QMB0 if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
default BR2_PACKAGE_IMX_SECO_MX8QXC0 if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
help
Select the appropriate ahab container image to install
to match the iMX asics revision.
Note - mismatches result in a failure to boot
config BR2_PACKAGE_IMX_SECO_MX8DXLA0
bool "imx-seco-mx8dxla0"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
config BR2_PACKAGE_IMX_SECO_MX8DXLA1
bool "imx-seco-mx8dxla1"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
config BR2_PACKAGE_IMX_SECO_MX8QMB0
bool "imx-seco-mx8qmb0"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
config BR2_PACKAGE_IMX_SECO_MX8QXB0
bool "imx-seco-mx8qxb0"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
config BR2_PACKAGE_IMX_SECO_MX8QXC0
bool "imx-seco-mx8qxc0"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
endchoice
config BR2_PACKAGE_IMX_SECO_AHAB_CONTAINER_IMAGE
string
default "mx8dxla0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8DXLA0
default "mx8dxla1-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8DXLA1
default "mx8qmb0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8QMB0
default "mx8qxb0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8QXB0
default "mx8qxc0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8QXC0
endif
@@ -0,0 +1,4 @@
# Locally calculated
sha256 08cf25a4be6841ca7264a50b29c311b386eae1c02fced8a3b55fd04213acb4bc imx-seco-3.7.5.bin
sha256 72edc2072c86d93aa1993d15d4d19d96270af3749b0108995ad50c81d1461f52 EULA
sha256 9c16421e7c702f56756650b8ac954d34556327e598a8666e6e8f4eb3a1aa95f1 COPYING
@@ -0,0 +1,30 @@
################################################################################
#
# imx-seco
#
################################################################################
IMX_SECO_VERSION = 3.7.5
IMX_SECO_SITE = $(FREESCALE_IMX_SITE)
IMX_SECO_SOURCE = imx-seco-$(IMX_SECO_VERSION).bin
IMX_SECO_LICENSE = NXP Semiconductor Software License Agreement
IMX_SECO_LICENSE_FILES = EULA COPYING
IMX_SECO_REDISTRIBUTE = NO
define IMX_SECO_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_SECO_DL_DIR)/$(IMX_SECO_SOURCE))
endef
IMX_SECO_INSTALL_IMAGES = YES
# SECO firmware is needed when generating imx8-boot-sd.bin which
# is done in post-image script.
IMX_SECO_AHAB_CONTAINER_IMAGE = $(call qstrip,$(BR2_PACKAGE_IMX_SECO_AHAB_CONTAINER_IMAGE))
define IMX_SECO_INSTALL_IMAGES_CMDS
cp $(@D)/firmware/seco/$(IMX_SECO_AHAB_CONTAINER_IMAGE) \
$(BINARIES_DIR)/ahab-container.img
endef
$(eval $(generic-package))
+23
View File
@@ -0,0 +1,23 @@
config BR2_PACKAGE_IMX_UUC
bool "imx-uuc"
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # usb_functionfs_descs_head_v2
select BR2_PACKAGE_HOST_DOSFSTOOLS
help
This package provides the Universal Adapter user-space
utility that is used to receive commands from the
Manufacturing Tool using the Freescale UTP Protocol.
It requires a Freescale/NXP kernel whose configuration
contains the CONFIG_FSL_UTP option.
This package is provided by Freescale/NXP as-is and doesn't
have an upstream.
comment "imx-uuc needs a toolchain w/ threads, headers >= 3.18"
depends on BR2_arm
depends on BR2_USE_MMU
depends on !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
+27
View File
@@ -0,0 +1,27 @@
#!/bin/sh
NAME=uuc
DAEMON=/usr/bin/$NAME
case "$1" in
start)
printf "Starting $NAME: "
start-stop-daemon -S -q -b -m -p /var/run/${NAME}.pid -x $DAEMON
[ $? = 0 ] && echo "OK" || echo "FAIL"
;;
stop)
printf "Stopping $NAME: "
start-stop-daemon -K -q -p /var/run/${NAME}.pid
[ $? = 0 ] && echo "OK" || echo "FAIL"
;;
restart|reload)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
@@ -0,0 +1,3 @@
# Locally computed
sha256 7f4d4838d4bf489932ef4a242677db30ad8d9ffd76065e07f4ddee3e6c35db82 imx-uuc-d6afb27e55d73d7ad08cd2dd51c784d8ec9694dc.tar.gz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
+38
View File
@@ -0,0 +1,38 @@
################################################################################
#
# imx-uuc
#
################################################################################
IMX_UUC_VERSION = d6afb27e55d73d7ad08cd2dd51c784d8ec9694dc
IMX_UUC_SITE = $(call github,NXPmicro,imx-uuc,$(IMX_UUC_VERSION))
IMX_UUC_LICENSE = GPL-2.0+
IMX_UUC_LICENSE_FILES = COPYING
# mkfs.vfat is needed to create a FAT partition used by g_mass_storage
# so Windows do not offer to format the device when connected to the PC.
IMX_UUC_DEPENDENCIES = host-dosfstools
define IMX_UUC_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS)
endef
define IMX_UUC_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 755 $(@D)/uuc $(TARGET_DIR)/usr/bin/uuc
$(INSTALL) -D -m 755 $(@D)/sdimage $(TARGET_DIR)/usr/bin/sdimage
$(INSTALL) -D -m 755 $(@D)/ufb $(TARGET_DIR)/usr/bin/ufb
dd if=/dev/zero of=$(TARGET_DIR)/fat bs=1M count=1
$(HOST_DIR)/sbin/mkfs.vfat $(TARGET_DIR)/fat
endef
define IMX_UUC_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 package/freescale-imx/imx-uuc/S80imx-uuc \
$(TARGET_DIR)/etc/init.d/S80imx-uuc
endef
define IMX_UUC_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 0644 package/freescale-imx/imx-uuc/imx-uuc.service \
$(TARGET_DIR)/usr/lib/systemd/system/imx-uuc.service
endef
$(eval $(generic-package))
@@ -0,0 +1,11 @@
[Unit]
Description=i.MX Universal UTP Communication Service
After=systemd-modules-load.service
[Service]
Type=simple
ExecStart=/usr/bin/uuc
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,14 @@
comment "imx-vpu-hantro-vc needs an i.MX-specific Linux kernel to be built"
depends on !BR2_LINUX_KERNEL
comment "imx-vpu-hantro-vc needs an i.MX platform with Hantro VPU"
depends on BR2_LINUX_KERNEL
depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
config BR2_PACKAGE_IMX_VPU_HANTRO_VC
bool "imx-vpu-hantro-vc"
depends on BR2_LINUX_KERNEL
depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
help
i.MX VC8000E Encoder library. Intended for the i.MX 8M Plus
processor.
@@ -0,0 +1,4 @@
# Locally computed:
sha256 d5efae484c4271c098286d007590d6bf40c272d4f35702ff65625f2362715ab3 imx-vpu-hantro-vc-1.4.0.bin
sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
@@ -0,0 +1,25 @@
################################################################################
#
# imx-vpu-hantro-vc
#
################################################################################
IMX_VPU_HANTRO_VC_VERSION = 1.4.0
IMX_VPU_HANTRO_VC_SITE = $(FREESCALE_IMX_SITE)
IMX_VPU_HANTRO_VC_SOURCE = imx-vpu-hantro-vc-$(IMX_VPU_HANTRO_VC_VERSION).bin
IMX_VPU_HANTRO_VC_DEPENDENCIES = linux
IMX_VPU_HANTRO_VC_LICENSE = NXP Semiconductor Software License Agreement
IMX_VPU_HANTRO_VC_LICENSE_FILES = EULA COPYING
IMX_VPU_HANTRO_VC_REDISTRIBUTE = NO
define IMX_VPU_HANTRO_VC_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPU_HANTRO_VC_DL_DIR)/$(IMX_VPU_HANTRO_VC_SOURCE))
endef
define IMX_VPU_HANTRO_VC_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/usr/lib/libhantro_vc8000e.so $(TARGET_DIR)/usr/lib/libhantro_vc8000e.so
$(INSTALL) -D -m 0755 $(@D)/usr/lib/libhantro_vc8000e.so.1 $(TARGET_DIR)/usr/lib/libhantro_vc8000e.so.1
endef
$(eval $(generic-package))
@@ -0,0 +1,77 @@
From dfe8ef9123936d2c1d5da34f63f661849171d5ef Mon Sep 17 00:00:00 2001
From: Gary Bisson <gary.bisson@boundarydevices.com>
Date: Sun, 3 Oct 2021 16:39:29 -0700
Subject: [PATCH] Fix ion.h header inclusion to be standard
NXP "solution" was to manually copy the header to include/linux.
Let's point the Makefile to the proper (mainline) location instead:
https://elixir.bootlin.com/linux/v4.17/source/drivers/staging/android/uapi/ion.h
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Chris Dimich <chris.dimich@boundarydevices.com>
---
Makefile_G1G2 | 4 ++--
Makefile_H1 | 4 ++--
decoder_sw/software/linux/dwl/dwl_linux.c | 2 +-
h1_encoder/software/linux_reference/ewl/ewl_x280_common.c | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Makefile_G1G2 b/Makefile_G1G2
index 8f83391..25884fa 100755
--- a/Makefile_G1G2
+++ b/Makefile_G1G2
@@ -10,8 +10,8 @@ INCLUDE_HEADERS = -I./decoder_sw -I$(SOURCE_ROOT)/source/inc -I$(SOURCE_ROOT)/so
INCLUDE_HEADERS += -I$(SOURCE_ROOT)/linux/memalloc
#INCLUDE_HEADERS += -I$(SOURCE_ROOT)/linux/ldriver
-#INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include
-INCLUDE_HEADERS += -I$(SDKTARGETSYSROOT)/usr/include/imx
+INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include
+INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/drivers/staging/android/uapi
CFLAGS += -DDEC_MODULE_PATH=\"/dev/mxc_hantro\" -DUSE_FAKE_RFC_TABLE -DFIFO_DATATYPE=void* -DNDEBUG -DDOWN_SCALER \
-DUSE_EXTERNAL_BUFFER -DUSE_FAST_EC -DUSE_VP9_EC -DGET_FREE_BUFFER_NON_BLOCK \
diff --git a/Makefile_H1 b/Makefile_H1
index 0979571..479940a 100755
--- a/Makefile_H1
+++ b/Makefile_H1
@@ -17,8 +17,8 @@ ENV = -DENC_MODULE_PATH=\\\"/dev/mxc_hantro_h1\\\"
#ENV += -DSDRAM_LM_BASE=0x00000000
ENV += -DEWL_NO_HW_TIMEOUT
ENV += -DUSE_ION
-#ENV += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include
-ENV += -I$(SDKTARGETSYSROOT)/usr/include/imx
+ENV += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include
+ENV += -I$(LINUX_KERNEL_ROOT)/drivers/staging/android/uapi
ifeq ($(CFG_SECURE_DATA_PATH), y)
ENV += -DCFG_SECURE_DATA_PATH
diff --git a/decoder_sw/software/linux/dwl/dwl_linux.c b/decoder_sw/software/linux/dwl/dwl_linux.c
index 7d5e33b..c0e5727 100755
--- a/decoder_sw/software/linux/dwl/dwl_linux.c
+++ b/decoder_sw/software/linux/dwl/dwl_linux.c
@@ -50,7 +50,7 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
#include <linux/dma-heap.h>
#else
-#include <linux/ion.h>
+#include <ion.h>
#endif
#ifdef ANDROID
#include <linux/mxc_ion.h>
diff --git a/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c b/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c
index 312e4cc..70630c3 100755
--- a/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c
+++ b/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c
@@ -52,7 +52,7 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
#include <linux/dma-heap.h>
#else
-#include <linux/ion.h>
+#include <ion.h>
#endif
#include <linux/dma-buf.h>
#include <linux/version.h>
--
2.31.1
@@ -0,0 +1,51 @@
From 4f51b0a6b9a36cc56fa06eb0f76596d8e387f980 Mon Sep 17 00:00:00 2001
From: Gary Bisson <gary.bisson@boundarydevices.com>
Date: Fri, 27 Mar 2020 23:17:30 +0100
Subject: [PATCH] Fix build with uclibc toolchain
From: Laurent Gauthier (OSS) <laurent.gauthier_1@oss.nxp.com>
By default, backtrace support is disabled in uclibc. In that case the
execinfo.h header file is missing, producing a build error.
Signed-off-by: Laurent Gauthier (OSS) <laurent.gauthier_1@oss.nxp.com>
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
openmax_il/source/dbgmacros.h | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/openmax_il/source/dbgmacros.h b/openmax_il/source/dbgmacros.h
index 3771c91..37ae09f 100755
--- a/openmax_il/source/dbgmacros.h
+++ b/openmax_il/source/dbgmacros.h
@@ -50,13 +50,6 @@
# define __USE_GNU
#endif
-#ifndef ANDROID
-#include <execinfo.h>
-#include <link.h>
-#endif
-#include <dlfcn.h>
-#include <elf.h>
-
/*****************
** DEBUG FLAGS **
*****************/
@@ -76,6 +69,13 @@
#define TRACE_FILE "trace.log"
#endif
+#ifndef ANDROID
+#include <execinfo.h>
+#include <link.h>
+#endif
+#include <dlfcn.h>
+#include <elf.h>
+
#ifdef LOG_IN_FILE
#define TRACE(...) \
{ \
--
2.25.1
@@ -0,0 +1,20 @@
comment "imx-vpu-hantro needs an i.MX-specific Linux kernel to be built"
depends on !BR2_LINUX_KERNEL
comment "imx-vpu-hantro needs an i.MX platform with Hantro VPU"
depends on BR2_LINUX_KERNEL
depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
config BR2_PACKAGE_IMX_VPU_HANTRO
bool "imx-vpu-hantro"
depends on BR2_LINUX_KERNEL
depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
help
Library of userspace helpers specific for the NXP i.MX SoC
integrating a Hantro Video Processing Unit (VPU) such as the
i.MX8MQ/i.MX8MM.
It requires a kernel that includes the i.MX specific headers
to be built.
This library is provided by NXP as-is and doesn't have an
upstream.
@@ -0,0 +1,4 @@
# Locally computed:
sha256 03c61dfb268b31a0d25a4d1387cb3ad0261029ad5de801f72224602e2b37da00 imx-vpu-hantro-1.22.0.bin
sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
@@ -0,0 +1,43 @@
################################################################################
#
# imx-vpu-hantro
#
################################################################################
IMX_VPU_HANTRO_VERSION = 1.22.0
IMX_VPU_HANTRO_SITE = $(FREESCALE_IMX_SITE)
IMX_VPU_HANTRO_SOURCE = imx-vpu-hantro-$(IMX_VPU_HANTRO_VERSION).bin
IMX_VPU_HANTRO_DEPENDENCIES = linux
IMX_VPU_HANTRO_INSTALL_STAGING = YES
IMX_VPU_HANTRO_MAKE_ENV = \
$(TARGET_MAKE_ENV) \
$(TARGET_CONFIGURE_OPTS) \
CROSS_COMPILE="$(TARGET_CROSS)" \
SDKTARGETSYSROOT=$(STAGING_DIR) \
LINUX_KERNEL_ROOT=$(LINUX_DIR) \
PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM)
IMX_VPU_HANTRO_LICENSE = NXP Semiconductor Software License Agreement
IMX_VPU_HANTRO_LICENSE_FILES = EULA COPYING
IMX_VPU_HANTRO_REDISTRIBUTE = NO
define IMX_VPU_HANTRO_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPU_HANTRO_DL_DIR)/$(IMX_VPU_HANTRO_SOURCE))
endef
define IMX_VPU_HANTRO_BUILD_CMDS
$(IMX_VPU_HANTRO_MAKE_ENV) $(MAKE1) -C $(@D)
endef
define IMX_VPU_HANTRO_INSTALL_STAGING_CMDS
$(IMX_VPU_HANTRO_MAKE_ENV) $(MAKE1) -C $(@D) \
DEST_DIR=$(STAGING_DIR) libdir=/usr/lib install
endef
define IMX_VPU_HANTRO_INSTALL_TARGET_CMDS
$(IMX_VPU_HANTRO_MAKE_ENV) $(MAKE1) -C $(@D) \
DEST_DIR=$(TARGET_DIR) libdir=/usr/lib install
endef
$(eval $(generic-package))
+14
View File
@@ -0,0 +1,14 @@
comment "imx-vpu needs an i.MX platform with VPU support"
depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
config BR2_PACKAGE_IMX_VPU
bool "imx-vpu"
depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
select BR2_PACKAGE_FIRMWARE_IMX
help
Library of userspace helpers specific for the NXP i.MX SoC
integrating a Chips&Media CODA Video Processing Unit (VPU)
such as the i.MX27/i.MX5x/i.MX6x.
This library is provided by NXP as-is and doesn't have an
upstream.
@@ -0,0 +1,4 @@
# Locally computed
sha256 87cb799a57df654db29403cb74a75ca5185a1517022d3a4a16b8d69056c36127 imx-vpu-5.4.39.3.bin
sha256 2ceab29de5ea533b86f570bcc4e9ddbfb5fe85a1da4978a8613ff3fd9bed781d COPYING
sha256 7ffad92e72e5f6b23027e7cf93a770a4acef00a92dcf79f22701ed401c5478c0 EULA
+39
View File
@@ -0,0 +1,39 @@
################################################################################
#
# imx-vpu
#
################################################################################
IMX_VPU_VERSION = 5.4.39.3
IMX_VPU_SITE = $(FREESCALE_IMX_SITE)
IMX_VPU_SOURCE = imx-vpu-$(IMX_VPU_VERSION).bin
IMX_VPU_INSTALL_STAGING = YES
IMX_VPU_MAKE_ENV = \
$(TARGET_MAKE_ENV) \
$(TARGET_CONFIGURE_OPTS) \
CROSS_COMPILE="$(TARGET_CROSS)" \
PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM)
IMX_VPU_LICENSE = NXP Semiconductor Software License Agreement
IMX_VPU_LICENSE_FILES = EULA COPYING
IMX_VPU_REDISTRIBUTE = NO
define IMX_VPU_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPU_DL_DIR)/$(IMX_VPU_SOURCE))
endef
define IMX_VPU_BUILD_CMDS
$(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D)
endef
define IMX_VPU_INSTALL_STAGING_CMDS
$(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(STAGING_DIR) install
endef
define IMX_VPU_INSTALL_TARGET_CMDS
$(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(TARGET_DIR) install
endef
$(eval $(generic-package))
@@ -0,0 +1,19 @@
comment "imx-vpuwrap needs an imx-specific Linux kernel to be built"
depends on !BR2_LINUX_KERNEL
comment "imx-vpuwrap needs an i.MX platform with VPU support"
depends on BR2_LINUX_KERNEL
depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU && !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
config BR2_PACKAGE_IMX_VPUWRAP
bool "imx-vpuwrap"
depends on BR2_LINUX_KERNEL
depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
help
Wrapper library for the vpu library, giving it a different
API.
This library is provided by NXP as-is and doesn't have
an upstream.
@@ -0,0 +1,4 @@
# locally computed
sha256 5c08b4b7c771404c998779f0e27a75564b57958d463e2df152c910d76cca9e44 imx-vpuwrap-4.3.5.bin
sha256 78696664f7afe7f2b081c99af60082d6403fab935b1b10056ed41aec123ff7fa COPYING
sha256 fc93f26e4197b9240c327ce26ae6e02123f022423d4704c7b0448a37372cf2a2 EULA
@@ -0,0 +1,28 @@
################################################################################
#
# imx-vpuwrap
#
################################################################################
IMX_VPUWRAP_VERSION = 4.3.5
IMX_VPUWRAP_SITE = $(FREESCALE_IMX_SITE)
IMX_VPUWRAP_SOURCE = imx-vpuwrap-$(IMX_VPUWRAP_VERSION).bin
IMX_VPUWRAP_INSTALL_STAGING = YES
ifeq ($(BR2_PACKAGE_IMX_VPU),y)
IMX_VPUWRAP_DEPENDENCIES += imx-vpu
endif
ifeq ($(BR2_PACKAGE_IMX_VPU_HANTRO),y)
IMX_VPUWRAP_DEPENDENCIES += imx-vpu-hantro
endif
IMX_VPUWRAP_LICENSE = NXP Semiconductor Software License Agreement
IMX_VPUWRAP_LICENSE_FILES = EULA COPYING
IMX_VPUWRAP_REDISTRIBUTE = NO
define IMX_VPUWRAP_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPUWRAP_DL_DIR)/$(IMX_VPUWRAP_SOURCE))
endef
$(eval $(autotools-package))
@@ -0,0 +1,16 @@
comment "kernel-module-imx-gpu-viv needs a Linux kernel to be built"
depends on !BR2_LINUX_KERNEL
config BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV
bool "kernel-module-imx-gpu-viv"
depends on BR2_LINUX_KERNEL
help
Kernel loadable module for Vivante GPU.
This package uses an exact copy of the GPU kernel driver
source code of the same version as base and include fixes
and improvements developed by FSL Community.
This module is only meant for NXP-based kernel.
https://github.com/Freescale/kernel-module-imx-gpu-viv
@@ -0,0 +1,3 @@
# locally computed
sha256 257c6cd8b01cfb6543827cbeb78409e6a2ad4ae321891751dcea1abc47d89379 kernel-module-imx-gpu-viv-ae0f3be0b7240f11cca191a3e2bdd4a445ee46e5.tar.gz
sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING
@@ -0,0 +1,24 @@
################################################################################
#
# kernel-module-imx-gpu-viv
#
################################################################################
KERNEL_MODULE_IMX_GPU_VIV_VERSION = ae0f3be0b7240f11cca191a3e2bdd4a445ee46e5
KERNEL_MODULE_IMX_GPU_VIV_SITE = \
$(call github,Freescale,kernel-module-imx-gpu-viv,$(KERNEL_MODULE_IMX_GPU_VIV_VERSION))
KERNEL_MODULE_IMX_GPU_VIV_LICENSE = GPL-2.0
KERNEL_MODULE_IMX_GPU_VIV_LICENSE_FILES = COPYING
KERNEL_MODULE_IMX_GPU_VIV_MODULE_MAKE_OPTS = \
AQROOT=$(@D)/kernel-module-imx-gpu-viv-src \
KERNEL_DIR=$(LINUX_DIR)
KERNEL_MODULE_IMX_GPU_VIV_MODULE_SUBDIRS = kernel-module-imx-gpu-viv-src
define KERNEL_MODULE_IMX_GPU_VIV_LINUX_CONFIG_FIXUPS
$(call KCONFIG_DISABLE_OPT,CONFIG_MXC_GPU_VIV)
endef
$(eval $(kernel-module))
$(eval $(generic-package))
+11
View File
@@ -0,0 +1,11 @@
config BR2_PACKAGE_LIBZ160
bool "libz160"
depends on BR2_ARM_EABI
depends on BR2_TOOLCHAIN_USES_GLIBC
help
An API for user space programs to perform 2D accelerated
graphics operations on AMD GPU (included for examples in
iMX5x chipsets)
comment "libz160 needs an EABI toolchain w/ glibc"
depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC
@@ -0,0 +1,3 @@
# locally computed
sha256 08767eb269a0a30ca0aa3d3b5aa9a53a2d17ed1c24651b7e8cefc7704b883f19 libz160-bin-11.09.01.bin
sha256 6d7a2fefc2f7ce888f9eb74919b852aed5a1087b2e84345be90cadbebe1b6578 EULA
+30
View File
@@ -0,0 +1,30 @@
################################################################################
#
# libz160
#
################################################################################
LIBZ160_VERSION = 11.09.01
LIBZ160_SOURCE = libz160-bin-$(LIBZ160_VERSION).bin
LIBZ160_SITE = $(FREESCALE_IMX_SITE)
LIBZ160_INSTALL_STAGING = YES
# See freescale-imx
LIBZ160_LICENSE = Freescale Semiconductor Software License Agreement
LIBZ160_LICENSE_FILES = EULA
LIBZ160_REDISTRIBUTE = NO
define LIBZ160_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(LIBZ160_DL_DIR)/$(LIBZ160_SOURCE))
endef
define LIBZ160_INSTALL_STAGING_CMDS
$(INSTALL) -D -m 755 $(@D)/usr/lib/libz160.so $(STAGING_DIR)/usr/lib/libz160.so
$(INSTALL) -D -m 644 $(@D)/usr/include/z160.h $(STAGING_DIR)/usr/include/z160.h
endef
define LIBZ160_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 755 $(@D)/usr/lib/libz160.so $(TARGET_DIR)/usr/lib/libz160.so
endef
$(eval $(generic-package))