configs/lego_ev3: update to Linux kernel 4.19 and U-Boot 2018.11

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@lechnology.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
David Lechner 2018-12-27 13:53:05 -06:00 committed by Thomas Petazzoni
parent b2e5014af5
commit f816a35b18
5 changed files with 45 additions and 40 deletions

View File

@ -18,8 +18,13 @@ image flash.bin {
image = "u-boot.bin" image = "u-boot.bin"
size = 256K size = 256K
} }
partition dtb {
image = "da850-lego-ev3.dtb"
size = 64K
offset = 0x40000
}
partition uimage { partition uimage {
image = "uImage.da850-lego-ev3" image = "uImage"
size = 4M size = 4M
offset = 0x50000 offset = 0x50000
} }
@ -35,7 +40,10 @@ image flash.bin {
image boot.vfat { image boot.vfat {
vfat { vfat {
file uImage { file uImage {
image = "uImage.da850-lego-ev3" image = "uImage"
}
file da850-lego-ev3.dtb {
image = "da850-lego-ev3.dtb"
} }
} }
size = 16M size = 16M

View File

@ -1,3 +1,4 @@
CONFIG_ARM_APPENDED_DTB=n
CONFIG_ARCH_DAVINCI_DM644x=n CONFIG_ARCH_DAVINCI_DM644x=n
CONFIG_ARCH_DAVINCI_DM355=n CONFIG_ARCH_DAVINCI_DM355=n
CONFIG_ARCH_DAVINCI_DM646x=n CONFIG_ARCH_DAVINCI_DM646x=n
@ -60,3 +61,8 @@ CONFIG_DRM_DUMB_VGA_DAC=n
CONFIG_DRM_TINYDRM=y CONFIG_DRM_TINYDRM=y
CONFIG_TINYDRM_ST7586=y CONFIG_TINYDRM_ST7586=y
CONFIG_FB_DA8XX=n CONFIG_FB_DA8XX=n
CONFIG_COMMON_CLK_PWM=y
CONFIG_BT=y
CONFIG_BT_HS=n
CONFIG_BT_LE=n
CONFIG_RFKILL=y

View File

@ -1,31 +0,0 @@
From cdd8d11858fa34f6e813fae46b5556e9fb3570dc Mon Sep 17 00:00:00 2001
From: David Lechner <david@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@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

View File

@ -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 the image. To use sdcard.img, use a disk writing tool such as Etcher or dd to
write the image to the µSD card. 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 Finish
====== ======
@ -80,3 +87,13 @@ See:
- http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/ - http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/
The serial port config to use is 115200/8-N-1. 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

View File

@ -2,28 +2,33 @@
BR2_arm=y BR2_arm=y
BR2_arm926t=y BR2_arm926t=y
# Build options # Toolchain
BR2_GLOBAL_PATCH_DIR="board/lego/ev3/patches" BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
# system # system
BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/lego/ev3/post-image.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/lego/ev3/post-image.sh"
# Linux headers same as kernel, a 4.14 series # Linux headers same as kernel, a 4.19 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
# Kernel # Kernel
BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=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_DEFCONFIG="davinci_all"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/lego/ev3/linux.fragment" 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_UIMAGE_LOADADDR="0xc0008000"
BR2_LINUX_KERNEL_APPENDED_UIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="da850-lego-ev3" BR2_LINUX_KERNEL_INTREE_DTS_NAME="da850-lego-ev3"
# Target packages # Target packages
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/lego/ev3/busybox.fragment" 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 # filesystem
BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2=y
@ -36,7 +41,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=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" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="legoev3"
# host # host