mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 21:56:42 +00:00
Merge pull request #4831 from Kwiboo/uboot-crust-firmware
u-boot: restore bootloader/firmware script
This commit is contained in:
commit
f55345770e
@ -30,10 +30,9 @@ case "$LINUX" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
PKG_KERNEL_CFG_FILE=$(kernel_config_path) || die
|
PKG_KERNEL_CFG_FILE=$(kernel_config_path) || die
|
||||||
if [ -n "$UBOOT_SYSTEM" ]; then
|
|
||||||
if [ -n "$($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM crust_config)" ]; then
|
if listcontains "${UBOOT_FIRMWARE}" "crust"; then
|
||||||
PKG_PATCH_DIRS="$PKG_PATCH_DIRS crust"
|
PKG_PATCH_DIRS+=" crust"
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$KERNEL_TOOLCHAIN" ]; then
|
if [ -n "$KERNEL_TOOLCHAIN" ]; then
|
||||||
|
@ -11,18 +11,23 @@ PKG_URL="https://github.com/crust-firmware/crust/archive/${PKG_VERSION}.tar.gz"
|
|||||||
PKG_DEPENDS_TARGET="gcc-or1k-linux:host"
|
PKG_DEPENDS_TARGET="gcc-or1k-linux:host"
|
||||||
PKG_LONGDESC="Crust: Libre SCP firmware for Allwinner sunxi SoCs"
|
PKG_LONGDESC="Crust: Libre SCP firmware for Allwinner sunxi SoCs"
|
||||||
PKG_TOOLCHAIN="manual"
|
PKG_TOOLCHAIN="manual"
|
||||||
|
PKG_STAMP="$UBOOT_SYSTEM"
|
||||||
|
|
||||||
pre_configure_target() {
|
pre_configure_target() {
|
||||||
export CROSS_COMPILE="$TOOLCHAIN/lib/gcc-or1k-linux/bin/or1k-linux-"
|
export CROSS_COMPILE="$TOOLCHAIN/lib/gcc-or1k-linux/bin/or1k-linux-"
|
||||||
}
|
}
|
||||||
|
|
||||||
make_target() {
|
make_target() {
|
||||||
CRUST_CONFIG=$($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM crust_config)
|
if [ -z "$UBOOT_SYSTEM" ]; then
|
||||||
|
echo "crust is only built when building an image"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
CRUST_CONFIG=$($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM crust_config)
|
||||||
if [ -z "$CRUST_CONFIG" ]; then
|
if [ -z "$CRUST_CONFIG" ]; then
|
||||||
echo "crust_config must be set to build an image"
|
echo "crust_config must be set to build crust firmware"
|
||||||
echo "see './scripts/uboot_helper' for more information"
|
echo "see './scripts/uboot_helper' for more information"
|
||||||
exit 1
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make distclean
|
make distclean
|
||||||
|
@ -18,10 +18,6 @@ if [ -n "$UBOOT_FIRMWARE" ]; then
|
|||||||
PKG_DEPENDS_UNPACK+=" $UBOOT_FIRMWARE"
|
PKG_DEPENDS_UNPACK+=" $UBOOT_FIRMWARE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CRUST_CONFIG=""
|
|
||||||
[ -n "$UBOOT_SYSTEM" ] && CRUST_CONFIG=$($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM crust_config)
|
|
||||||
[ -n "$CRUST_CONFIG" ] && PKG_DEPENDS_TARGET+=" crust"
|
|
||||||
|
|
||||||
PKG_NEED_UNPACK="$PROJECT_DIR/$PROJECT/bootloader"
|
PKG_NEED_UNPACK="$PROJECT_DIR/$PROJECT/bootloader"
|
||||||
[ -n "$DEVICE" ] && PKG_NEED_UNPACK+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/bootloader"
|
[ -n "$DEVICE" ] && PKG_NEED_UNPACK+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/bootloader"
|
||||||
|
|
||||||
@ -54,9 +50,8 @@ make_target() {
|
|||||||
echo "see './scripts/uboot_helper' for more information"
|
echo "see './scripts/uboot_helper' for more information"
|
||||||
else
|
else
|
||||||
[ "${BUILD_WITH_DEBUG}" = "yes" ] && PKG_DEBUG=1 || PKG_DEBUG=0
|
[ "${BUILD_WITH_DEBUG}" = "yes" ] && PKG_DEBUG=1 || PKG_DEBUG=0
|
||||||
[ -n "$ATF_PLATFORM" ] && cp -av $(get_install_dir atf)/usr/share/bootloader/bl31.bin .
|
|
||||||
[ -n "$CRUST_CONFIG" ] && cp -av $(get_install_dir crust)/usr/share/bootloader/scp.bin .
|
|
||||||
DEBUG=${PKG_DEBUG} CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" ARCH=arm make mrproper
|
DEBUG=${PKG_DEBUG} CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" ARCH=arm make mrproper
|
||||||
|
[ -n "$UBOOT_FIRMWARE" ] && find_file_path bootloader/firmware && . ${FOUND_PATH}
|
||||||
DEBUG=${PKG_DEBUG} CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" ARCH=arm make $($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM config)
|
DEBUG=${PKG_DEBUG} CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" ARCH=arm make $($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM config)
|
||||||
DEBUG=${PKG_DEBUG} CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" ARCH=arm _python_sysroot="$TOOLCHAIN" _python_prefix=/ _python_exec_prefix=/ make $UBOOT_TARGET HOSTCC="$HOST_CC" HOSTLDFLAGS="-L$TOOLCHAIN/lib" HOSTSTRIP="true" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
|
DEBUG=${PKG_DEBUG} CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" ARCH=arm _python_sysroot="$TOOLCHAIN" _python_prefix=/ _python_exec_prefix=/ make $UBOOT_TARGET HOSTCC="$HOST_CC" HOSTLDFLAGS="-L$TOOLCHAIN/lib" HOSTSTRIP="true" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
|
||||||
fi
|
fi
|
||||||
|
9
projects/Allwinner/bootloader/firmware
Normal file
9
projects/Allwinner/bootloader/firmware
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
|
[ -n "$ATF_PLATFORM" ] && cp -av $(get_install_dir atf)/usr/share/bootloader/bl31.bin .
|
||||||
|
|
||||||
|
CRUST_CONFIG=$($ROOT/$SCRIPTS/uboot_helper $PROJECT $DEVICE $UBOOT_SYSTEM crust_config)
|
||||||
|
[ -n "$CRUST_CONFIG" ] && cp -av $(get_install_dir crust)/usr/share/bootloader/scp.bin .
|
||||||
|
|
||||||
|
exit 0
|
@ -26,7 +26,7 @@
|
|||||||
KERNEL_TARGET="Image"
|
KERNEL_TARGET="Image"
|
||||||
|
|
||||||
# U-Boot firmware package(s) to use
|
# U-Boot firmware package(s) to use
|
||||||
UBOOT_FIRMWARE="atf"
|
UBOOT_FIRMWARE="atf crust"
|
||||||
|
|
||||||
# ATF platform
|
# ATF platform
|
||||||
ATF_PLATFORM="sun50i_a64"
|
ATF_PLATFORM="sun50i_a64"
|
||||||
|
@ -37,6 +37,9 @@
|
|||||||
# Kernel target
|
# Kernel target
|
||||||
KERNEL_TARGET="zImage"
|
KERNEL_TARGET="zImage"
|
||||||
|
|
||||||
|
# U-Boot firmware package(s) to use
|
||||||
|
UBOOT_FIRMWARE="crust"
|
||||||
|
|
||||||
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q)
|
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q)
|
||||||
OPENGLES="mesa"
|
OPENGLES="mesa"
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
KERNEL_TARGET="Image"
|
KERNEL_TARGET="Image"
|
||||||
|
|
||||||
# U-Boot firmware package(s) to use
|
# U-Boot firmware package(s) to use
|
||||||
UBOOT_FIRMWARE="atf"
|
UBOOT_FIRMWARE="atf crust"
|
||||||
|
|
||||||
# ATF platform
|
# ATF platform
|
||||||
ATF_PLATFORM="sun50i_a64"
|
ATF_PLATFORM="sun50i_a64"
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
KERNEL_TARGET="Image"
|
KERNEL_TARGET="Image"
|
||||||
|
|
||||||
# U-Boot firmware package(s) to use
|
# U-Boot firmware package(s) to use
|
||||||
UBOOT_FIRMWARE="atf"
|
UBOOT_FIRMWARE="atf crust"
|
||||||
|
|
||||||
# ATF platform
|
# ATF platform
|
||||||
ATF_PLATFORM="sun50i_h6"
|
ATF_PLATFORM="sun50i_h6"
|
||||||
|
@ -348,7 +348,7 @@ devices = \
|
|||||||
}
|
}
|
||||||
|
|
||||||
def usage(PROJECT=None, SOC=None, FILE=sys.stdout):
|
def usage(PROJECT=None, SOC=None, FILE=sys.stdout):
|
||||||
print('Usage: %s <project> <soc> <board-name> dtb|config' % sys.argv[0], file=FILE)
|
print('Usage: %s <project> <soc> <board-name> dtb|config|crust_config' % sys.argv[0], file=FILE)
|
||||||
print(' %s <project> <soc>' % sys.argv[0], file=FILE)
|
print(' %s <project> <soc>' % sys.argv[0], file=FILE)
|
||||||
print(' %s <project>' % sys.argv[0], file=FILE)
|
print(' %s <project>' % sys.argv[0], file=FILE)
|
||||||
print('', file=FILE)
|
print('', file=FILE)
|
||||||
@ -392,15 +392,15 @@ if len(sys.argv) > 3 and sys.argv[3] not in devices[sys.argv[1]][sys.argv[2]]:
|
|||||||
exit_error('Invalid board-name: %s' % sys.argv[3], PROJECT=sys.argv[1], SOC=sys.argv[2])
|
exit_error('Invalid board-name: %s' % sys.argv[3], PROJECT=sys.argv[1], SOC=sys.argv[2])
|
||||||
|
|
||||||
if len(sys.argv) == 4:
|
if len(sys.argv) == 4:
|
||||||
exit_error('Invalid option: must specify dtb or config', PROJECT=sys.argv[1], SOC=sys.argv[2])
|
exit_error('Invalid option: must specify dtb, config or crust_config', PROJECT=sys.argv[1], SOC=sys.argv[2])
|
||||||
elif len(sys.argv) > 4 and sys.argv[4] not in ['dtb', 'config', 'crust_config']:
|
elif len(sys.argv) > 4 and sys.argv[4] not in ['dtb', 'config', 'crust_config']:
|
||||||
exit_error('Invalid option: %s' % sys.argv[4], PROJECT=sys.argv[1], SOC=sys.argv[2])
|
exit_error('Invalid option: %s' % sys.argv[4], PROJECT=sys.argv[1], SOC=sys.argv[2])
|
||||||
|
|
||||||
if len(sys.argv) > 5:
|
if len(sys.argv) > 5:
|
||||||
exit_error('Invalid number of arguments: %s' % ' '.join(sys.argv[1:]), PROJECT=sys.argv[1], SOC=sys.argv[2])
|
exit_error('Invalid number of arguments: %s' % ' '.join(sys.argv[1:]), PROJECT=sys.argv[1], SOC=sys.argv[2])
|
||||||
|
|
||||||
# Get dtb or u-boot config for a given project, soc, and board
|
# Get dtb, u-boot or crust config for a given project, soc, and board
|
||||||
# ./scripts/uboot_helper project device board-name dtb|config
|
# ./scripts/uboot_helper project device board-name dtb|config|crust_config
|
||||||
if len(sys.argv) == 5:
|
if len(sys.argv) == 5:
|
||||||
if sys.argv[4] in devices[sys.argv[1]][sys.argv[2]][sys.argv[3]]:
|
if sys.argv[4] in devices[sys.argv[1]][sys.argv[2]][sys.argv[3]]:
|
||||||
print(devices[sys.argv[1]][sys.argv[2]][sys.argv[3]][sys.argv[4]])
|
print(devices[sys.argv[1]][sys.argv[2]][sys.argv[3]][sys.argv[4]])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user