#@TYPE: Machine
#@NAME: NXP i.MX6QP/Q/DL SABRE Automotive
#@SOC: i.MX6QP/Q/DL
#@DESCRIPTION: Machine configuration for NXP i.MX6QP/Q/DL SABRE Automotive
#@MAINTAINER: Daiane Angolini <daiane.angolini@nxp.com>
#
# This machine replaces the following machines:
#    * imx6qpsabreauto
#    * imx6qsabreauto
#    * imx6dlsabreauto
#    * imx6solosabreauto
# and is able to work for all the machines.

MACHINEOVERRIDES =. "mx6q:mx6dl:"

require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc

KERNEL_DEVICETREE = " \
    imx6qp-sabreauto.dtb imx6qp-sabreauto-ecspi.dtb imx6qp-sabreauto-flexcan1.dtb \
    imx6qp-sabreauto-gpmi-weim.dtb \
    \
    imx6q-sabreauto.dtb imx6q-sabreauto-gpmi-weim.dtb imx6q-sabreauto-ecspi.dtb \
    imx6q-sabreauto-flexcan1.dtb imx6q-sabreauto-enetirq.dtb \
    \
    imx6dl-sabreauto.dtb imx6dl-sabreauto-gpmi-weim.dtb imx6dl-sabreauto-ecspi.dtb \
    imx6dl-sabreauto-flexcan1.dtb imx6dl-sabreauto-enetirq.dtb \
"
KERNEL_DEVICETREE:use-mainline-bsp = " \
    imx6qp-sabreauto.dtb \
    imx6q-sabreauto.dtb \
    imx6dl-sabreauto.dtb \
"

### u-boot-fslc settings ###
SPL_BINARY:pn-u-boot-fslc = "SPL"
UBOOT_CONFIG:pn-u-boot-fslc ??= "sd"
UBOOT_SUFFIX:pn-u-boot-fslc = "img"

### u-boot-imx settings ###
SPL_BINARY:pn-u-boot-imx = ""
UBOOT_CONFIG:pn-u-boot-imx ??= " \
    sd \
    ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx = "imx"
UBOOT_MAKE_TARGET:pn-u-boot-imx-mfgtool = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx-mfgtool = "imx"

UBOOT_CONFIG[sd]       = "${UBOOT_CONFIG_MACHINE_NAME}_defconfig,sdcard"
UBOOT_CONFIG[sd-optee] = "${UBOOT_CONFIG_MACHINE_NAME}_optee_defconfig,sdcard"
UBOOT_CONFIG[eimnor]   = "${UBOOT_CONFIG_MACHINE_NAME}_eimnor_defconfig"
UBOOT_CONFIG[nand]     = "${UBOOT_CONFIG_MACHINE_NAME}_nand_defconfig,ubifs"
UBOOT_CONFIG[spinor]   = "${UBOOT_CONFIG_MACHINE_NAME}_spinor_defconfig"
UBOOT_CONFIG[sata]     = "${UBOOT_CONFIG_MACHINE_NAME}_sata_defconfig"
UBOOT_CONFIG[mfgtool]  = "${UBOOT_CONFIG_MACHINE_NAME}_defconfig"

# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
# variants. Change the defconfig to the targeted SoC variant.
UBOOT_CONFIG_MACHINE_NAME                       = "mx6sabreauto"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx         = "mx6qpsabreauto"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx-mfgtool = "mx6qpsabreauto"

WKS_FILE = " \
    ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
                         'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \
                                        'imx-uboot-bootpart.wks.in', d)}"

OPTEE_BIN_EXT = "6qpauto"

SERIAL_CONSOLES = "115200;ttymxc3"

MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"

MACHINE_FEATURES += " pci wifi bluetooth nxp8987-sdio"
