[meta-ti] [PATCH] lego-ev3: Add support for LEGO Mindstorms EV3 (AM1808)

Denys Dmytriyenko denys at ti.com
Wed Oct 17 16:12:03 PDT 2018


Thanks! Looks very intersting. Please see comments inline.


On Mon, Oct 15, 2018 at 08:19:02PM -0700, Jeremy Grosser wrote:
> Signed-off-by: Jeremy Grosser <jeremy at synack.me>
> ---
>  conf/machine/lego-ev3.conf                    | 21 ++++++++++++++++
>  recipes-bsp/u-boot/u-boot-ti.inc              |  2 ++
>  recipes-kernel/linux/bundle-devicetree.inc    | 24 +++++++++++++++++++
>  recipes-kernel/linux/linux-ti-staging_4.14.bb |  1 +
>  4 files changed, 48 insertions(+)
>  create mode 100644 conf/machine/lego-ev3.conf
>  create mode 100644 recipes-kernel/linux/bundle-devicetree.inc
> 
> diff --git a/conf/machine/lego-ev3.conf b/conf/machine/lego-ev3.conf
> new file mode 100644
> index 00000000..18626001
> --- /dev/null
> +++ b/conf/machine/lego-ev3.conf
> @@ -0,0 +1,21 @@
> +#@TYPE: Machine
> +#@NAME: LEGO Mindstorms EV3
> +#@DESCRIPTION: Machine configuration for the LEGO Mindstorms EV3
> +
> +require conf/machine/include/davinci.inc
> +require conf/machine/include/omapl138.inc
> +
> +UBOOT_MACHINE = "legoev3_config"
> +UBOOT_SUFFIX = "bin"
> +UBOOT_ENTRYPOINT = "0xC0008000"
> +UBOOT_LOADADDRESS = "0xC0008000"
> +
> +KERNEL_DEVICETREE = "da850-lego-ev3.dtb"
> +KERNEL_IMAGETYPES = "uImage"
> +KERNEL_DEVICETREE_BUNDLE = "1"
> +SERIAL_CONSOLE ?= "115200 ttyS1"

Can you please rebase with recent changes to deprecate SERIAL_CONSOLE.


> +
> +IMAGE_FSTYPES += " wic"
> +WKS_FILE = "sdimage-bootpart.wks"
> +WIC_CREATE_EXTRA_ARGS += " --no-fstab-update"
> +IMAGE_BOOT_FILES = "${KERNEL_IMAGETYPES}"
> diff --git a/recipes-bsp/u-boot/u-boot-ti.inc b/recipes-bsp/u-boot/u-boot-ti.inc
> index f22fcb4d..aba5e90c 100644
> --- a/recipes-bsp/u-boot/u-boot-ti.inc
> +++ b/recipes-bsp/u-boot/u-boot-ti.inc
> @@ -57,12 +57,14 @@ SPL_BINARY_k2hk-hs-evm = ""
>  SPL_BINARY_k2g-hs-evm = ""
>  SPL_BINARY_k2l-hs-evm = ""
>  SPL_BINARY_omapl138 = ""
> +SPL_BINARY_lego-ev3 = ""

Sorry, this has also just changed, please move to machine config.


>  SPL_BINARY_k3 = "tispl.bin"
> 
>  # SPL (Second Program Loader) to be loaded over UART
>  SPL_UART_BINARY = "u-boot-spl.bin"
>  SPL_UART_BINARY_keystone = ""
>  SPL_UART_BINARY_k3 = ""
> +SPL_UART_BINARY_lego-ev3 = ""
> 
>  SPL_UART_IMAGE ?= "${SPL_UART_BINARY}-${MACHINE}-${PV}-${PR}"
>  SPL_UART_SYMLINK ?= "${SPL_UART_BINARY}-${MACHINE}"
> diff --git a/recipes-kernel/linux/bundle-devicetree.inc
> b/recipes-kernel/linux/bundle-devicetree.inc
> new file mode 100644
> index 00000000..ce159878
> --- /dev/null
> +++ b/recipes-kernel/linux/bundle-devicetree.inc
> @@ -0,0 +1,24 @@
> +# Upstream kernel-devicetree.bbclass only supports bundling the DTB with
> +# zImage. The factory u-boot on lego-ev3 EEPROM only supports uImage, so we
> +# append the DTB to the final uImage here.
> +
> +do_deploy_append() {

Can you check for KERNEL_DEVICETREE_BUNDLE being set right away here, so 
normally it won't even go into all the loops inside.


> +    for dtbf in ${KERNEL_DEVICETREE}; do
> +        dtb=`normalize_dtb "$dtbf"`
> +        dtb_ext=${dtb##*.}
> +        dtb_base_name=`basename $dtb .$dtb_ext`
> +        install -d ${DEPLOYDIR}

For all the DTBs listed (and some platforms have tens of them!) you'd be 
creating DEPLOYDIR over and over again...


> +        for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
> +            if [ "$type" = "uImage" ] && [
> "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
> +                cat ${D}/${KERNEL_IMAGEDEST}/$type \
> +                    ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
> +                    >
> ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
> +                ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
> +
> ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
> +                cat ${D}/${KERNEL_IMAGEDEST}/$type \
> +                    ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
> +                    > ${DEPLOYDIR}/$type
> +            fi
> +        done
> +    done
> +}
> diff --git a/recipes-kernel/linux/linux-ti-staging_4.14.bb
> b/recipes-kernel/linux/linux-ti-staging_4.14.bb
> index 5ee206ec..13b94ffe 100644
> --- a/recipes-kernel/linux/linux-ti-staging_4.14.bb
> +++ b/recipes-kernel/linux/linux-ti-staging_4.14.bb
> @@ -8,6 +8,7 @@ inherit kernel
>  require recipes-kernel/linux/setup-defconfig.inc
>  require recipes-kernel/linux/cmem.inc
>  require recipes-kernel/linux/ti-uio.inc
> +require recipes-kernel/linux/bundle-devicetree.inc
> 
>  # Look in the generic major.minor directory for files
>  FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-4.14:"
> --
> 2.19.1
> -- 
> _______________________________________________
> meta-ti mailing list
> meta-ti at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti


More information about the meta-ti mailing list