Merge pull request #5131 from lrusak/imx8

Add initial iMX8 support
This commit is contained in:
CvH 2021-02-13 21:25:51 +01:00 committed by GitHub
commit d3498dccc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 6387 additions and 3 deletions

View File

@ -3,8 +3,8 @@
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="firmware-imx" PKG_NAME="firmware-imx"
PKG_VERSION="7.9" PKG_VERSION="8.9"
PKG_SHA256="30e22c3e24a8025d60c52ed5a479e30fad3ad72127c84a870e69ec34e46ea8c0" PKG_SHA256="a72f70fd2ecaa58800bb88ed672fddc322ab9843ee7777eb89b82016b0aa3614"
PKG_ARCH="arm" PKG_ARCH="arm"
PKG_LICENSE="other" PKG_LICENSE="other"
PKG_SITE="http://www.freescale.com" PKG_SITE="http://www.freescale.com"
@ -21,8 +21,10 @@ unpack() {
makeinstall_target() { makeinstall_target() {
mkdir -p ${INSTALL}/$(get_full_firmware_dir)/imx/sdma mkdir -p ${INSTALL}/$(get_full_firmware_dir)/imx/sdma
cp -P firmware/sdma/sdma-imx6q.bin ${INSTALL}/$(get_full_firmware_dir)/imx/sdma cp -P firmware/sdma/sdma-imx6q.bin ${INSTALL}/$(get_full_firmware_dir)/imx/sdma
cp -P firmware/sdma/sdma-imx7d.bin ${INSTALL}/$(get_full_firmware_dir)/imx/sdma
mkdir -p ${INSTALL}/$(get_full_firmware_dir)/vpu mkdir -p ${INSTALL}/$(get_full_firmware_dir)/vpu
cp -P firmware/vpu/vpu_fw_imx6d.bin ${INSTALL}/$(get_full_firmware_dir)/vpu cp -P firmware/vpu/vpu_fw_imx6d.bin ${INSTALL}/$(get_full_firmware_dir)/vpu
cp -P firmware/vpu/vpu_fw_imx6q.bin ${INSTALL}/$(get_full_firmware_dir)/vpu cp -P firmware/vpu/vpu_fw_imx6q.bin ${INSTALL}/$(get_full_firmware_dir)/vpu
cp -P firmware/vpu/vpu_fw_imx8_dec.bin ${INSTALL}/$(get_full_firmware_dir)/vpu
} }

View File

@ -33,7 +33,7 @@ if [ "${V4L2_SUPPORT}" = "yes" ]; then
PKG_NEED_UNPACK+=" $(get_pkg_directory libdrm)" PKG_NEED_UNPACK+=" $(get_pkg_directory libdrm)"
PKG_FFMPEG_V4L2="--enable-v4l2_m2m --enable-libdrm" PKG_FFMPEG_V4L2="--enable-v4l2_m2m --enable-libdrm"
if [ "${PROJECT}" = "Allwinner" -o "${PROJECT}" = "Rockchip" ]; then if [ "${PROJECT}" = "Allwinner" -o "${PROJECT}" = "Rockchip" -o "${DEVICE}" = "iMX8" ]; then
PKG_V4L2_REQUEST="yes" PKG_V4L2_REQUEST="yes"
elif [ "${PROJECT}" = "RPi" -a "${DEVICE}" = "RPi4" ]; then elif [ "${PROJECT}" = "RPi" -a "${DEVICE}" = "RPi4" ]; then
PKG_V4L2_REQUEST="yes" PKG_V4L2_REQUEST="yes"

View File

@ -0,0 +1,9 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
[ -n "$ATF_PLATFORM" ] && cp -av $(get_install_dir atf)/usr/share/bootloader/bl31.bin .
cp -av $(get_build_dir firmware-imx)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(get_build_dir $BOOTLOADER)/
cp -av $(get_build_dir firmware-imx)/firmware/ddr/synopsys/lpddr4*.bin $(get_build_dir $BOOTLOADER)/

View File

@ -0,0 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
cp -av flash.bin $INSTALL/usr/share/bootloader/

View File

@ -0,0 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
if [ -f "$RELEASE_DIR/3rdparty/bootloader/flash.bin" ]; then
echo "Writing flash.bin to $(basename $DISK)"
dd if="$RELEASE_DIR/3rdparty/bootloader/flash.bin" of="$DISK" bs=1024 seek=33 conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error
fi

View File

@ -0,0 +1,10 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
mkdir -p $RELEASE_DIR/3rdparty/bootloader
if [ -n "$UBOOT_SYSTEM" ]; then
cp -a $(get_build_dir $BOOTLOADER)/flash.bin $RELEASE_DIR/3rdparty/bootloader/
fi
cp -a $(get_build_dir linux)/arch/$TARGET_KERNEL_ARCH/boot/dts/freescale/*.dtb $RELEASE_DIR/3rdparty/bootloader

View File

@ -0,0 +1,40 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
[ -z "$SYSTEM_ROOT" ] && SYSTEM_ROOT=""
[ -z "$BOOT_ROOT" ] && BOOT_ROOT="/flash"
[ -z "$BOOT_PART" ] && BOOT_PART=$(df "$BOOT_ROOT" | tail -1 | awk {' print $1 '})
if [ -z "$BOOT_DISK" ]; then
case $BOOT_PART in
/dev/sd[a-z][0-9]*)
BOOT_DISK=$(echo $BOOT_PART | sed -e "s,[0-9]*,,g")
;;
/dev/mmcblk*)
BOOT_DISK=$(echo $BOOT_PART | sed -e "s,p[0-9]*,,g")
;;
esac
fi
# mount $BOOT_ROOT r/w
mount -o remount,rw $BOOT_ROOT
# update Device Tree Blobs
for all_dtb in /flash/*.dtb; do
dtb=$(basename $all_dtb)
if [ -f $SYSTEM_ROOT/usr/share/bootloader/$dtb ]; then
echo "*** updating Device Tree Blob: $dtb ..."
cp -p $SYSTEM_ROOT/usr/share/bootloader/$dtb $BOOT_ROOT
fi
done
# update bootloader files
if [ -f $SYSTEM_ROOT/usr/share/bootloader/flash.bin ]; then
echo "*** updating u-boot image on: $BOOT_DISK ..."
dd if=$SYSTEM_ROOT/usr/share/bootloader/flash.bin of="$BOOT_DISK" bs=1024 seek=33 conv=fsync &>/dev/null
fi
# mount $BOOT_ROOT r/o
sync
mount -o remount,ro $BOOT_ROOT

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,43 @@
################################################################################
# setup device defaults
################################################################################
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in
aarch64)
TARGET_CPU="cortex-a53"
TARGET_CPU_FLAGS="+crc+fp+simd"
TARGET_FEATURES="64bit"
;;
arm)
TARGET_KERNEL_ARCH="arm64"
TARGET_PATCH_ARCH="aarch64"
TARGET_FLOAT=hard
TARGET_CPU="cortex-a53"
TARGET_CPU_FLAGS="+crc"
TARGET_FPU="neon-fp-armv8"
TARGET_FEATURES="32bit"
;;
esac
# Kernel target
KERNEL_TARGET="Image"
# kernel serial console
EXTRA_CMDLINE="console=ttymxc0,115200 console=tty0"
# debug tty path
DEBUG_TTY="/dev/ttymxc0"
# ATF platform
ATF_PLATFORM="imx8mq"
# uboot firmware
UBOOT_FIRMWARE="atf firmware-imx"
# uboot target
UBOOT_TARGET="flash.bin"
# Set the addon project
ADDON_PROJECT="ARMv8"

View File

@ -218,6 +218,16 @@ devices = \
'config': 'wandboard_defconfig' 'config': 'wandboard_defconfig'
}, },
}, },
'iMX8' : {
'mq-evk' : {
'dtb' : 'imx8mq-evk.dtb',
'config' : 'imx8mq_evk_defconfig'
},
'pico-mq' : {
'dtb' : 'imx8mq-pico-pi.dtb',
'config' : 'pico-imx8mq_defconfig'
},
},
}, },
'Qualcomm': { 'Qualcomm': {
'Dragonboard': { 'Dragonboard': {