Patchwork [meta-fsl-arm,v2] linux-imx-rt: Add initial recipe

login
register
mail settings
Submitter Jacob Kroon
Date March 27, 2014, 8:32 p.m.
Message ID <1395952323-18664-1-git-send-email-jacob.kroon@mikrodidakt.se>
Download mbox | patch
Permalink /patch/69477/
State Accepted
Delegated to: Otavio Salvador
Headers show

Comments

Jacob Kroon - March 27, 2014, 8:32 p.m.
Add initial support for 3.10.17-1.0.0 beta with 3.10.17-rt12 real-time patch.

Changes in v2:
 - Improve commit message
 - Add 'Upstream-Status' tags in patches
 - Add SUMMARY/DESCRIPTION

Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
---
 .../linux-imx-rt-3.10.17/0001-fix-build.patch      | 139 +++++++++
 .../0002-fix-build-with-rt-enabled.patch           | 111 +++++++
 .../0003-no-split-ptlocks.patch                    |  84 ++++++
 .../linux/linux-imx-rt-3.10.17/mx6/defconfig       | 332 +++++++++++++++++++++
 recipes-kernel/linux/linux-imx-rt_3.10.17.bb       |  26 ++
 5 files changed, 692 insertions(+)
 create mode 100644 recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch
 create mode 100644 recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch
 create mode 100644 recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch
 create mode 100644 recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig
 create mode 100644 recipes-kernel/linux/linux-imx-rt_3.10.17.bb
Daiane Angolini - March 28, 2014, 11:27 a.m.
On Thu, Mar 27, 2014 at 5:32 PM, Jacob Kroon <jacob.kroon@mikrodidakt.se> wrote:
> Add initial support for 3.10.17-1.0.0 beta with 3.10.17-rt12 real-time patch.
>
> Changes in v2:
>  - Improve commit message
>  - Add 'Upstream-Status' tags in patches
>  - Add SUMMARY/DESCRIPTION

Thanks a lot for SUMMARY/DESCRIPTION ^.^

Only think I would comment on that, and I'm not sure if it makes
sense, is to point where the RT patches come from.

I added this to my test queue, my plan is to test only boot on
imx6qsabresd. However, I don't think the merge depends on my test ;)

Daiane
Otavio Salvador - March 28, 2014, 4:28 p.m.
Hello Daiane,
Hello Jacob,

On Fri, Mar 28, 2014 at 8:27 AM, Daiane Angolini <daiane.list@gmail.com> wrote:
> On Thu, Mar 27, 2014 at 5:32 PM, Jacob Kroon <jacob.kroon@mikrodidakt.se> wrote:
>> Add initial support for 3.10.17-1.0.0 beta with 3.10.17-rt12 real-time patch.
>>
>> Changes in v2:
>>  - Improve commit message
>>  - Add 'Upstream-Status' tags in patches
>>  - Add SUMMARY/DESCRIPTION
>
> Thanks a lot for SUMMARY/DESCRIPTION ^.^
>
> Only think I would comment on that, and I'm not sure if it makes
> sense, is to point where the RT patches come from.
>
> I added this to my test queue, my plan is to test only boot on
> imx6qsabresd. However, I don't think the merge depends on my test ;)

This is queued for my next push.
Daiane Angolini - April 8, 2014, 5:43 p.m.
Hi Jacob,

I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
core-image-base and I faced some kernel errors during the boot.
What did you change in the default poky configuration in order to work
with linux-imx-rt?


The uname I see is 3.10.17-rt12-rt-1.0.0_beta+gec1af9f
I think the second "rt" could be dropped, what do you think?


Thanks in advance,
Daiane
Fabio Estevam - April 8, 2014, 5:46 p.m.
On Tue, Apr 8, 2014 at 2:43 PM, Daiane Angolini <daiane.list@gmail.com> wrote:
> Hi Jacob,
>
> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
> core-image-base and I faced some kernel errors during the boot.

It would be helpful if you could post the error logs.
Daiane Angolini - April 8, 2014, 5:50 p.m.
On Tue, Apr 8, 2014 at 2:46 PM, Fabio Estevam <festevam@gmail.com> wrote:
> On Tue, Apr 8, 2014 at 2:43 PM, Daiane Angolini <daiane.list@gmail.com> wrote:
>> Hi Jacob,
>>
>> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
>> core-image-base and I faced some kernel errors during the boot.
>
> It would be helpful if you could post the error logs.

Sure, http://pastebin.com/ZyaXCeUm



Daiane
Jacob Kroon - April 9, 2014, 7:21 a.m.
Hi Daiane,

On Tue, Apr 8, 2014 at 7:43 PM, Daiane Angolini <daiane.list@gmail.com>wrote:

>
> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
> core-image-base and I faced some kernel errors during the boot.
> What did you change in the default poky configuration in order to work
> with linux-imx-rt?
>
>
I haven't seen these errors myself on my imx6qsabresd board, although I'm
using bare OE-core and Bitbake and a custom distro file.
I'll try building the default core-image-base from poky and see if I can
reproduce it.


> The uname I see is 3.10.17-rt12-rt-1.0.0_beta+gec1af9f
> I think the second "rt" could be dropped, what do you think?
>
>
I agree, I can send a patch to the ml that drops the extra "rt".

Although, currently it seems my mail-server is blocked from
yoctoproject.org...

/Jacob
Daiane Angolini - April 9, 2014, 1:07 p.m.
On Wed, Apr 9, 2014 at 4:21 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
> Hi Daiane,
>
> On Tue, Apr 8, 2014 at 7:43 PM, Daiane Angolini <daiane.list@gmail.com>
> wrote:
>>
>>
>> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
>> core-image-base and I faced some kernel errors during the boot.
>> What did you change in the default poky configuration in order to work
>> with linux-imx-rt?
>>
>
> I haven't seen these errors myself on my imx6qsabresd board, although I'm
> using bare OE-core and Bitbake and a custom distro file.
> I'll try building the default core-image-base from poky and see if I can
> reproduce it.

Thanks a lot.

I really think it's a configuration matter and I'm not surprised to
know you're using your custom distro ;)

It should be regarding the default/custom rootfs initialization
approach. I wouldn't say it's a kernel problem before understanding
exactly what is needed for this kernel uploading.

>
>>
>> The uname I see is 3.10.17-rt12-rt-1.0.0_beta+gec1af9f
>> I think the second "rt" could be dropped, what do you think?
>>
>
> I agree, I can send a patch to the ml that drops the extra "rt".
>
> Although, currently it seems my mail-server is blocked from
> yoctoproject.org...

Otavio, can you take a look on this when you're available?


Daiane
Otavio Salvador - April 18, 2014, 10:11 p.m.
Hello,

On Wed, Apr 9, 2014 at 10:07 AM, Daiane Angolini <daiane.list@gmail.com> wrote:
> On Wed, Apr 9, 2014 at 4:21 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
>> Hi Daiane,
>>
>> On Tue, Apr 8, 2014 at 7:43 PM, Daiane Angolini <daiane.list@gmail.com>
>> wrote:
>>>
>>>
>>> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
>>> core-image-base and I faced some kernel errors during the boot.
>>> What did you change in the default poky configuration in order to work
>>> with linux-imx-rt?
>>>
>>
>> I haven't seen these errors myself on my imx6qsabresd board, although I'm
>> using bare OE-core and Bitbake and a custom distro file.
>> I'll try building the default core-image-base from poky and see if I can
>> reproduce it.
>
> Thanks a lot.
>
> I really think it's a configuration matter and I'm not surprised to
> know you're using your custom distro ;)
>
> It should be regarding the default/custom rootfs initialization
> approach. I wouldn't say it's a kernel problem before understanding
> exactly what is needed for this kernel uploading.
>

Has been this sorted out?

>>> The uname I see is 3.10.17-rt12-rt-1.0.0_beta+gec1af9f
>>> I think the second "rt" could be dropped, what do you think?
>>>
>>
>> I agree, I can send a patch to the ml that drops the extra "rt".
>>
>> Although, currently it seems my mail-server is blocked from
>> yoctoproject.org...
>
> Otavio, can you take a look on this when you're available?

I don't think so. Jacob, did you receive any rejects? If so please
forward it to me so I can ask the YP Admins to look at it.
Jacob Kroon - April 19, 2014, 1:31 a.m.
Hi,

On Sat, Apr 19, 2014 at 12:11 AM, Otavio Salvador
<otavio@ossystems.com.br>wrote:

> Hello,
>
> On Wed, Apr 9, 2014 at 10:07 AM, Daiane Angolini <daiane.list@gmail.com>
> wrote:
> > On Wed, Apr 9, 2014 at 4:21 AM, Jacob Kroon <jacob.kroon@gmail.com>
> wrote:
> >> Hi Daiane,
> >>
> >> On Tue, Apr 8, 2014 at 7:43 PM, Daiane Angolini <daiane.list@gmail.com>
> >> wrote:
> >>>
> >>>
> >>> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
> >>> core-image-base and I faced some kernel errors during the boot.
> >>> What did you change in the default poky configuration in order to work
> >>> with linux-imx-rt?
> >>>
> >>
> >> I haven't seen these errors myself on my imx6qsabresd board, although
> I'm
> >> using bare OE-core and Bitbake and a custom distro file.
> >> I'll try building the default core-image-base from poky and see if I can
> >> reproduce it.
> >
> > Thanks a lot.
> >
> > I really think it's a configuration matter and I'm not surprised to
> > know you're using your custom distro ;)
> >
> > It should be regarding the default/custom rootfs initialization
> > approach. I wouldn't say it's a kernel problem before understanding
> > exactly what is needed for this kernel uploading.
> >
>
> Has been this sorted out?
>
>
I haven't had the time yet to test building poky, but it's on my todo
list...

>>> The uname I see is 3.10.17-rt12-rt-1.0.0_beta+gec1af9f
> >>> I think the second "rt" could be dropped, what do you think?
> >>>
> >>
> >> I agree, I can send a patch to the ml that drops the extra "rt".
> >>
> >> Although, currently it seems my mail-server is blocked from
> >> yoctoproject.org...
> >
> > Otavio, can you take a look on this when you're available?
>
> I don't think so. Jacob, did you receive any rejects? If so please
> forward it to me so I can ask the YP Admins to look at it.
>
>
I did recieve some email rejects, but I think it's been sorted out now.

/Jacob
Daiane Angolini - June 5, 2014, 4:51 p.m.
>> >>> I loaded the linux-imx-rt in my imx6qsabresd boad. I used the
>> >>> core-image-base and I faced some kernel errors during the boot.
>> >>> What did you change in the default poky configuration in order to work
>> >>> with linux-imx-rt?
>> >>>
>> >>
>> >> I haven't seen these errors myself on my imx6qsabresd board, although
>> >> I'm
>> >> using bare OE-core and Bitbake and a custom distro file.
>> >> I'll try building the default core-image-base from poky and see if I
>> >> can
>> >> reproduce it.
>> >
>> > Thanks a lot.
>> >
>> > I really think it's a configuration matter and I'm not surprised to
>> > know you're using your custom distro ;)
>> >
>> > It should be regarding the default/custom rootfs initialization
>> > approach. I wouldn't say it's a kernel problem before understanding
>> > exactly what is needed for this kernel uploading.
>> >
>>
>> Has been this sorted out?
>>
>
> I haven't had the time yet to test building poky, but it's on my todo
> list...
>

Hi Jacob,

Did you tested the kernel building with poky?


Daiane

Patch

diff --git a/recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch b/recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch
new file mode 100644
index 0000000..8d9ed83
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch
@@ -0,0 +1,139 @@ 
+Fix the build errors listed below
+
+Upstream-Status: Inappropriate [other]
+Freescale does not currently support the real-time kernel
+
+Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+
+  CC      drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.o
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c: In function 'gckOS_WaitSignal':
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:7835:5: error: passing argument 1 of 'spin_lock_irq' from incompatible pointer type [-Werror]
+     spin_lock_irq(&signal->obj.wait.lock);
+     ^
+In file included from include/linux/seqlock.h:29:0,
+                 from include/linux/time.h:5,
+                 from include/linux/stat.h:18,
+                 from include/linux/module.h:10,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/spinlock.h:316:20: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
+ static inline void spin_lock_irq(spinlock_t *lock)
+                    ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:7867:9: error: passing argument 1 of '__add_wait_queue_tail' from incompatible pointer type [-Werror]
+         __add_wait_queue_tail(&signal->obj.wait, &wait);
+         ^
+In file included from include/linux/mmzone.h:9:0,
+                 from include/linux/gfp.h:4,
+                 from include/linux/kmod.h:22,
+                 from include/linux/module.h:13,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/wait.h:120:20: note: expected 'struct wait_queue_head_t *' but argument is of type 'struct swait_head *'
+ static inline void __add_wait_queue_tail(wait_queue_head_t *head,
+                    ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:7879:13: error: passing argument 1 of 'spin_unlock_irq' from incompatible pointer type [-Werror]
+             spin_unlock_irq(&signal->obj.wait.lock);
+             ^
+In file included from include/linux/seqlock.h:29:0,
+                 from include/linux/time.h:5,
+                 from include/linux/stat.h:18,
+                 from include/linux/module.h:10,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/spinlock.h:341:20: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
+ static inline void spin_unlock_irq(spinlock_t *lock)
+                    ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:7881:13: error: passing argument 1 of 'spin_lock_irq' from incompatible pointer type [-Werror]
+             spin_lock_irq(&signal->obj.wait.lock);
+             ^
+In file included from include/linux/seqlock.h:29:0,
+                 from include/linux/time.h:5,
+                 from include/linux/stat.h:18,
+                 from include/linux/module.h:10,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/spinlock.h:316:20: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
+ static inline void spin_lock_irq(spinlock_t *lock)
+                    ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:7945:9: error: passing argument 1 of '__remove_wait_queue' from incompatible pointer type [-Werror]
+         __remove_wait_queue(&signal->obj.wait, &wait);
+         ^
+In file included from include/linux/mmzone.h:9:0,
+                 from include/linux/gfp.h:4,
+                 from include/linux/kmod.h:22,
+                 from include/linux/module.h:13,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/wait.h:133:20: note: expected 'struct wait_queue_head_t *' but argument is of type 'struct swait_head *'
+ static inline void __remove_wait_queue(wait_queue_head_t *head,
+                    ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:7958:5: error: passing argument 1 of 'spin_unlock_irq' from incompatible pointer type [-Werror]
+     spin_unlock_irq(&signal->obj.wait.lock);
+     ^
+In file included from include/linux/seqlock.h:29:0,
+                 from include/linux/time.h:5,
+                 from include/linux/stat.h:18,
+                 from include/linux/module.h:10,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/spinlock.h:341:20: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
+ static inline void spin_unlock_irq(spinlock_t *lock)
+                    ^
+cc1: all warnings being treated as errors
+make[4]: *** [drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.o] Error 1
+
+Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+===================================================================
+--- git.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
++++ git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+@@ -7832,7 +7832,7 @@ gckOS_WaitSignal(
+ 
+     might_sleep();
+ 
+-    spin_lock_irq(&signal->obj.wait.lock);
++    raw_spin_lock_irq(&signal->obj.wait.lock);
+ 
+     if (signal->obj.done)
+     {
+@@ -7862,9 +7862,8 @@ gckOS_WaitSignal(
+             : Wait * HZ / 1000;
+ #endif
+ 
+-        DECLARE_WAITQUEUE(wait, current);
+-        wait.flags |= WQ_FLAG_EXCLUSIVE;
+-        __add_wait_queue_tail(&signal->obj.wait, &wait);
++        DEFINE_SWAITER(wait);
++        swait_prepare_locked(&signal->obj.wait, &wait);
+ 
+         while (gcvTRUE)
+         {
+@@ -7876,9 +7875,9 @@ gckOS_WaitSignal(
+             }
+ 
+             __set_current_state(TASK_INTERRUPTIBLE);
+-            spin_unlock_irq(&signal->obj.wait.lock);
++            raw_spin_unlock_irq(&signal->obj.wait.lock);
+             timeout = schedule_timeout(timeout);
+-            spin_lock_irq(&signal->obj.wait.lock);
++            raw_spin_lock_irq(&signal->obj.wait.lock);
+ 
+             if (signal->obj.done)
+             {
+@@ -7942,7 +7941,7 @@ gckOS_WaitSignal(
+             }
+         }
+ 
+-        __remove_wait_queue(&signal->obj.wait, &wait);
++        swait_finish_locked(&signal->obj.wait, &wait);
+ 
+ #if gcdDETECT_TIMEOUT
+         if (complained)
+@@ -7955,7 +7954,7 @@ gckOS_WaitSignal(
+ #endif
+     }
+ 
+-    spin_unlock_irq(&signal->obj.wait.lock);
++    raw_spin_unlock_irq(&signal->obj.wait.lock);
+ 
+ OnError:
+     /* Return status. */
diff --git a/recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch b/recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch
new file mode 100644
index 0000000..6132b3b
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch
@@ -0,0 +1,111 @@ 
+Fix the build errors listed below, when PREEMPT_RT_FULL is enabled
+
+Upstream-Status: Pending
+
+Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+
+  CC      drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.o
+In file included from include/linux/seqlock.h:29:0,
+                 from include/linux/time.h:5,
+                 from include/linux/stat.h:18,
+                 from include/linux/module.h:10,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c: In function 'gckOS_CreateMutex':
+include/linux/mutex_rt.h:74:24: error: dereferencing 'void *' pointer [-Werror]
+  rt_mutex_init(&(mutex)->lock);   \
+                        ^
+include/linux/spinlock.h:104:9: note: in definition of macro 'raw_spin_lock_init'
+  do { *(lock) = __RAW_SPIN_LOCK_UNLOCKED(lock); } while (0)
+         ^
+include/linux/mutex_rt.h:74:2: note: in expansion of macro 'rt_mutex_init'
+  rt_mutex_init(&(mutex)->lock);   \
+  ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:3046:5: note: in expansion of macro 'mutex_init'
+     mutex_init(*Mutex);
+     ^
+include/linux/mutex_rt.h:74:24: error: request for member 'lock' in something not a structure or union
+  rt_mutex_init(&(mutex)->lock);   \
+                        ^
+include/linux/spinlock.h:104:9: note: in definition of macro 'raw_spin_lock_init'
+  do { *(lock) = __RAW_SPIN_LOCK_UNLOCKED(lock); } while (0)
+         ^
+include/linux/mutex_rt.h:74:2: note: in expansion of macro 'rt_mutex_init'
+  rt_mutex_init(&(mutex)->lock);   \
+  ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:3046:5: note: in expansion of macro 'mutex_init'
+     mutex_init(*Mutex);
+     ^
+In file included from include/linux/spinlock_types.h:18:0,
+                 from include/linux/spinlock.h:81,
+                 from include/linux/seqlock.h:29,
+                 from include/linux/time.h:5,
+                 from include/linux/stat.h:18,
+                 from include/linux/module.h:10,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+include/linux/mutex_rt.h:74:24: error: dereferencing 'void *' pointer [-Werror]
+  rt_mutex_init(&(mutex)->lock);   \
+                        ^
+include/linux/mutex_rt.h:74:2: note: in expansion of macro 'rt_mutex_init'
+  rt_mutex_init(&(mutex)->lock);   \
+  ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:3046:5: note: in expansion of macro 'mutex_init'
+     mutex_init(*Mutex);
+     ^
+include/linux/mutex_rt.h:74:24: error: request for member 'lock' in something not a structure or union
+  rt_mutex_init(&(mutex)->lock);   \
+                        ^
+include/linux/mutex_rt.h:74:2: note: in expansion of macro 'rt_mutex_init'
+  rt_mutex_init(&(mutex)->lock);   \
+  ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:3046:5: note: in expansion of macro 'mutex_init'
+     mutex_init(*Mutex);
+     ^
+In file included from include/linux/mutex.h:28:0,
+                 from include/linux/notifier.h:13,
+                 from include/linux/memory_hotplug.h:6,
+                 from include/linux/mmzone.h:771,
+                 from include/linux/gfp.h:4,
+                 from include/linux/kmod.h:22,
+                 from include/linux/module.h:13,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:27,
+                 from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:22:
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c: In function 'gckOS_DeleteMutex':
+include/linux/mutex_rt.h:46:48: error: dereferencing 'void *' pointer [-Werror]
+ #define mutex_destroy(l)  rt_mutex_destroy(&(l)->lock)
+                                                ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:3091:5: note: in expansion of macro 'mutex_destroy'
+     mutex_destroy(Mutex);
+     ^
+include/linux/mutex_rt.h:46:48: error: request for member 'lock' in something not a structure or union
+ #define mutex_destroy(l)  rt_mutex_destroy(&(l)->lock)
+                                                ^
+drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:3091:5: note: in expansion of macro 'mutex_destroy'
+     mutex_destroy(Mutex);
+     ^
+cc1: all warnings being treated as errors
+make[4]: *** [drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.o] Error 1
+
+Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+===================================================================
+--- git.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
++++ git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+@@ -3043,7 +3043,7 @@ gckOS_CreateMutex(
+     gcmkONERROR(gckOS_Allocate(Os, gcmSIZEOF(struct mutex), Mutex));
+ 
+     /* Initialize the mutex. */
+-    mutex_init(*Mutex);
++    mutex_init((struct mutex*)*Mutex);
+ 
+     /* Return status. */
+     gcmkFOOTER_ARG("*Mutex=0x%X", *Mutex);
+@@ -3088,7 +3088,7 @@ gckOS_DeleteMutex(
+     gcmkVERIFY_ARGUMENT(Mutex != gcvNULL);
+ 
+     /* Destroy the mutex. */
+-    mutex_destroy(Mutex);
++    mutex_destroy((struct mutex*)Mutex);
+ 
+     /* Free the mutex structure. */
+     gcmkONERROR(gckOS_Free(Os, Mutex));
diff --git a/recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch b/recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch
new file mode 100644
index 0000000..b7995b6
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch
@@ -0,0 +1,84 @@ 
+Work around the oops below by disabling split ptlocks
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+
+Unable to handle kernel NULL pointer dereference at virtual address 00000000
+pgd = ac5a8000
+[00000000] *pgd=3c8db831, *pte=00000000, *ppte=00000000
+Internal error: Oops: 17 [#1] PREEMPT SMP ARM
+Modules linked in:
+CPU: 1 PID: 277 Comm: test-qt5 Not tainted 3.10.17-rt12-monkey+gec1af9f #2
+task: ac65df80 ti: ac968000 task.ti: ac968000
+PC is at _raw_spin_lock+0x10/0x4c
+LR is at get_parent_ip+0x10/0x2c
+pc : [<80623fd4>]    lr : [<8004ef18>]    psr: 60010013
+sp : ac969c38  ip : 80c44404  fp : 00000000
+r10: ac65df80  r9 : ac969cd8  r8 : 00000000
+r7 : 00000054  r6 : afffe000  r5 : 00000000  r4 : 00000000
+r3 : ac65df80  r2 : 00000001  r1 : 00000000  r0 : 00000000
+Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
+Control: 10c53c7d  Table: 3c5a804a  DAC: 00000015
+Process test-qt5 (pid: 277, stack limit = 0xac968238)
+Stack: (0xac969c38 to 0xac96a000)
+9c20:                                                       b00549a8 806235e0
+9c40: 00000000 ac968000 812f9a00 80017cec ac969c74 fffffffe 00000000 00005000
+9c60: 00000000 80017e6c ac968000 ac65df80 00000000 00000000 00000001 ac968001
+9c80: ac65df80 b00549a8 00000000 afffe000 00000054 00000000 ac969cd8 afffe150
+9ca0: b0054bf8 8044e540 ac969cd8 b00549a8 ac0b8180 00000230 ac8fd000 00000230
+9cc0: 00000000 8044f6f4 ac155700 ac969cf4 ac155700 804605b8 ac155700 ac969d8c
+9ce0: 00000002 ac969d24 b0054bf8 804607f4 7ef1fcd0 80450078 ac0b8180 ac155700
+9d00: ac969d8c 00000002 ac8fd000 8045f1a0 ac969d24 00000000 ac8fd01c b00549a8
+9d20: b0050000 00000008 ac969d98 ac0b8300 ac969d8c 00000115 ac969d98 ac969e00
+9d40: ac155600 ac3985f0 7ef1fcd0 8045661c 00000115 00000000 00000001 00000000
+9d60: 00007530 80454144 80c32e18 00000001 81518e18 806237dc 00000001 ac968038
+9d80: 00000000 00000000 00000000 00000000 00000115 806237dc ac6f5688 ac968018
+9da0: 812e1640 00000000 00000001 ac968000 ac969dc4 8004efe4 ac968008 ac39a000
+9dc0: ac744400 ac968020 00007530 ac968000 ac968000 ac3985f0 7ef1fcd0 8044d374
+9de0: 7ef1fd20 00000000 000000f8 00000000 7ef1fd20 00000000 000000f8 00000000
+9e00: 00000028 00000002 00000000 6437d1dd 7ef1fddc 76f9c030 7ef1fd88 76fb9abc
+9e20: 00000320 00005007 e02c7eca c1399eff 020fb2db 00000000 00000000 00000000
+9e40: 00000001 00000040 00000400 00000004 00000010 00000400 00000002 00000100
+9e60: 00000100 00000008 00000008 00000000 ffffffff 00000000 7588e180 76fb1000
+9e80: 08000000 00000000 00000000 76fb11b8 000000af 760b6cd8 ffffffff 7431d4c0
+9ea0: 000cb1ac 75889000 00000000 00000001 000000b0 00000000 00000000 76fa0da0
+9ec0: 00000000 00000001 00000001 00000000 00000000 7588cb40 00000001 75957ecc
+9ee0: 00000001 7ef1fe7c 75953e94 7ef1fedc 00000002 76fa789c 00007530 ac6813c0
+9f00: 00000000 7ef1fcd0 ac6813c0 ac968000 ac3985f0 800d68fc 00000001 ac968000
+9f20: ac969f34 8004efe4 ac4f71d4 6c31d000 00000000 80623fd4 00000000 80623578
+9f40: ac4f71d4 800a3d40 00000001 00000000 ac969f5c 00000003 ac6813c8 00000000
+9f60: 00000001 00007530 00000003 00000000 7ef1fcd0 ac6813c0 ac968000 00000000
+9f80: 00000000 800d6afc ac4f7180 00000000 00002710 00007530 75957e40 00000036
+9fa0: 8000e2c4 8000e140 00002710 00007530 00000003 00007530 7ef1fcd0 01bc3008
+9fc0: 00002710 00007530 75957e40 00000036 01bd2e70 00000001 7ef1fd20 00000000
+9fe0: 759540c4 7ef1fcbc 7593f698 760a0ccc 20010010 00000003 00000000 00000000
+[<80623fd4>] (_raw_spin_lock+0x10/0x4c) from [<806235e0>] (rt_spin_lock_slowlock+0x34/0x29c)
+[<806235e0>] (rt_spin_lock_slowlock+0x34/0x29c) from [<8044e540>] (_QueryProcessPageTable+0x8c/0xdc)
+[<8044e540>] (_QueryProcessPageTable+0x8c/0xdc) from [<8044f6f4>] (gckOS_GetPhysicalAddress+0x20/0x58)
+[<8044f6f4>] (gckOS_GetPhysicalAddress+0x20/0x58) from [<804605b8>] (gckHARDWARE_ConvertLogical+0x2c/0x90)
+[<804605b8>] (gckHARDWARE_ConvertLogical+0x2c/0x90) from [<804607f4>] (gckHARDWARE_Link+0x60/0x104)
+[<804607f4>] (gckHARDWARE_Link+0x60/0x104) from [<8045f1a0>] (gckCONTEXT_Construct+0x264/0x2bc)
+[<8045f1a0>] (gckCONTEXT_Construct+0x264/0x2bc) from [<8045661c>] (gckCOMMAND_Attach+0x44/0x88)
+[<8045661c>] (gckCOMMAND_Attach+0x44/0x88) from [<80454144>] (gckKERNEL_Dispatch+0x358/0x12c8)
+[<80454144>] (gckKERNEL_Dispatch+0x358/0x12c8) from [<8044d374>] (drv_ioctl+0x120/0x284)
+[<8044d374>] (drv_ioctl+0x120/0x284) from [<800d68fc>] (do_vfs_ioctl+0x408/0x5d0)
+[<800d68fc>] (do_vfs_ioctl+0x408/0x5d0) from [<800d6afc>] (SyS_ioctl+0x38/0x64)
+[<800d6afc>] (SyS_ioctl+0x38/0x64) from [<8000e140>] (ret_fast_syscall+0x0/0x30)
+Code: e92d4010 e1a04000 e3a00001 ebe8abd7 (e1943f9f) 
+---[ end trace 0000000000000002 ]---
+note: test-qt5[277] exited with preempt_count 1
+
+Index: git/include/linux/mm_types.h
+===================================================================
+--- git.orig/include/linux/mm_types.h
++++ git/include/linux/mm_types.h
+@@ -24,7 +24,7 @@
+ 
+ struct address_space;
+ 
+-#define USE_SPLIT_PTLOCKS	(NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
++#define USE_SPLIT_PTLOCKS	(0)
+ 
+ /*
+  * Each physical page in the system has a struct page associated with
diff --git a/recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig b/recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig
new file mode 100644
index 0000000..dd002e7
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig
@@ -0,0 +1,332 @@ 
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EXPERT=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_BLK_DEV_BSG is not set
+CONFIG_GPIO_PCA953X=y
+CONFIG_ARCH_MXC=y
+CONFIG_MXC_DEBUG_BOARD=y
+CONFIG_MACH_IMX51_DT=y
+CONFIG_MACH_EUKREA_CPUIMX51SD=y
+CONFIG_SOC_IMX53=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_SOC_VF610=y
+# CONFIG_SWP_EMULATE is not set
+CONFIG_SMP=y
+CONFIG_VMSPLIT_2G=y
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_ARM_IMX6_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_NETFILTER=y
+CONFIG_VLAN_8021Q=y
+CONFIG_CAN=y
+CONFIG_CAN_FLEXCAN=y
+CONFIG_CFG80211=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_IMX_WEIM=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_DATAFLASH=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_GPMI_NAND=y
+CONFIG_MTD_NAND_MXC=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_PATA_IMX=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_VENDOR_BROADCOM is not set
+CONFIG_CS89x0=y
+CONFIG_CS89x0_PLATFORM=y
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+CONFIG_SMC91X=y
+CONFIG_SMC911X=y
+CONFIG_SMSC911X=y
+# CONFIG_NET_VENDOR_STMICRO is not set
+CONFIG_ATH_CARDS=y
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_ELAN=y
+CONFIG_TOUCHSCREEN_MAX11801=y
+CONFIG_TOUCHSCREEN_MC13783=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MMA8450=y
+CONFIG_INPUT_ISL29023=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+CONFIG_FSL_OTP=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_SABRESD_MAX8903=y
+CONFIG_IMX6_USB_CHARGER=y
+CONFIG_SENSORS_MAX17135=y
+CONFIG_SENSORS_MAG3110=y
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_MC13XXX_SPI=y
+CONFIG_MFD_MC13XXX_I2C=y
+CONFIG_MFD_MAX17135=y
+CONFIG_MFD_SI476X_CORE=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_DA9052=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_REGULATOR_MC13783=y
+CONFIG_REGULATOR_MC13892=y
+CONFIG_REGULATOR_MAX17135=y
+CONFIG_REGULATOR_PFUZE100=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_VIDEO_V4L2_INT_DEVICE=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_OUTPUT=y
+CONFIG_VIDEO_MXC_CAPTURE=m
+CONFIG_VIDEO_MXC_CSI_CAMERA=m
+CONFIG_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5642=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
+CONFIG_MXC_TVIN_ADV7180=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_VIDEO_MXC_PXP_V4L2=y
+CONFIG_SOC_CAMERA=y
+CONFIG_VIDEO_MX3=y
+CONFIG_RADIO_SI476X=y
+CONFIG_SOC_CAMERA_OV2640=y
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB=y
+CONFIG_FB_MXS=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FB_MXC_EINK_PANEL=y
+CONFIG_FB_MXS_SII902X=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_EUKREA_TLV320=y
+CONFIG_SND_SOC_IMX_CS42888=y
+CONFIG_SND_SOC_IMX_WM8962=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_MC13783=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_SND_SOC_IMX_SI476X=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_PHY=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_MMC=y
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_IPU=y
+CONFIG_MXC_GPU_VIV=y
+CONFIG_MXC_ASRC=y
+CONFIG_MXC_MIPI_CSI2=y
+CONFIG_MXC_MLB150=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_MC13XXX=y
+CONFIG_RTC_DRV_MXC=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+CONFIG_MXC_PXP_V2=y
+CONFIG_IMX_SDMA=y
+CONFIG_MXS_DMA=y
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_DEBUG=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-imx-rt_3.10.17.bb b/recipes-kernel/linux/linux-imx-rt_3.10.17.bb
new file mode 100644
index 0000000..0878564
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-rt_3.10.17.bb
@@ -0,0 +1,26 @@ 
+# Adapted from linux-imx_3.10.17.bb
+
+require recipes-kernel/linux/linux-imx.inc
+require recipes-kernel/linux/linux-dtb.inc
+
+SUMMARY = "Linux real-time kernel based on linux-imx"
+DESCRIPTION = "Linux kernel that is based on Freescale's linux-imx, \
+with added real-time capabilities."
+
+DEPENDS += "lzop-native bc-native"
+
+SRCBRANCH = "imx_3.10.17_1.0.0_beta"
+SRCREV = "ec1af9f898d234001d8fc7d720382de34cb6580f"
+LOCALVERSION = "-rt-1.0.0_beta"
+
+COMPATIBLE_MACHINE = "(mx6)"
+
+SRC_URI += "\
+	https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/older/patch-3.10.17-rt12.patch.bz2;name=rt-patch1 \
+	file://0001-fix-build.patch \
+	file://0002-fix-build-with-rt-enabled.patch \
+	file://0003-no-split-ptlocks.patch \
+"
+
+SRC_URI[rt-patch1.md5sum] = "77a28c8b20b01f280dcd860e606a6edd"
+SRC_URI[rt-patch1.sha256sum] = "ce219268f08eecccb39ff2b5be83657d53ca67cb1c6b81021494075197190351"