Patchwork [meta-fsl-arm-extra] gk802: Add initial support

login
register
mail settings
Submitter Matthias Benesch
Date Aug. 3, 2013, 11:04 p.m.
Message ID <1375571040.20080.6.camel@bDesk.lan>
Download mbox | patch
Permalink /patch/55053/
State Changes Requested
Delegated to: Otavio Salvador
Headers show

Comments

Matthias Benesch - Aug. 3, 2013, 11:04 p.m.
On Wed, 2013-07-31 at 20:47 +0400, Dmitriy B. wrote:
> Hi Matthias,
> 
> 
> Some time ago me and guys interested in GK802 started the imx6-dongle
> project - https://github.com/imx6-dongle You probably using kernel
> from there.
> It kinda stuck right now because the wave of interest in GK802 already
> passed and guys with skills already done everything with it and lost
> interest. If you want to have access to imx6-dongle repos - I can add
> you, or merge your pull requests.
> There a couple of things left to do - for example - port our hardware
> support to 4.0.0 BSP or to 3.5.7 kernel in future.
> 
> 
> Same also can be applied to anyone who wants to work on GK802 - you
> are welcome.
> 
> 
> Best Regards
> Dmitriy Beykun
> 
> 
> 2013/7/31 Matthias Benesch <twoof7@freenet.de>
>         On Tue, 2013-07-30 at 13:39 -0300, Daiane Angolini wrote:
>         > On 07/30/2013 05:00 AM, Matthias Benesch wrote:
>         > > Hello,
>         > > I would like to commit support for Zealz GK802 Freescale
>         i.MX6 Quad Core
>         > > device.
>         > > The work is based on the information from
>         > > https://github.com/imx6-dongle/wiki/wiki
>         > >
>         > > Unfortunately it is not complete yet. U-Boot is working
>         and the device
>         > > will load the kernel uImage from first fat partition. With
>         the attached
>         > > "ubootcmd" file copied to the first fat partition of your
>         micro-sd card,
>         > > the kernel will start completely, but will fail to init
>         systemd (see
>         > > attached "gk802-boot.log" file).
>         > >
>         > > I already tried several bootargs configuration via the
>         ubootcmd file, up
>         > > to following bootargs config without any further success:
>         > >
>         > > setenv bootargs 'console=ttymxc3,115200 consoleblank=0
>         > > root=/dev/mmcblk0p2 rootfstype=ext3
>         init=/lib/systemd/systemd rootwait
>         > > rw video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24'
>         > >
>         > > I hope for the communitie's support to be able to finalize
>         this work and
>         > > get the GK802 supported within Yocto.
>         >
>         > Would it be "the classic DEVTMPS" problem?
>         >
>         > Please, check if it's enabled on your kernel
>         > CONFIG_DEVTMPFS=y
>         > CONFIG_DEVTMPFS_MOUNT=y
>         >
>         
>         
>         The DEVTMPFS did it. Now it is starting including systemd ;-).
>         
>         I can remember that I saw this issue within one of the forum
>         discussions
>         before.
>         
>         I will update the patch accordingly.
>         
>         Matthias
>         
>         
>         _______________________________________________
>         meta-freescale mailing list
>         meta-freescale@yoctoproject.org
>         https://lists.yoctoproject.org/listinfo/meta-freescale
>         
> 

I added the DEVTMPFS configuration to the gk802 defconfig and fixed some
issues within uboot config file gk802.h. The gk802 is now booting.

Attached the respective patch.

@Otavio: How do we proceed with the awaiting u-boot upstream for gk802?

Matthias
Otavio Salvador - Aug. 4, 2013, 7:01 p.m.
On Sat, Aug 3, 2013 at 8:04 PM, Matthias Benesch <twoof7@freenet.de> wrote:
> I added the DEVTMPFS configuration to the gk802 defconfig and fixed some
> issues within uboot config file gk802.h. The gk802 is now booting.
>
> Attached the respective patch.
>
> @Otavio: How do we proceed with the awaiting u-boot upstream for gk802?

Ok; let's work to get it merged here in meanwhile.

I did a fast review in the attached file and I have following remarks:

 - please send patches using git send-email (as it easy review);
 - split the patches (u-boot, kernel, machine);
 - add a defconfig file to easy user customization (pass it on
savedefconfig make target);

After rework the patch, please send the three patches to mailing list
and we review them again.

Good work. :-)

Patch

From 5b07f7d32f2457cb5293fb22d4f37243957f0c35 Mon Sep 17 00:00:00 2001
From: Matthias Benesch <twoof7@freenet.de>
Date: Sat, 3 Aug 2013 15:51:05 -0700
Subject: [meta-fsl-arm-extra][PATCH] gk802: Add initial support

Signed-off-by: Matthias Benesch <twoof7@freenet.de>
---
 conf/machine/gk802.conf                            | 19 ++++++++++
 ...hange-default-environment-to-work-with-OE.patch | 41 ++++++++++++++++++++
 recipes-bsp/u-boot/u-boot-imx6dongle_git.bb        | 16 ++++++++
 ...nfig-Enable-DEVTMPFS-EXT2-and-EXT3-suppor.patch | 44 ++++++++++++++++++++++
 recipes-kernel/linux/linux-imx6dongle_3.0.35.bb    | 34 +++++++++++++++++
 5 files changed, 154 insertions(+)
 create mode 100644 conf/machine/gk802.conf
 create mode 100644 recipes-bsp/u-boot/u-boot-imx6dongle/0001-gk802-Change-default-environment-to-work-with-OE.patch
 create mode 100644 recipes-bsp/u-boot/u-boot-imx6dongle_git.bb
 create mode 100644 recipes-kernel/linux/linux-imx6dongle-3.0.35/0001-gk802-defconfig-Enable-DEVTMPFS-EXT2-and-EXT3-suppor.patch
 create mode 100644 recipes-kernel/linux/linux-imx6dongle_3.0.35.bb

diff --git a/conf/machine/gk802.conf b/conf/machine/gk802.conf
new file mode 100644
index 0000000..14ff01e
--- /dev/null
+++ b/conf/machine/gk802.conf
@@ -0,0 +1,19 @@ 
+#@TYPE: Machine
+#@NAME: Zealz GK802
+#@SOC: i.MX6Q
+#@DESCRIPTION: Machine configuration for Zealz GK802
+
+include conf/machine/include/imx-base.inc
+include conf/machine/include/tune-cortexa9.inc
+
+SOC_FAMILY = "mx6:mx6q"
+
+PREFERRED_PROVIDER_u-boot = "u-boot-imx6dongle"
+PREFERRED_PROVIDER_virtual/kernel = "linux-imx6dongle"
+
+UBOOT_MACHINE = "gk802_config"
+
+SERIAL_CONSOLE = "115200 ttymxc3"
+
+MACHINE_FEATURES += " pci wifi bluetooth"
+
diff --git a/recipes-bsp/u-boot/u-boot-imx6dongle/0001-gk802-Change-default-environment-to-work-with-OE.patch b/recipes-bsp/u-boot/u-boot-imx6dongle/0001-gk802-Change-default-environment-to-work-with-OE.patch
new file mode 100644
index 0000000..6e1779d
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-imx6dongle/0001-gk802-Change-default-environment-to-work-with-OE.patch
@@ -0,0 +1,41 @@ 
+From 2983c330eaf49a9d6f8cba9379c4c9ba4b92e4df Mon Sep 17 00:00:00 2001
+From: Matthias Benesch <twoof7@freenet.de>
+Date: Sat, 3 Aug 2013 15:28:32 -0700
+Subject: [PATCH] gk802: Change default environment to work with OE
+
+Signed-off-by: Matthias Benesch <twoof7@freenet.de>
+---
+ include/configs/gk802.h | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/include/configs/gk802.h b/include/configs/gk802.h
+index a84f16b..b7bc8ee 100644
+--- a/include/configs/gk802.h
++++ b/include/configs/gk802.h
+@@ -109,14 +109,20 @@
+ 
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+ 	"script=boot.scr\0" \
+-	"uimage=/boot/uImage\0" \
++	"uimage=uImage\0" \
+ 	"console=" CONFIG_CONSOLE_DEV "\0" \
++	"mmcpart=1\0" \
++	"mmcroot=/dev/mmcblk0p2 rw\0" \
++	"mmcrootfstype=ext3 rootwait\0" \
++	"mmcargs=setenv bootargs ${bootargs} console=${console},${baudrate} " \
++		"root=${mmcroot} " \
++		"rootfstype=${mmcrootfstype}\0" \
+ 	"fdt_high=0xffffffff\0"	  \
+ 	"initrd_high=0xffffffff\0" \
+     "boot_recovery=setenv bootsuffix _recovery; setenv mmcdev 1; run try_boot; setenv mmcdev 0; run try_boot; run boot_normal\0" \
+     "boot_normal=  setenv bootsuffix ''; setenv mmcdev 1; run try_boot; setenv mmcdev 0; run try_boot\0" \
+-    "try_boot=if ext2load mmc ${mmcdev} ${loadaddr} /boot/ubootcmd${bootsuffix}; then source; fi;" \
+-    "         if ext2load mmc ${mmcdev} ${loadaddr} /boot/uImage${bootsuffix}; then bootm; fi;\0"
++    "try_boot=if fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script}${bootsuffix}; then source; fi;" \
++    "         if fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}${bootsuffix}; then run mmcargs; bootm; fi;\0"
+ 
+ 
+ 
+-- 
+1.8.3.4
+
diff --git a/recipes-bsp/u-boot/u-boot-imx6dongle_git.bb b/recipes-bsp/u-boot/u-boot-imx6dongle_git.bb
new file mode 100644
index 0000000..f4780fc
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-imx6dongle_git.bb
@@ -0,0 +1,16 @@ 
+require recipes-bsp/u-boot/u-boot.inc
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb"
+COMPATIBLE_MACHINE = "(gk802)"
+
+PROVIDES = "u-boot"
+
+SRCREV = "7a2d0586f5c3bc07dae8cc87f12c95118a02a7a5"
+SRC_URI = "git://github.com/imx6-dongle/uboot-imx6dongle.git \
+           file://0001-gk802-Change-default-environment-to-work-with-OE.patch \
+"
+
+S = "${WORKDIR}/git"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-kernel/linux/linux-imx6dongle-3.0.35/0001-gk802-defconfig-Enable-DEVTMPFS-EXT2-and-EXT3-suppor.patch b/recipes-kernel/linux/linux-imx6dongle-3.0.35/0001-gk802-defconfig-Enable-DEVTMPFS-EXT2-and-EXT3-suppor.patch
new file mode 100644
index 0000000..5ed4de2
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx6dongle-3.0.35/0001-gk802-defconfig-Enable-DEVTMPFS-EXT2-and-EXT3-suppor.patch
@@ -0,0 +1,44 @@ 
+From e0e5d663137576b1b7f46e41e403f0496d6ec2a5 Mon Sep 17 00:00:00 2001
+From: Matthias Benesch <twoof7@freenet.de>
+Date: Fri, 2 Aug 2013 00:41:35 -0700
+Subject: [PATCH] gk802 defconfig: Enable DEVTMPFS, EXT2 and EXT3 support
+
+Signed-off-by: Matthias Benesch <twoof7@freenet.de>
+---
+ arch/arm/configs/imx6_gk802_defconfig | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/configs/imx6_gk802_defconfig b/arch/arm/configs/imx6_gk802_defconfig
+index da72294..f3de0fb 100644
+--- a/arch/arm/configs/imx6_gk802_defconfig
++++ b/arch/arm/configs/imx6_gk802_defconfig
+@@ -686,7 +686,8 @@ CONFIG_RFKILL_INPUT=y
+ # Generic Driver Options
+ #
+ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+-# CONFIG_DEVTMPFS is not set
++CONFIG_DEVTMPFS=y
++CONFIG_DEVTMPFS_MOUNT=y
+ CONFIG_STANDALONE=y
+ CONFIG_PREVENT_FIRMWARE_BUILD=y
+ CONFIG_FW_LOADER=y
+@@ -2432,8 +2433,14 @@ CONFIG_MXC_MIPI_CSI2=m
+ #
+ # File systems
+ #
+-# CONFIG_EXT2_FS is not set
+-# CONFIG_EXT3_FS is not set
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
+ CONFIG_EXT4_FS=y
+ CONFIG_EXT4_USE_FOR_EXT23=y
+ CONFIG_EXT4_FS_XATTR=y
+-- 
+1.8.3.4
+
diff --git a/recipes-kernel/linux/linux-imx6dongle_3.0.35.bb b/recipes-kernel/linux/linux-imx6dongle_3.0.35.bb
new file mode 100644
index 0000000..a934f0c
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx6dongle_3.0.35.bb
@@ -0,0 +1,34 @@ 
+# Adapted from linux-imx.inc, copyright (C) 2013 O.S. Systems Software LTDA
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require recipes-kernel/linux/linux-imx.inc
+
+DESCRIPTION = "Linux kernel for Zealz GK802"
+
+PR = "${INC_PR}.1"
+
+COMPATIBLE_MACHINE = "(mx6)"
+
+SRC_URI = "git://github.com/imx6-dongle/linux-imx.git;branch=imx_3.0.35_1.1.0-hdmidongle \
+           file://0001-gk802-defconfig-Enable-DEVTMPFS-EXT2-and-EXT3-suppor.patch \
+"
+
+SRCREV = "899792c5fa2f1fe6919366d5ccc4d33f419012bf"
+
+LOCALVERSION = "-imx6dongle+yocto"
+
+#KERNEL_DEFCONFIG = "imx6_hdmidongle_defconfig"
+KERNEL_DEFCONFIG = "imx6_gk802_defconfig"
+
+do_configure_prepend() {
+	cp ${S}/arch/arm/configs/${KERNEL_DEFCONFIG} ${S}/.config
+	cp ${S}/arch/arm/configs/${KERNEL_DEFCONFIG} ${S}/../defconfig
+
+	kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\""
+	kernel_conf_variable LOCALVERSION_AUTO y
+
+	# Add GIT revision to the local version
+	head=`git rev-parse --verify --short HEAD 2> /dev/null`
+	printf "%s%s" +g $head > ${S}/.scmversion
+}
+
-- 
1.8.3.4