From 5ebb4e1950a49c7e1f04ee86ecb0d1929b4ebfc7 Mon Sep 17 00:00:00 2001 From: Jacob Kroon Date: Thu, 27 Mar 2014 21:32:03 +0100 Subject: [PATCH] linux-imx-rt: Add initial recipe 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 Signed-off-by: Otavio Salvador --- .../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 ++++++++++++++++++ .../linux/linux-imx-rt_3.10.17.bb | 26 ++ 5 files changed, 692 insertions(+) create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.17.bb diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0001-fix-build.patch new file mode 100644 index 00000000..8d9ed83d --- /dev/null +++ b/meta-fsl-arm/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 + + 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/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0002-fix-build-with-rt-enabled.patch new file mode 100644 index 00000000..6132b3b4 --- /dev/null +++ b/meta-fsl-arm/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 + + 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/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/0003-no-split-ptlocks.patch new file mode 100644 index 00000000..b7995b63 --- /dev/null +++ b/meta-fsl-arm/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 + +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/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.17/mx6/defconfig new file mode 100644 index 00000000..dd002e7f --- /dev/null +++ b/meta-fsl-arm/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/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.17.bb b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.17.bb new file mode 100644 index 00000000..08785643 --- /dev/null +++ b/meta-fsl-arm/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" -- 2.40.1