[meta-ti] [PATCH] lego-ev3: Add support for LEGO Mindstorms EV3 (AM1808)
Jeremy Grosser
jeremy at synack.me
Mon Oct 15 20:19:02 PDT 2018
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"
+
+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 = ""
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() {
+ for dtbf in ${KERNEL_DEVICETREE}; do
+ dtb=`normalize_dtb "$dtbf"`
+ dtb_ext=${dtb##*.}
+ dtb_base_name=`basename $dtb .$dtb_ext`
+ install -d ${DEPLOYDIR}
+ 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
More information about the meta-ti
mailing list