diff --git a/Documentation/boards/README.md b/Documentation/boards/README.md index 0fd48a3ea..67961ccae 100644 --- a/Documentation/boards/README.md +++ b/Documentation/boards/README.md @@ -14,6 +14,7 @@ The following boards/devices are supported: - Pi (not recommended) - Hardkernel - Odroid-C2 + - Odroid-C4 (_experimental_) - Odroid-N2 - Odroid-XU4 - Intel NUC @@ -46,6 +47,7 @@ Notes: |Pi Zero |`make rpi0_w` |[rpi0_w](../../buildroot-external/configs/rpi0_w_defconfig)|[raspberrypi](./raspberrypi/)| |Pi |`make rpi` |[rpi](../../buildroot-external/configs/rpi_defconfig)|[raspberrypi](./raspberrypi/)| |Odroid-C2 |`make odroid_c2` |[odroid_c2](../../buildroot-external/configs/odroid_c2_defconfig)|[hardkernel](./hardkernel/)| +|Odroid-C4 |`make odroid_c4` |[odroid_c4](../../buildroot-external/configs/odroid_c4_defconfig)|[hardkernel](./hardkernel/)| |Odroid-N2 |`make odroid_n2` |[odroid_n2](../../buildroot-external/configs/odroid_n2_defconfig)|[hardkernel](./hardkernel/)| |Odroid-XU4 |`make odroid_xu4`|[odroid_xu4](../../buildroot-external/configs/odroid_xu4_defconfig)|[hardkernel](./hardkernel/)| |NUC |`make intel_nuc` |[intel_nuc](../../buildroot-external/configs/intel_nuc_defconfig)|[intel](./intel/)| diff --git a/Documentation/boards/hardkernel/README.md b/Documentation/boards/hardkernel/README.md index 94d345dae..071768711 100644 --- a/Documentation/boards/hardkernel/README.md +++ b/Documentation/boards/hardkernel/README.md @@ -2,10 +2,11 @@ ## Supported Hardware -| Device | Release Date | Support | Config | -|----------------|---------------|---------|-----------| -| ODROID-XU4 | 2015 | yes | [odroid_xu4](../../../buildroot-external/configs/odroid_xu4_defconfig)| -| ODROID-C2 | 2016 | yes | [odroid_c2](../../../buildroot-external/configs/odroid_c2_defconfig) | -| ODROID-N2 | 2019 | yes | [odroid_n2](../../../buildroot-external/configs/odroid_n2_defconfig) | +| Device | Release Date | Support | Config | +|----------------|---------------|--------------|-----------| +| ODROID-XU4 | 2015 | yes | [odroid_xu4](../../../buildroot-external/configs/odroid_xu4_defconfig)| +| ODROID-C2 | 2016 | yes | [odroid_c2](../../../buildroot-external/configs/odroid_c2_defconfig) | +| ODROID-C4 | 2020 | experimental | [odroid_c4](../../../buildroot-external/configs/odroid_c4_defconfig) | +| ODROID-N2 | 2019 | yes | [odroid_n2](../../../buildroot-external/configs/odroid_n2_defconfig) | See separate documentation for each board. diff --git a/Documentation/boards/hardkernel/odroid-c4.md b/Documentation/boards/hardkernel/odroid-c4.md new file mode 100644 index 000000000..edf53a738 --- /dev/null +++ b/Documentation/boards/hardkernel/odroid-c4.md @@ -0,0 +1,16 @@ +# Odroid-C4 + +## Experimental + +Odroid-C4 support is based heavily on the Odroid-C2 and N2 configurations. Given the similarity of the SoCs, as well as the comparable level of support in the Linux kernel, the C4 should hopefully present few surprises. However, Home Assistant support should be regarded as experimental. + +Please also refer to the documentation pages for the [Odroid-C2](./odroid-c2.md) and [Odroid-N2](./odroid-n2.md), as some of that information may apply to the C4 as well. + +Common C4 issues that have been specifically tested and appear to be working: +- boot from SD +- boot from eMMC +- MAC address obtained from eFuse + +## GPIO + +Refer to [the odroid wiki](https://wiki.odroid.com/odroid-c4/hardware/expansion_connectors). diff --git a/Documentation/development.md b/Documentation/development.md index 0bf44e1ea..063197054 100644 --- a/Documentation/development.md +++ b/Documentation/development.md @@ -36,6 +36,7 @@ Default 2. That is the size of end image in GB. - intel-nuc - odroid-c2 +- odroid-c4 - odroid-n2 - odroid-xu - qemuarm diff --git a/Documentation/kernel.md b/Documentation/kernel.md index 96b6f50a2..f1292bc46 100644 --- a/Documentation/kernel.md +++ b/Documentation/kernel.md @@ -12,7 +12,8 @@ Default Kernel tree: 5.4 | Raspberry Pi 3 | 4.19.127 | | Raspberry Pi 4 | 4.19.127 | | Tinker Board | 5.4.63 | -| Odroid-C2 | 5.7.19 | -| Odroid-N2 | 5.7.19 | -| Odroid-XU4 | 5.7.19 | +| Odroid-C2 | 5.9.1 | +| Odroid-C4 | 5.9.1 | +| Odroid-N2 | 5.9.1 | +| Odroid-XU4 | 5.9.1 | | Intel NUC | 5.4.63 | diff --git a/azure-pipelines-release.yml b/azure-pipelines-release.yml index 031a14850..7453ad7fa 100644 --- a/azure-pipelines-release.yml +++ b/azure-pipelines-release.yml @@ -46,6 +46,8 @@ jobs: board: 'intel_nuc' OdroidC2: board: 'odroid_c2' + OdroidC4: + board: 'odroid_c4' OdroidN2: board: 'odroid_n2' OdroidXU4: diff --git a/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh b/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh new file mode 100755 index 000000000..2f398069d --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# shellcheck disable=SC2155 + +function hassos_pre_image() { + local BOOT_DATA="$(path_boot_dir)" + local UBOOT_SM1="${BINARIES_DIR}/u-boot.sm1" + local SPL_IMG="$(path_spl_img)" + + cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr" + cp "${BINARIES_DIR}/meson-sm1-odroid-c4.dtb" "${BOOT_DATA}/meson-sm1-odroid-c4.dtb" + + echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt" + + # SPL + create_spl_image + + dd if="${UBOOT_SM1}" of="${SPL_IMG}" conv=notrunc bs=512 seek=1 +} + + +function hassos_post_image() { + convert_disk_image_gz +} diff --git a/buildroot-external/board/hardkernel/odroid-c4/meta b/buildroot-external/board/hardkernel/odroid-c4/meta new file mode 100644 index 000000000..3b23846fb --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c4/meta @@ -0,0 +1,10 @@ +BOARD_ID=odroid-c4 +BOARD_NAME="Hardkernel Odroid-C4" +CHASSIS=embedded +BOOTLOADER=uboot +KERNEL_FILE=Image +BOOT_SYS=mbr +BOOT_SPL=true +BOOT_ENV_SIZE=0x2000 +SUPERVISOR_MACHINE=odroid-c4 +SUPERVISOR_ARCH=aarch64 diff --git a/buildroot-external/board/hardkernel/odroid-c4/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch b/buildroot-external/board/hardkernel/odroid-c4/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch new file mode 100644 index 000000000..2ae25bf44 --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c4/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch @@ -0,0 +1,25 @@ +From 64017a2cc9e501329016d50b701c5e9a9488991d Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Mon, 2 Sep 2019 15:42:04 +0200 +Subject: [PATCH 3/3] HACK: mmc: meson-gx: limit to 24MHz + +Signed-off-by: Neil Armstrong +--- + drivers/mmc/meson_gx_mmc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c +index b5f5122b..00bfa324 100644 +--- a/drivers/mmc/meson_gx_mmc.c ++++ b/drivers/mmc/meson_gx_mmc.c +@@ -252,7 +252,7 @@ static int meson_mmc_probe(struct udevice *dev) + cfg->host_caps = MMC_MODE_8BIT | MMC_MODE_4BIT | + MMC_MODE_HS_52MHz | MMC_MODE_HS; + cfg->f_min = DIV_ROUND_UP(SD_EMMC_CLKSRC_24M, CLK_MAX_DIV); +- cfg->f_max = 100000000; /* 100 MHz */ ++ cfg->f_max = SD_EMMC_CLKSRC_24M; + cfg->b_max = 511; /* max 512 - 1 blocks */ + cfg->name = dev->name; + +-- +2.22.0 diff --git a/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush b/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush new file mode 100644 index 000000000..98fcbe3af --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush @@ -0,0 +1,83 @@ + +########################################### + +part start mmc ${devnum} 9 mmc_env +mmc dev ${devnum} +setenv loadbootstate " \ + echo 'loading env...'; \ + mmc read ${ramdisk_addr_r} ${mmc_env} 0x10; \ + env import -c ${ramdisk_addr_r} 0x2000;" + +setenv storebootstate " \ + echo 'storing env...'; \ + env export -c -s 0x2000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \ + mmc write ${ramdisk_addr_r} ${mmc_env} 0x10;" + +run loadbootstate +test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B" +test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3 +test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3 + +# HassOS bootargs +setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor systemd.machine_id=${MACHINE_ID} cgroup_enable=memory clk_ignore_unused usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u" + +# HassOS system A/B +setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait" +setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait" + +usb start + +# Load extraargs +fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline +fatload mmc ${devnum}:1 ${fdt_addr_r} meson-sm1-odroid-c4.dtb + +# logical volumes get numbered after physical ones. +# 1. boot +# 2. Extended partition +# 3. Overlay +# 4. Data +# 5. KernelA +# 6. SystemA +# 7. KernelB +# 8. SystemB +# 9. BootInfo +setenv bootargs +for BOOT_SLOT in "${BOOT_ORDER}"; do + if test "x${bootargs}" != "x"; then + # skip remaining slots + elif test "x${BOOT_SLOT}" = "xA"; then + if test ${BOOT_A_LEFT} -gt 0; then + setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1 + echo "Found valid slot A, ${BOOT_A_LEFT} attempts remaining" + setenv load_kernel "ext4load mmc ${devnum}:5 ${kernel_addr_r} Image" + setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}" + fi + elif test "x${BOOT_SLOT}" = "xB"; then + if test ${BOOT_B_LEFT} -gt 0; then + setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1 + echo "Found valid slot B, ${BOOT_B_LEFT} attempts remaining" + setenv load_kernel "ext4load mmc ${devnum}:7 ${kernel_addr_r} Image" + setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}" + fi + fi +done + +if test -n "${bootargs}"; then + run storebootstate +else + echo "No valid slot found, resetting tries to 3" + setenv BOOT_A_LEFT 3 + setenv BOOT_B_LEFT 3 + run storebootstate + reset +fi + +echo "Loading kernel" +run load_kernel +echo " Starting kernel" +printenv load_kernel +printenv bootargs +booti ${kernel_addr_r} - ${fdt_addr_r} + +echo "Fails on boot" +reset diff --git a/buildroot-external/board/hardkernel/odroid-c4/uboot.config b/buildroot-external/board/hardkernel/odroid-c4/uboot.config new file mode 100644 index 000000000..4ab6d289f --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c4/uboot.config @@ -0,0 +1,4 @@ +CONFIG_DOS_PARTITION=y +# CONFIG_EFI_PARTITION is not set +# CONFIG_USB_STORAGE is not set +CONFIG_DISPLAY_BOARDINFO=y diff --git a/buildroot-external/configs/odroid_c4_defconfig b/buildroot-external/configs/odroid_c4_defconfig new file mode 100644 index 000000000..9d48927d3 --- /dev/null +++ b/buildroot-external/configs/odroid_c4_defconfig @@ -0,0 +1,102 @@ +BR2_aarch64=y +BR2_DL_DIR="/cache/dl" +BR2_CCACHE=y +BR2_CCACHE_DIR="/cache/cc" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/patches" +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_GCC_VERSION_9_X=y +BR2_OPTIMIZE_2=y +BR2_SSP_REGULAR=y +BR2_SSP_OPTION="-fstack-protector" +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_BINUTILS_ENABLE_LTO=y +BR2_GCC_ENABLE_LTO=y +BR2_TARGET_GENERIC_HOSTNAME="homeassistant" +BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant" +BR2_INIT_SYSTEMD=y +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_HASSOS_PATH)/rootfs-overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/hassos-hook.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.9.1" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config" +BR2_LINUX_KERNEL_LZ4=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-sm1-odroid-c4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" +BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y +BR2_PACKAGE_PROCPS_NG=y +BR2_PACKAGE_JQ=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y +BR2_PACKAGE_SQUASHFS=y +BR2_PACKAGE_CRDA=y +BR2_PACKAGE_GPTFDISK=y +BR2_PACKAGE_GPTFDISK_SGDISK=y +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBDNET=y +BR2_PACKAGE_LIBCGROUP=y +BR2_PACKAGE_LIBCGROUP_TOOLS=y +BR2_PACKAGE_AVAHI=y +# BR2_PACKAGE_AVAHI_AUTOIPD is not set +BR2_PACKAGE_AVAHI_DAEMON=y +BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_NSS_MDNS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y +BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y +BR2_PACKAGE_DROPBEAR=y +# BR2_PACKAGE_DROPBEAR_CLIENT is not set +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_NETWORK_MANAGER=y +BR2_PACKAGE_TINI=y +BR2_PACKAGE_DOCKER_ENGINE=y +BR2_PACKAGE_DOCKER_CLI=y +BR2_PACKAGE_RAUC=y +BR2_PACKAGE_RAUC_NETWORK=y +BR2_PACKAGE_RNG_TOOLS=y +# BR2_PACKAGE_SYSTEMD_HWDB is not set +# BR2_PACKAGE_SYSTEMD_NETWORKD is not set +BR2_PACKAGE_SYSTEMD_RANDOMSEED=y +# BR2_PACKAGE_SYSTEMD_RESOLVED is not set +BR2_PACKAGE_SYSTEMD_COREDUMP=y +BR2_PACKAGE_SYSTEMD_LOGIND=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y +BR2_PACKAGE_UTIL_LINUX_LOGIN=y +BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y +BR2_PACKAGE_USB_MODESWITCH=y +BR2_PACKAGE_USB_MODESWITCH_DATA=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c4" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/uboot.config" +BR2_TARGET_UBOOT_BOOT_SCRIPT=y +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/uboot-boot.ush" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_E2FSPROGS=y +BR2_PACKAGE_HOST_GPTFDISK=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_RAUC=y +BR2_PACKAGE_HASSIO=y +BR2_PACKAGE_HASSIO_ARCH="aarch64" +BR2_PACKAGE_APPARMOR=y +BR2_PACKAGE_HARDKERNEL_BOOT=y +BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_C4=y diff --git a/buildroot-external/package/hardkernel-boot/Config.in b/buildroot-external/package/hardkernel-boot/Config.in index 7e1dcac25..ab48290e0 100644 --- a/buildroot-external/package/hardkernel-boot/Config.in +++ b/buildroot-external/package/hardkernel-boot/Config.in @@ -14,6 +14,11 @@ config BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_C2 help For the Odroid-C2 +config BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_C4 + bool "Odroid-C4" + help + For the Odroid-C4 + config BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_XU4 bool "Odroid-XU4" help diff --git a/buildroot-external/package/hardkernel-boot/hardkernel-boot.mk b/buildroot-external/package/hardkernel-boot/hardkernel-boot.mk index cacb6451a..ced3fa0ae 100644 --- a/buildroot-external/package/hardkernel-boot/hardkernel-boot.mk +++ b/buildroot-external/package/hardkernel-boot/hardkernel-boot.mk @@ -32,6 +32,62 @@ define HARDKERNEL_BOOT_BUILD_CMDS dd if=$(@D)/u-boot.img of=$(@D)/u-boot.gxbb bs=512 skip=96 endef +else ifeq ($(BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_C4),y) +# travis/odroidc4-153 20201014 +HARDKERNEL_BOOT_VERSION = 2a4e31e3fde9bced8a150d338aa397a0362df191 + +HARDKERNEL_BOOT_BINS += u-boot.sm1 +define HARDKERNEL_BOOT_BUILD_CMDS + # blx_fix_g12a.sh is appropriate for C4 as well as N2 + curl -L -o $(@D)/fip/blx_fix.sh https://raw.githubusercontent.com/home-assistant/hassos-blobs/d88ec078470f236d694ba1f9e69a44759ddf41ea/odroid-n2/blx_fix_g12a.sh + # acs.bin and bl301.bin appear to be different than N2 versions + curl -L -o $(@D)/fip/acs.bin https://raw.githubusercontent.com/home-assistant/operating-system-blobs/75fa51f44221da614a717673a27bec4fa01ccd6c/hardkernel/odroid-c4/acs.bin + curl -L -o $(@D)/fip/bl301.bin https://raw.githubusercontent.com/home-assistant/operating-system-blobs/75fa51f44221da614a717673a27bec4fa01ccd6c/hardkernel/odroid-c4/bl301.bin + + bash $(@D)/fip/blx_fix.sh \ + $(@D)/fip/g12a/bl30.bin $(@D)/fip/zero_tmp $(@D)/fip/bl30_zero.bin \ + $(@D)/fip/bl301.bin $(@D)/fip/bl301_zero.bin $(@D)/fip/bl30_new.bin \ + bl30 + + bash $(@D)/fip/blx_fix.sh \ + $(@D)/fip/g12a/bl2.bin $(@D)/fip/zero_tmp $(@D)/fip/bl2_zero.bin \ + $(@D)/fip/acs.bin $(@D)/fip/bl21_zero.bin $(@D)/fip/bl2_new.bin \ + bl2 + + $(@D)/fip/g12a/aml_encrypt_g12a --bl30sig --input $(@D)/fip/bl30_new.bin \ + --output $(@D)/fip/bl30_new.bin.g12a.enc \ + --level v3 + $(@D)/fip/g12a/aml_encrypt_g12a --bl3sig --input $(@D)/fip/bl30_new.bin.g12a.enc \ + --output $(@D)/fip/bl30_new.bin.enc \ + --level v3 --type bl30 + $(@D)/fip/g12a/aml_encrypt_g12a --bl3sig --input $(@D)/fip/g12a/bl31.img \ + --output $(@D)/fip/bl31.img.enc \ + --level v3 --type bl31 + $(@D)/fip/g12a/aml_encrypt_g12a --bl3sig --input $(BINARIES_DIR)/u-boot.bin \ + --output $(@D)/fip/bl33.bin.enc \ + --level v3 --type bl33 + $(@D)/fip/g12a/aml_encrypt_g12a --bl2sig --input $(@D)/fip/bl2_new.bin \ + --output $(@D)/fip/bl2.n.bin.sig + $(@D)/fip/g12a/aml_encrypt_g12a --bootmk \ + --output $(@D)/fip/u-boot.bin \ + --bl2 $(@D)/fip/bl2.n.bin.sig \ + --bl30 $(@D)/fip/bl30_new.bin.enc \ + --bl31 $(@D)/fip/bl31.img.enc \ + --bl33 $(@D)/fip/bl33.bin.enc \ + --ddrfw1 $(@D)/fip/g12a/ddr4_1d.fw \ + --ddrfw2 $(@D)/fip/g12a/ddr4_2d.fw \ + --ddrfw3 $(@D)fip/g12a/ddr3_1d.fw \ + --ddrfw4 $(@D)/fip/g12a/piei.fw \ + --ddrfw5 $(@D)/fip/g12a/lpddr4_1d.fw \ + --ddrfw6 $(@D)/fip/g12a/lpddr4_2d.fw \ + --ddrfw7 $(@D)/fip/g12a/diag_lpddr4.fw \ + --ddrfw8 $(@D)/fip/g12a/aml_ddr.fw \ + --ddrfw9 $(@D)/fip/g12a/lpddr3_1d.fw \ + --level v3 + + cp $(@D)/fip/u-boot.bin $(@D)/u-boot.sm1 +endef + else ifeq ($(BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_XU4),y) HARDKERNEL_BOOT_VERSION = 88af53fbcef8386cb4d5f04c19f4b2bcb69e90ca