[Buildroot] [PATCH 3/3] board/lego/ev3: Update to Linux kernel 4.19 and U-Boot 2018.11

David Lechner david at lechnology.com
Thu Dec 27 19:53:05 UTC 2018


This updates LEGO MINDSTORMS EV3 to Linux kernel 4.19 and U-Boot
2018.11. This kernel brings Bluetooth support, so some Bluez packages
are also added. Also, we now have proper device tree support, so a few
things are rearranged in the flash and SD card images since the DTB is
no longer appended to the kernel image.

Signed-off-by: David Lechner <david at lechnology.com>
---
 board/lego/ev3/genimage.cfg                   | 12 +++++--
 board/lego/ev3/linux.fragment                 |  6 ++++
 ...s-legoev3-increase-flash-image-sizes.patch | 31 -------------------
 board/lego/ev3/readme.txt                     | 17 ++++++++++
 configs/lego_ev3_defconfig                    | 19 +++++++-----
 5 files changed, 45 insertions(+), 40 deletions(-)
 delete mode 100644 board/lego/ev3/patches/uboot/configs-legoev3-increase-flash-image-sizes.patch

diff --git a/board/lego/ev3/genimage.cfg b/board/lego/ev3/genimage.cfg
index 65d9714650..14880e8f11 100644
--- a/board/lego/ev3/genimage.cfg
+++ b/board/lego/ev3/genimage.cfg
@@ -18,8 +18,13 @@ image flash.bin {
 		image = "u-boot.bin"
 		size = 256K
 	}
+	partition dtb {
+		image = "da850-lego-ev3.dtb"
+		size = 64K
+		offset = 0x40000
+	}
 	partition uimage {
-		image = "uImage.da850-lego-ev3"
+		image = "uImage"
 		size = 4M
 		offset = 0x50000
 	}
@@ -35,7 +40,10 @@ image flash.bin {
 image boot.vfat {
 	vfat {
 		file uImage {
-			image = "uImage.da850-lego-ev3"
+			image = "uImage"
+		}
+		file da850-lego-ev3.dtb {
+			image = "da850-lego-ev3.dtb"
 		}
 	}
 	size = 16M
diff --git a/board/lego/ev3/linux.fragment b/board/lego/ev3/linux.fragment
index 30dea57b6c..79efd27d37 100644
--- a/board/lego/ev3/linux.fragment
+++ b/board/lego/ev3/linux.fragment
@@ -1,3 +1,4 @@
+CONFIG_ARM_APPENDED_DTB=n
 CONFIG_ARCH_DAVINCI_DM644x=n
 CONFIG_ARCH_DAVINCI_DM355=n
 CONFIG_ARCH_DAVINCI_DM646x=n
@@ -60,3 +61,8 @@ CONFIG_DRM_DUMB_VGA_DAC=n
 CONFIG_DRM_TINYDRM=y
 CONFIG_TINYDRM_ST7586=y
 CONFIG_FB_DA8XX=n
+CONFIG_COMMON_CLK_PWM=y
+CONFIG_BT=y
+CONFIG_BT_HS=n
+CONFIG_BT_LE=n
+CONFIG_RFKILL=y
diff --git a/board/lego/ev3/patches/uboot/configs-legoev3-increase-flash-image-sizes.patch b/board/lego/ev3/patches/uboot/configs-legoev3-increase-flash-image-sizes.patch
deleted file mode 100644
index ee0ce61603..0000000000
--- a/board/lego/ev3/patches/uboot/configs-legoev3-increase-flash-image-sizes.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From cdd8d11858fa34f6e813fae46b5556e9fb3570dc Mon Sep 17 00:00:00 2001
-From: David Lechner <david at lechnology.com>
-Date: Sun, 19 Nov 2017 19:54:32 -0600
-Subject: [PATCH] configs: legoev3: increase flash image sizes
-
-This increases the kernel image to 4M and the rootfs image to 10M.
-
-It is getting hard to get a kernel image to fit in 3M and the rootfs image
-size now matches the filesyssize variable.
-
-Signed-off-by: David Lechner <david at lechnology.com>
----
- include/configs/legoev3.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/configs/legoev3.h b/include/configs/legoev3.h
-index 79fa3c4..2eeaf85 100644
---- a/include/configs/legoev3.h
-+++ b/include/configs/legoev3.h
-@@ -204,7 +204,7 @@
- 	"mmcargs=setenv bootargs mem=${memsize} console=${console} root=/dev/mmcblk0p2 rw rootwait lpj=747520\0" \
- 	"mmcboot=bootm ${loadaddr}\0" \
- 	"flashargs=setenv bootargs mem=${memsize} initrd=${filesysaddr},${filesyssize} root=/dev/ram0 rw rootfstype=squashfs console=${console} lpj=747520\0" \
--	"flashboot=sf probe 0; sf read ${loadaddr} 0x50000 0x300000; sf read ${filesysaddr} 0x350000 0x960000; bootm ${loadaddr}\0" \
-+	"flashboot=sf probe 0; sf read ${loadaddr} 0x50000 0x400000; sf read ${filesysaddr} 0x450000 0xA00000; bootm ${loadaddr}\0" \
- 	"loadimage=fatload mmc 0 ${loadaddr} uImage\0" \
- 	"loadbootscr=fatload mmc 0 ${bootscraddr} boot.scr\0" \
- 	"bootscript=source ${bootscraddr}\0" \
--- 
-2.7.4
-
diff --git a/board/lego/ev3/readme.txt b/board/lego/ev3/readme.txt
index 8df91ac111..648bca1e91 100644
--- a/board/lego/ev3/readme.txt
+++ b/board/lego/ev3/readme.txt
@@ -70,6 +70,13 @@ official Lego Mindstorms EV3 programming software firmware update tool to load
 the image. To use sdcard.img, use a disk writing tool such as Etcher or dd to
 write the image to the µSD card.
 
+NOTE: The sdcard.img created by lego_ev3_defconfig won't boot if the official
+LEGO firmware is installed on the EV3 (it has an old version of U-Boot that
+doesn't know about device tree). You must either set the kernel configuration
+option to append the device tree to the kernel or you can create a boot.scr
+that chainloads a newer U-Boot or you can install a newer U-Boot in the flash
+memory (just flashing u-boot.bin is enough).
+
 Finish
 ======
 
@@ -80,3 +87,13 @@ See:
 - http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/
 
 The serial port config to use is 115200/8-N-1.
+
+Bluetooth
+=========
+
+To enable Bluetooth:
+
+    # modprobe hci_uart
+    # /usr/libexec/bluetooth/bluetoothd &
+    # bluetoothctl
+    [bluetooth]# power on
diff --git a/configs/lego_ev3_defconfig b/configs/lego_ev3_defconfig
index 0281924133..cf2809059e 100644
--- a/configs/lego_ev3_defconfig
+++ b/configs/lego_ev3_defconfig
@@ -2,28 +2,33 @@
 BR2_arm=y
 BR2_arm926t=y
 
-# Build options
-BR2_GLOBAL_PATCH_DIR="board/lego/ev3/patches"
+# Toolchain
+BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
 
 # system
 BR2_TARGET_GENERIC_GETTY=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/lego/ev3/post-image.sh"
-# Linux headers same as kernel, a 4.14 series
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y
+# Linux headers same as kernel, a 4.19 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
 
 # Kernel
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19"
 BR2_LINUX_KERNEL_DEFCONFIG="davinci_all"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/lego/ev3/linux.fragment"
+BR2_LINUX_KERNEL_UIMAGE=y
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0xc0008000"
-BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="da850-lego-ev3"
 
 # Target packages
 BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/lego/ev3/busybox.fragment"
+BR2_PACKAGE_BLUEZ5_UTILS=y
+BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560=y
 
 # filesystem
 BR2_TARGET_ROOTFS_EXT2=y
@@ -36,7 +41,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.11"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="legoev3"
 
 # host
-- 
2.17.1




More information about the buildroot mailing list