meson-tools: new Package
PATCH v3 1/4 meson-tools: new Package
all amlogic's meson based soc require a signed firmware to boot, this package provides a binary to do so.
---
Changes v2 -> v3:
- add entry to DEVELOPERS FILE
Changes v1 -> v2:
- drop hunk which was sent by mistake (Brauch)
- drop cross compile patch as it isn't needed (Brauch)
- refractor bins installation cmd (Thomas)
- refractor build cmd (Thomas)
- handle general mail patch rejects (Thomas)
DEVELOPERS | 1 + package/Config.in.host | 1 + package/meson-tools/Config.in.host | 9 +++++++++ package/meson-tools/meson-tools.hash | 2 ++ package/meson-tools/meson-tools.mk | 24 ++++++++++++++++++++++++ 5 files changed, 37 insertions(+) create mode 100644 package/meson-tools/Config.in.host create mode 100644 package/meson-tools/meson-tools.hash create mode 100644 package/meson-tools/meson-tools.mk
DEVELOPERS +1 -0
@@ -467,6 +467,7 @@ N: Dagg Stompler <[email protected]> F: board/hardkernel/odroidc2 F: configs/odroidc2_defconfig F: package/libamcodec/ +F: package/meson-tools/ F: package/odroid-mali/ F: package/odroid-scripts/
package/Config.in.host +1 -0
@@ -29,6 +29,7 @@ menu "Host utilities" source "package/jsmin/Config.in.host" source "package/lpc3250loader/Config.in.host" source "package/lttng-babeltrace/Config.in.host" + source "package/meson-tools/Config.in.host" source "package/mfgtools/Config.in.host" source "package/mkpasswd/Config.in.host" source "package/mtd/Config.in.host"
package/meson-tools/Config.in.host new file +9 -0
@@ -0,0 +1,9 @@ +config BR2_PACKAGE_HOST_MESON_TOOLS + bool "host meson-tools" + help + meson-tools is a collection of tools for use with + the Amlogic Meson family of ARM based SoCs. + it allows management of signatures which are required + for booting amlogic based boards with u-boot. + + https://github.com/afaerber/meson-tools
package/meson-tools/meson-tools.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 5a956f5a6ff8c45fc79d649982287c4548a1df4f0ef9e5aa6584493d552a54a3 meson-tools-5e01cbadc6f6f21ad88a63492a83182fc4b19d37.tar.gz
package/meson-tools/meson-tools.mk new file +24 -0
@@ -0,0 +1,24 @@ +################################################################################ +# +# meson-tools +# +################################################################################ + +HOST_MESON_TOOLS_VERSION = 5e01cbadc6f6f21ad88a63492a83182fc4b19d37 +HOST_MESON_TOOLS_SITE = $(call github,afaerber,meson-tools,$(HOST_MESON_TOOLS_VERSION)) +HOST_MESON_TOOLS_LICENSE = GPL-2.0+ +HOST_MESON_TOOLS_LICENSE_FILES = COPYING README.md +HOST_MESON_TOOLS_DEPENDENCIES = host-openssl + +HOST_MESON_TOOLS_PROGS = amlbootsig unamlbootsig amlinfo + +define HOST_MESON_TOOLS_BUILD_CMDS + $(MAKE) -C $(@D) CC="$(HOSTCC)" CFLAGS="$(HOST_CFLAGS)" LDFLAGS="$(HOST_LDFLAGS) -lssl -lcrypto" +endef + +define HOST_MESON_TOOLS_INSTALL_CMDS + $(foreach f,$(HOST_MESON_TOOLS_PROGS), + $(INSTALL) -D -m 0755 $(@D)/$(f) $(HOST_DIR)/bin/$(f)) +endef + +$(eval $(host-generic-package))
Signature · 1 line
2.16.2
PATCH v3 2/4 odroidc2-ATF: new Package
the odroidc2 board requires a ATF (ARM Trusted Firmware) to boot u-boot. the ATF can be found only in the vendor's u-boot repository. this package will retrieve the needed files to sign the mainline u-boot image.
---
Changes v2 -> v3:
- add entry to DEVELOPERS file
Changes v1 -> v2:
- refractor mainline post image script by moving the ATF part to a seperate package.
- handle general mail patch rejects (Thomas)
DEVELOPERS | 1 + package/Config.in.host | 1 + package/odroidc2-ATF/Config.in.host | 7 +++++++ package/odroidc2-ATF/odroidc2-ATF.hash | 2 ++ package/odroidc2-ATF/odroidc2-ATF.mk | 26 ++++++++++++++++++++++++++ 5 files changed, 37 insertions(+) create mode 100644 package/odroidc2-ATF/Config.in.host create mode 100644 package/odroidc2-ATF/odroidc2-ATF.hash create mode 100644 package/odroidc2-ATF/odroidc2-ATF.mk
DEVELOPERS +1 -0
@@ -468,6 +468,7 @@ F: board/hardkernel/odroidc2 F: configs/odroidc2_defconfig F: package/libamcodec/ F: package/meson-tools/ +F: package/odroidc2-ATF/ F: package/odroid-mali/ F: package/odroid-scripts/
package/Config.in.host +1 -0
@@ -35,6 +35,7 @@ menu "Host utilities" source "package/mtd/Config.in.host" source "package/mtools/Config.in.host" source "package/mxsldr/Config.in.host" + source "package/odroidc2-ATF/Config.in.host" source "package/omap-u-boot-utils/Config.in.host" source "package/openocd/Config.in.host" source "package/opkg-utils/Config.in.host"
package/odroidc2-ATF/Config.in.host new file +7 -0
@@ -0,0 +1,7 @@ +config BR2_PACKAGE_HOST_ODROIDC2_ATF + bool "host odroidc2-ATF" + help + odroidc2-ATF is a package that extracts the ATF (ARM Trusted Firmware) from hardkernel's + uboot repository and uses it to allow safe boot of mainline u-boot kernels. + + https://github.com/hardkernel/u-boot/tree/odroidc2-v2015.01
package/odroidc2-ATF/odroidc2-ATF.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 7e436e83e21819605480938dda6e366a4ccd01acbb8402997a3633e25ff2d383 odroidc2-ATF-1dad487200543c2c1d116e8b2f070fe491070432.tar.gz
package/odroidc2-ATF/odroidc2-ATF.mk new file +26 -0
@@ -0,0 +1,26 @@ +################################################################################ +# +# odroidc2-ATF +# +################################################################################ + +HOST_ODROIDC2_ATF_VERSION = 1dad487200543c2c1d116e8b2f070fe491070432 +HOST_ODROIDC2_ATF_SITE = $(call github,hardkernel,u-boot,$(HOST_ODROIDC2_ATF_VERSION)) +HOST_ODROIDC2_ATF_LICENSE = GPL-2.0 +HOST_ODROIDC2_ATF_LICENSE_FILES = COPYING COPYING.txt README +HOST_ODROIDC2_ATF_FIRMWARE_FOLDER = $(HOST_DIR)/usr/share/odroidc2_atf +HOST_ODROIDC2_ATF_FIRMWARE_FILES = sd_fuse/bl1.bin.hardkernel fip/gxb/bl30.bin fip/gxb/bl301.bin fip/gxb/bl31.bin fip/gxb/bl2.package + +define HOST_ODROIDC2_ATF_BUILD_CMDS + $(MAKE) -C $(@D)/tools/fip_create CC="$(HOSTCC)" CFLAGS="$(HOST_CFLAGS)" LDFLAGS="$(HOST_LDFLAGS)" +endef + +define HOST_ODROIDC2_ATF_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/tools/fip_create/fip_create $(HOST_DIR)/bin + mkdir -p $(HOST_ODROIDC2_ATF_FIRMWARE_FOLDER) + $(foreach f,$(HOST_ODROIDC2_ATF_FIRMWARE_FILES), + $(INSTALL) -D -m 0644 $(@D)/$(f) $(HOST_ODROIDC2_ATF_FIRMWARE_FOLDER)/ + ) +endef + +$(eval $(host-generic-package))
Signature · 1 line
2.16.2
PATCH v3 3/4 odroidc2: prepare post-image.sh for multi config support
In reply to Dagg Stomplerprepare post-image.sh for support addition of multiple buildroot configs
---
no changes made, the patch is resent to make sure it will be applied as part of the set.
board/hardkernel/odroidc2/post-image.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
board/hardkernel/odroidc2/post-image.sh +6 -3
@@ -1,8 +1,11 @@ #!/bin/sh BOARD_DIR="$(dirname $0)" -GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" +IM_FILE="" + +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +IM_FILE="${BINARIES_DIR}/u-boot.bin" cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/
@@ -15,5 +18,5 @@ genimage \ --outputpath "${BINARIES_DIR}" \ --config "${GENIMAGE_CFG}" -dd if=${BINARIES_DIR}/u-boot.bin of=${BINARIES_DIR}/sdcard.img bs=1 count=442 conv=sync,notrunc -dd if=${BINARIES_DIR}/u-boot.bin of=${BINARIES_DIR}/sdcard.img bs=512 skip=1 seek=1 conv=fsync,notrunc +dd if=${IM_FILE} of=${BINARIES_DIR}/sdcard.img bs=1 count=442 conv=sync,notrunc +dd if=${IM_FILE} of=${BINARIES_DIR}/sdcard.img bs=512 skip=1 seek=1 conv=fsync,notrunc
Signature · 1 line
2.16.2
PATCH v4 4/4 odroidc2: add support for mainline kernel and u-boot
In reply to Dagg Stompler---
Changes v3 -> v4:
- add entry to DEVELOPERS file
Changes v2 -> v3:
- board/hardkernel/odroidc2/odroidc2_mainline_defconfig is not needed because update_arm64_defconfig_with_meson_configs.patch is used.
Changes v1 -> v2:
- handle general mail patch rejects (Thomas)
- use BR2_TARGET_UBOOT_BOOT_SCRIPT and BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE instead of script's boot.scr generation (Thomas)
- use defconfig in mainline kernel config (Thomas)
- add patch of mainline kernel diff instead of complete config and use arch default config (Arnout)
- move vendor's ATF handling to a separated patch (Thomas)
- add mainline config support for post image script (Thomas)
- fixed mainline defconfig rejects (Thomas)
- squashed all previous 2-8 patches into one patch (Thomas)
DEVELOPERS | 1 + board/hardkernel/odroidc2/boot.cmd | 10 + board/hardkernel/odroidc2/genimage-mainline.cfg | 33 ++ ...update_arm64_defconfig_with_meson_configs.patch | 642 +++++++++++++++++++++ board/hardkernel/odroidc2/post-build.sh | 12 + board/hardkernel/odroidc2/post-image.sh | 25 +- board/hardkernel/odroidc2/readme.txt | 27 +- configs/odroidc2_mainline_defconfig | 38 ++ 8 files changed, 783 insertions(+), 5 deletions(-) create mode 100644 board/hardkernel/odroidc2/boot.cmd create mode 100644 board/hardkernel/odroidc2/genimage-mainline.cfg create mode 100644 board/hardkernel/odroidc2/patches/linux/0001-update_arm64_defconfig_with_meson_configs.patch create mode 100755 board/hardkernel/odroidc2/post-build.sh create mode 100644 configs/odroidc2_mainline_defconfig
DEVELOPERS +1 -0
@@ -466,6 +466,7 @@ F: package/kvm-unit-tests N: Dagg Stompler <[email protected]> F: board/hardkernel/odroidc2 F: configs/odroidc2_defconfig +F: configs/odroidc2_mainline_defconfig F: package/libamcodec/ F: package/meson-tools/ F: package/odroidc2-ATF/
board/hardkernel/odroidc2/boot.cmd new file +10 -0
@@ -0,0 +1,10 @@ +setenv loadaddr "0x1080000" +setenv dtb_loadaddr "0x01000000" +setenv kernel_filename "uImage" +setenv fdt_filename "meson-gxbb-odroidc2.dtb" +setenv bootargs "console=ttyAML0,115200n8 earlyprintk root=/dev/mmcblk1p2 rootwait panic=10 ${extra} rw" + +fatload mmc 0:1 ${loadaddr} ${kernel_filename} +fatload mmc 0:1 ${dtb_loadaddr} ${fdt_filename} + +bootm ${loadaddr} - ${dtb_loadaddr}
board/hardkernel/odroidc2/genimage-mainline.cfg new file +33 -0
@@ -0,0 +1,33 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "meson-gxbb-odroidc2.dtb", + "boot.scr" + } + } + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "uboot-odc2.img" + offset = 49664 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +}
board/hardkernel/odroidc2/patches/linux/0001-update_arm64_defconfig_with_meson_configs.patch new file +642 -0
642 lines not on this page · raw message
board/hardkernel/odroidc2/post-build.sh new file +12 -0
@@ -0,0 +1,12 @@ +#!/bin/sh +# post-build.sh for Odroid C2 taken from CubieBoard's post-build.sh +# 2013, Carlo Caione <[email protected]> + +BOARD_DIR="$(dirname $0)" +MKIMAGE=$HOST_DIR/bin/mkimage + +# vendor u-boot uses uImage +if [ -f "${BINARIES_DIR}/Image" ]; then + ${MKIMAGE} -A arm64 -O linux -T kernel -C none -a 0x1080000 -e 0x1080000 \ + -n linux -d ${BINARIES_DIR}/Image ${BINARIES_DIR}/uImage +fi
board/hardkernel/odroidc2/post-image.sh +22 -3
@@ -2,12 +2,29 @@ BOARD_DIR="$(dirname $0)" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" +TARGET_MAINLINE="$2" IM_FILE="" +CLEANUPS_CMD="" -GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" -IM_FILE="${BINARIES_DIR}/u-boot.bin" +if [ "${TARGET_MAINLINE}" = "yes" ]; then + GENIMAGE_CFG="${BOARD_DIR}/genimage-mainline.cfg" + SIGNED_UBOOT_IMG="${BINARIES_DIR}/uboot-odc2.img" + ODRODIDC2_ATF_FOLDER="${HOST_DIR}/usr/share/odroidc2_atf" + IM_FILE="${ODRODIDC2_ATF_FOLDER}/bl1.bin.hardkernel" + CLEANUPS_CMD="rm -rf ${BINARIES_DIR}/fip.bin ${BINARIES_DIR}/boot_new.bin ${BINARIES_DIR}/u-boot.img" -cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/ + ${HOST_DIR}/bin/fip_create --bl30 ${ODRODIDC2_ATF_FOLDER}/bl30.bin --bl301 ${ODRODIDC2_ATF_FOLDER}/bl301.bin --bl31 ${ODRODIDC2_ATF_FOLDER}/bl31.bin --bl33 ${BINARIES_DIR}/u-boot.bin ${BINARIES_DIR}/fip.bin + ${HOST_DIR}/bin/fip_create --dump ${BINARIES_DIR}/fip.bin + cat ${ODRODIDC2_ATF_FOLDER}/bl2.package ${BINARIES_DIR}/fip.bin > ${BINARIES_DIR}/boot_new.bin + ${HOST_DIR}/bin/amlbootsig ${BINARIES_DIR}/boot_new.bin ${BINARIES_DIR}/u-boot.img + + dd if=${BINARIES_DIR}/u-boot.img of=${SIGNED_UBOOT_IMG} bs=512 skip=96 +else + GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" + IM_FILE="${BINARIES_DIR}/u-boot.bin" + + cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/ +fi rm -rf "${GENIMAGE_TMP}"
@@ -20,3 +37,5 @@ genimage \ dd if=${IM_FILE} of=${BINARIES_DIR}/sdcard.img bs=1 count=442 conv=sync,notrunc dd if=${IM_FILE} of=${BINARIES_DIR}/sdcard.img bs=512 skip=1 seek=1 conv=fsync,notrunc + +${CLEANUPS_CMD}
board/hardkernel/odroidc2/readme.txt +25 -2
@@ -10,7 +10,11 @@ How to build it $ make odroidc2_defconfig -Then you can edit the build options using +For vendor based configuration or + + $ make odroidc2_mainline_defconfig + +For community based configuration, then you can edit the build options using $ make menuconfig
@@ -24,7 +28,9 @@ download the packages' sources. Result of the build ------------------- -After building, you should obtain this tree: +After building, you should obtain one of the following trees: + +For vendor based configuration: output/images/ +-- Image
@@ -37,7 +43,24 @@ After building, you should obtain this tree: +-- sdcard.img `-- u-boot.bin +For community based configuration: + + output/images/ + +-- Image + +-- uImage [2] + +-- boot.scr [1] + +-- boot.vfat + +-- meson-gxbb-odroidc2.dtb + +-- rootfs.ext2 + +-- rootfs.ext4 + +-- rootfs.tar + +-- sdcard.img + +-- uboot-odc2.img [3] + `-- u-boot.bin + [1] This is the ODROID-C2 configuration file used in u-boot. +[2] This is the ODROID-C2 kernel image file which will be booted. +[3] This is the ODROID-C2 signed u-boot image which will be used. How to write the SD card or eMMC ================================
configs/odroidc2_mainline_defconfig new file +38 -0
@@ -0,0 +1,38 @@ +# Architecture +BR2_aarch64=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="odroidc2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_GLOBAL_PATCH_DIR="board/hardkernel/odroidc2/patches" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/hardkernel/odroidc2/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroidc2/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="yes" +BR2_KERNEL_HEADERS_4_14=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.4" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxbb-odroidc2" +BR2_LINUX_KERNEL_IMAGE=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="odroid-c2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_BOOT_SCRIPT=y +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="board/hardkernel/odroidc2/boot.cmd" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MESON_TOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_ODROIDC2_ATF=y
Signature · 1 line
2.16.2