#@TYPE: Machine
#@NAME: NXP i.MX6QP/Q/DL SABRE Smart Device
#@SOC: i.MX6QP/Q/DL
#@DESCRIPTION: Machine configuration for NXP i.MX6QP/Q/DL SABRE Smart Device
#@MAINTAINER: Otavio Salvador <otavio@ossystems.com.br>
#
# This machine replaces the following machines:
#    * imx6qpsabresd
#    * imx6qsabresd
#    * imx6dlsabresd
#    * imx6solosabresd
# 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-sabresd-btwifi.dtb \
	imx6qp-sabresd.dtb \
	imx6qp-sabresd-hdcp.dtb \
	imx6qp-sabresd-ldo.dtb \
	\
	imx6q-sabresd-btwifi.dtb \
	imx6q-sabresd.dtb \
	imx6q-sabresd-enetirq.dtb \
	imx6q-sabresd-hdcp.dtb \
	imx6q-sabresd-ldo.dtb \
	imx6q-sabresd-uart.dtb \
	\
	imx6dl-sabresd-btwifi.dtb \
	imx6dl-sabresd.dtb \
	imx6dl-sabresd-enetirq.dtb \
	imx6dl-sabresd-hdcp.dtb \
	imx6dl-sabresd-ldo.dtb \
"
KERNEL_DEVICETREE:use-mainline-bsp = " \
    imx6qp-sabresd.dtb \
    imx6q-sabresd.dtb \
    imx6dl-sabresd.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[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                       = "mx6sabresd"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx         = "mx6qsabresd"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx-mfgtool = "mx6qsabresd"

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 = "6qsdb"

SERIAL_CONSOLES = "115200;ttymxc0"

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

MACHINE_FEATURES += " pci wifi bluetooth nxp8987-sdio"
