summaryrefslogtreecommitdiffstats
path: root/recipes-kernel
diff options
context:
space:
mode:
authorDominic Sacré <dominic.sacre@gmx.de>2015-10-29 13:20:07 +0100
committerOtavio Salvador <otavio@ossystems.com.br>2015-10-29 17:54:59 -0200
commit2f78ef1230481e0da690296a6a41330d7ffc4c13 (patch)
treeb992c5b1ef57a1515770ccf210ab965f3aba11cc /recipes-kernel
parentc347039f843067d33fdb7f4ad8d36e4c50acbcff (diff)
downloadmeta-fsl-arm-2f78ef1230481e0da690296a6a41330d7ffc4c13.tar.gz
linux-fslc-mx6-rt: Add new recipe
This recipe is based on the now-deleted linux-imx-rt recipe, using the same set of patches. The linux-fslc-mx6 kernel is currently at upstream version 3.14.54, for which no realtime patch has been released, but patch 3.14.51-rt52 applies cleanly. Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'recipes-kernel')
-rw-r--r--recipes-kernel/linux/linux-fslc-mx6-rt/0001-fix-build.patch71
-rw-r--r--recipes-kernel/linux/linux-fslc-mx6-rt/0002-fix-build-with-rt-enabled.patch19
-rw-r--r--recipes-kernel/linux/linux-fslc-mx6-rt/0003-no-split-ptlocks.patch85
-rw-r--r--recipes-kernel/linux/linux-fslc-mx6-rt/0004-imx-sdma-channel-use-raw-spinlock.patch95
-rw-r--r--recipes-kernel/linux/linux-fslc-mx6-rt/defconfig413
-rw-r--r--recipes-kernel/linux/linux-fslc-mx6-rt_3.14-1.0.x.bb27
6 files changed, 710 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-fslc-mx6-rt/0001-fix-build.patch b/recipes-kernel/linux/linux-fslc-mx6-rt/0001-fix-build.patch
new file mode 100644
index 0000000..4be4066
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-mx6-rt/0001-fix-build.patch
@@ -0,0 +1,71 @@
1Fix build errors when RT patch is applied
2
3Upstream-Status: Inappropriate [other]
4Freescale does not support the RT patch
5
6Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
7Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> [updated for 3.14.28]
8
9diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
10index 2ec98dc..5d0b7df 100644
11--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
12+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
13@@ -7344,7 +7344,7 @@ gckOS_WaitSignal(
14
15 might_sleep();
16
17- spin_lock_irq(&signal->obj.wait.lock);
18+ raw_spin_lock_irq(&signal->obj.wait.lock);
19
20 if (signal->obj.done)
21 {
22@@ -7366,9 +7366,8 @@ gckOS_WaitSignal(
23 ? MAX_SCHEDULE_TIMEOUT
24 : Wait * HZ / 1000;
25
26- DECLARE_WAITQUEUE(wait, current);
27- wait.flags |= WQ_FLAG_EXCLUSIVE;
28- __add_wait_queue_tail(&signal->obj.wait, &wait);
29+ DEFINE_SWAITER(wait);
30+ swait_prepare_locked(&signal->obj.wait, &wait);
31
32 while (gcvTRUE)
33 {
34@@ -7380,9 +7379,9 @@ gckOS_WaitSignal(
35 }
36
37 __set_current_state(TASK_INTERRUPTIBLE);
38- spin_unlock_irq(&signal->obj.wait.lock);
39+ raw_spin_unlock_irq(&signal->obj.wait.lock);
40 timeout = schedule_timeout(timeout);
41- spin_lock_irq(&signal->obj.wait.lock);
42+ raw_spin_lock_irq(&signal->obj.wait.lock);
43
44 if (signal->obj.done)
45 {
46@@ -7403,10 +7402,10 @@ gckOS_WaitSignal(
47 }
48 }
49
50- __remove_wait_queue(&signal->obj.wait, &wait);
51+ swait_finish_locked(&signal->obj.wait, &wait);
52 }
53
54- spin_unlock_irq(&signal->obj.wait.lock);
55+ raw_spin_unlock_irq(&signal->obj.wait.lock);
56
57 OnError:
58 /* Return status. */
59diff --git a/include/linux/imx_sema4.h b/include/linux/imx_sema4.h
60index 9787980..3586199 100644
61--- a/include/linux/imx_sema4.h
62+++ b/include/linux/imx_sema4.h
63@@ -9,6 +9,8 @@
64 #ifndef __LINUX_IMX_SEMA4_H__
65 #define __LINUX_IMX_SEMA4_H__
66
67+#include <linux/wait.h>
68+
69 #define SEMA4_NUM_DEVICES 1
70 #define SEMA4_NUM_GATES 16
71
diff --git a/recipes-kernel/linux/linux-fslc-mx6-rt/0002-fix-build-with-rt-enabled.patch b/recipes-kernel/linux/linux-fslc-mx6-rt/0002-fix-build-with-rt-enabled.patch
new file mode 100644
index 0000000..83652c9
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-mx6-rt/0002-fix-build-with-rt-enabled.patch
@@ -0,0 +1,19 @@
1Fix build error when PREEMPT_RT_FULL is enabled
2
3Upstream-Status: Pending
4
5Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
6
7Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
8===================================================================
9--- git.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
10+++ git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
11@@ -3266,7 +3266,7 @@ gckOS_CreateMutex(
12 gcmkONERROR(gckOS_Allocate(Os, gcmSIZEOF(struct mutex), Mutex));
13
14 /* Initialize the mutex. */
15- mutex_init(*Mutex);
16+ mutex_init((struct mutex*)*Mutex);
17
18 /* Return status. */
19 gcmkFOOTER_ARG("*Mutex=0x%X", *Mutex);
diff --git a/recipes-kernel/linux/linux-fslc-mx6-rt/0003-no-split-ptlocks.patch b/recipes-kernel/linux/linux-fslc-mx6-rt/0003-no-split-ptlocks.patch
new file mode 100644
index 0000000..40c012a
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-mx6-rt/0003-no-split-ptlocks.patch
@@ -0,0 +1,85 @@
1Work around the oops below by disabling split ptlocks
2
3Upstream-Status: Inappropriate [disable feature]
4
5Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
6Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> [updated for 3.14.28]
7
8Unable to handle kernel NULL pointer dereference at virtual address 00000000
9pgd = ac5a8000
10[00000000] *pgd=3c8db831, *pte=00000000, *ppte=00000000
11Internal error: Oops: 17 [#1] PREEMPT SMP ARM
12Modules linked in:
13CPU: 1 PID: 277 Comm: test-qt5 Not tainted 3.10.17-rt12-monkey+gec1af9f #2
14task: ac65df80 ti: ac968000 task.ti: ac968000
15PC is at _raw_spin_lock+0x10/0x4c
16LR is at get_parent_ip+0x10/0x2c
17pc : [<80623fd4>] lr : [<8004ef18>] psr: 60010013
18sp : ac969c38 ip : 80c44404 fp : 00000000
19r10: ac65df80 r9 : ac969cd8 r8 : 00000000
20r7 : 00000054 r6 : afffe000 r5 : 00000000 r4 : 00000000
21r3 : ac65df80 r2 : 00000001 r1 : 00000000 r0 : 00000000
22Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
23Control: 10c53c7d Table: 3c5a804a DAC: 00000015
24Process test-qt5 (pid: 277, stack limit = 0xac968238)
25Stack: (0xac969c38 to 0xac96a000)
269c20: b00549a8 806235e0
279c40: 00000000 ac968000 812f9a00 80017cec ac969c74 fffffffe 00000000 00005000
289c60: 00000000 80017e6c ac968000 ac65df80 00000000 00000000 00000001 ac968001
299c80: ac65df80 b00549a8 00000000 afffe000 00000054 00000000 ac969cd8 afffe150
309ca0: b0054bf8 8044e540 ac969cd8 b00549a8 ac0b8180 00000230 ac8fd000 00000230
319cc0: 00000000 8044f6f4 ac155700 ac969cf4 ac155700 804605b8 ac155700 ac969d8c
329ce0: 00000002 ac969d24 b0054bf8 804607f4 7ef1fcd0 80450078 ac0b8180 ac155700
339d00: ac969d8c 00000002 ac8fd000 8045f1a0 ac969d24 00000000 ac8fd01c b00549a8
349d20: b0050000 00000008 ac969d98 ac0b8300 ac969d8c 00000115 ac969d98 ac969e00
359d40: ac155600 ac3985f0 7ef1fcd0 8045661c 00000115 00000000 00000001 00000000
369d60: 00007530 80454144 80c32e18 00000001 81518e18 806237dc 00000001 ac968038
379d80: 00000000 00000000 00000000 00000000 00000115 806237dc ac6f5688 ac968018
389da0: 812e1640 00000000 00000001 ac968000 ac969dc4 8004efe4 ac968008 ac39a000
399dc0: ac744400 ac968020 00007530 ac968000 ac968000 ac3985f0 7ef1fcd0 8044d374
409de0: 7ef1fd20 00000000 000000f8 00000000 7ef1fd20 00000000 000000f8 00000000
419e00: 00000028 00000002 00000000 6437d1dd 7ef1fddc 76f9c030 7ef1fd88 76fb9abc
429e20: 00000320 00005007 e02c7eca c1399eff 020fb2db 00000000 00000000 00000000
439e40: 00000001 00000040 00000400 00000004 00000010 00000400 00000002 00000100
449e60: 00000100 00000008 00000008 00000000 ffffffff 00000000 7588e180 76fb1000
459e80: 08000000 00000000 00000000 76fb11b8 000000af 760b6cd8 ffffffff 7431d4c0
469ea0: 000cb1ac 75889000 00000000 00000001 000000b0 00000000 00000000 76fa0da0
479ec0: 00000000 00000001 00000001 00000000 00000000 7588cb40 00000001 75957ecc
489ee0: 00000001 7ef1fe7c 75953e94 7ef1fedc 00000002 76fa789c 00007530 ac6813c0
499f00: 00000000 7ef1fcd0 ac6813c0 ac968000 ac3985f0 800d68fc 00000001 ac968000
509f20: ac969f34 8004efe4 ac4f71d4 6c31d000 00000000 80623fd4 00000000 80623578
519f40: ac4f71d4 800a3d40 00000001 00000000 ac969f5c 00000003 ac6813c8 00000000
529f60: 00000001 00007530 00000003 00000000 7ef1fcd0 ac6813c0 ac968000 00000000
539f80: 00000000 800d6afc ac4f7180 00000000 00002710 00007530 75957e40 00000036
549fa0: 8000e2c4 8000e140 00002710 00007530 00000003 00007530 7ef1fcd0 01bc3008
559fc0: 00002710 00007530 75957e40 00000036 01bd2e70 00000001 7ef1fd20 00000000
569fe0: 759540c4 7ef1fcbc 7593f698 760a0ccc 20010010 00000003 00000000 00000000
57[<80623fd4>] (_raw_spin_lock+0x10/0x4c) from [<806235e0>] (rt_spin_lock_slowlock+0x34/0x29c)
58[<806235e0>] (rt_spin_lock_slowlock+0x34/0x29c) from [<8044e540>] (_QueryProcessPageTable+0x8c/0xdc)
59[<8044e540>] (_QueryProcessPageTable+0x8c/0xdc) from [<8044f6f4>] (gckOS_GetPhysicalAddress+0x20/0x58)
60[<8044f6f4>] (gckOS_GetPhysicalAddress+0x20/0x58) from [<804605b8>] (gckHARDWARE_ConvertLogical+0x2c/0x90)
61[<804605b8>] (gckHARDWARE_ConvertLogical+0x2c/0x90) from [<804607f4>] (gckHARDWARE_Link+0x60/0x104)
62[<804607f4>] (gckHARDWARE_Link+0x60/0x104) from [<8045f1a0>] (gckCONTEXT_Construct+0x264/0x2bc)
63[<8045f1a0>] (gckCONTEXT_Construct+0x264/0x2bc) from [<8045661c>] (gckCOMMAND_Attach+0x44/0x88)
64[<8045661c>] (gckCOMMAND_Attach+0x44/0x88) from [<80454144>] (gckKERNEL_Dispatch+0x358/0x12c8)
65[<80454144>] (gckKERNEL_Dispatch+0x358/0x12c8) from [<8044d374>] (drv_ioctl+0x120/0x284)
66[<8044d374>] (drv_ioctl+0x120/0x284) from [<800d68fc>] (do_vfs_ioctl+0x408/0x5d0)
67[<800d68fc>] (do_vfs_ioctl+0x408/0x5d0) from [<800d6afc>] (SyS_ioctl+0x38/0x64)
68[<800d6afc>] (SyS_ioctl+0x38/0x64) from [<8000e140>] (ret_fast_syscall+0x0/0x30)
69Code: e92d4010 e1a04000 e3a00001 ebe8abd7 (e1943f9f)
70---[ end trace 0000000000000002 ]---
71note: test-qt5[277] exited with preempt_count 1
72
73diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
74index 6c1dc6c..8c00faf 100644
75--- a/include/linux/mm_types.h
76+++ b/include/linux/mm_types.h
77@@ -24,7 +24,7 @@
78
79 struct address_space;
80
81-#define USE_SPLIT_PTE_PTLOCKS (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
82+#define USE_SPLIT_PTE_PTLOCKS (0)
83 #define USE_SPLIT_PMD_PTLOCKS (USE_SPLIT_PTE_PTLOCKS && \
84 IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK))
85 #define ALLOC_SPLIT_PTLOCKS (SPINLOCK_SIZE > BITS_PER_LONG/8)
diff --git a/recipes-kernel/linux/linux-fslc-mx6-rt/0004-imx-sdma-channel-use-raw-spinlock.patch b/recipes-kernel/linux/linux-fslc-mx6-rt/0004-imx-sdma-channel-use-raw-spinlock.patch
new file mode 100644
index 0000000..da36213
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-mx6-rt/0004-imx-sdma-channel-use-raw-spinlock.patch
@@ -0,0 +1,95 @@
1Work around CPU stalls in the imx-sdma driver by replacing spinlocks
2with raw spinlocks. This prevents preemption during the spinlock's
3critical section, as is the case on non PREEMPT_RT kernels.
4
5Without this patch, the following error can occur, for example when
6using the audio codec on an iMX6Q Sabre SD board:
7
8INFO: rcu_preempt self-detected stall on CPU { 0} (t=2100 jiffies g=106 c=105 q=93)
9CPU: 0 PID: 120 Comm: irq/34-sdma Not tainted 3.14.28-rt25-1.0.0_ga+g91cf351 #1
10[<80014a8c>] (unwind_backtrace) from [<8001173c>] (show_stack+0x10/0x14)
11[<8001173c>] (show_stack) from [<806ee750>] (dump_stack+0x7c/0xc8)
12[<806ee750>] (dump_stack) from [<800771c8>] (rcu_check_callbacks+0x454/0x888)
13[<800771c8>] (rcu_check_callbacks) from [<80037f28>] (update_process_times+0x40/0x5c)
14[<80037f28>] (update_process_times) from [<80082230>] (tick_sched_timer+0x4c/0x78)
15[<80082230>] (tick_sched_timer) from [<8004bf30>] (__run_hrtimer.isra.34+0x74/0x124)
16[<8004bf30>] (__run_hrtimer.isra.34) from [<8004cbb0>] (hrtimer_interrupt+0x154/0x3ac)
17[<8004cbb0>] (hrtimer_interrupt) from [<80014464>] (twd_handler+0x30/0x38)
18[<80014464>] (twd_handler) from [<8006fa2c>] (handle_percpu_devid_irq+0x6c/0x84)
19[<8006fa2c>] (handle_percpu_devid_irq) from [<8006bc64>] (generic_handle_irq+0x2c/0x3c)
20[<8006bc64>] (generic_handle_irq) from [<8000ed8c>] (handle_IRQ+0x40/0x90)
21[<8000ed8c>] (handle_IRQ) from [<8000856c>] (gic_handle_irq+0x2c/0x5c)
22[<8000856c>] (gic_handle_irq) from [<80012240>] (__irq_svc+0x40/0x84)
23Exception stack(0xa840feb8 to 0xa840ff00)
24fea0: a8007a28 00000002
25fec0: 00000001 0000a6a6 a80079c0 a8007a28 a83ea080 00000000 a80079c0 a83ea080
26fee0: 285190f0 00000000 00000000 a840ff00 8006d04c 806f3070 20030113 ffffffff
27[<80012240>] (__irq_svc) from [<806f3070>] (_raw_spin_unlock_irq+0x20/0x60)
28[<806f3070>] (_raw_spin_unlock_irq) from [<8006d04c>] (irq_finalize_oneshot.part.37+0x70/0xcc)
29[<8006d04c>] (irq_finalize_oneshot.part.37) from [<8006d148>] (irq_forced_thread_fn+0x60/0x64)
30[<8006d148>] (irq_forced_thread_fn) from [<8006d3dc>] (irq_thread+0x138/0x1a4)
31[<8006d3dc>] (irq_thread) from [<8004913c>] (kthread+0xbc/0xd4)
32[<8004913c>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c)
33
34Upstream-Status: Pending
35
36Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de>
37
38diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
39index bae2ea8..74ff5a0 100644
40--- a/drivers/dma/imx-sdma.c
41+++ b/drivers/dma/imx-sdma.c
42@@ -343,7 +343,7 @@ struct sdma_engine {
43 struct dma_device dma_device;
44 struct clk *clk_ipg;
45 struct clk *clk_ahb;
46- spinlock_t channel_0_lock;
47+ raw_spinlock_t channel_0_lock;
48 u32 script_number;
49 struct sdma_script_start_addrs *script_addrs;
50 const struct sdma_driver_data *drvdata;
51@@ -593,7 +593,7 @@ static int sdma_load_script(struct sdma_engine *sdma, void *buf, int size,
52 return -ENOMEM;
53 }
54
55- spin_lock_irqsave(&sdma->channel_0_lock, flags);
56+ raw_spin_lock_irqsave(&sdma->channel_0_lock, flags);
57
58 bd0->mode.command = C0_SETPM;
59 bd0->mode.status = BD_DONE | BD_INTR | BD_WRAP | BD_EXTD;
60@@ -605,7 +605,7 @@ static int sdma_load_script(struct sdma_engine *sdma, void *buf, int size,
61
62 ret = sdma_run_channel0(sdma);
63
64- spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
65+ raw_spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
66
67 if (use_iram)
68 gen_pool_free(sdma->iram_pool, (unsigned long)buf_virt, size);
69@@ -880,7 +880,7 @@ static int sdma_load_context(struct sdma_channel *sdmac)
70 dev_dbg(sdma->dev, "event_mask0 = 0x%08x\n", (u32)sdmac->event_mask[0]);
71 dev_dbg(sdma->dev, "event_mask1 = 0x%08x\n", (u32)sdmac->event_mask[1]);
72
73- spin_lock_irqsave(&sdma->channel_0_lock, flags);
74+ raw_spin_lock_irqsave(&sdma->channel_0_lock, flags);
75
76 memset(context, 0, sizeof(*context));
77 context->channel_state.pc = load_address;
78@@ -906,7 +906,7 @@ static int sdma_load_context(struct sdma_channel *sdmac)
79 bd0->ext_buffer_addr = 2048 + (sizeof(*context) / 4) * channel;
80 ret = sdma_run_channel0(sdma);
81
82- spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
83+ raw_spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
84
85 return ret;
86 }
87@@ -1881,7 +1881,7 @@ static int __init sdma_probe(struct platform_device *pdev)
88 if (!sdma)
89 return -ENOMEM;
90
91- spin_lock_init(&sdma->channel_0_lock);
92+ raw_spin_lock_init(&sdma->channel_0_lock);
93
94 sdma->dev = &pdev->dev;
95 sdma->drvdata = drvdata;
diff --git a/recipes-kernel/linux/linux-fslc-mx6-rt/defconfig b/recipes-kernel/linux/linux-fslc-mx6-rt/defconfig
new file mode 100644
index 0000000..e741b19
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-mx6-rt/defconfig
@@ -0,0 +1,413 @@
1CONFIG_KERNEL_LZO=y
2CONFIG_SYSVIPC=y
3CONFIG_NO_HZ=y
4CONFIG_HIGH_RES_TIMERS=y
5CONFIG_LOG_BUF_SHIFT=18
6CONFIG_CGROUPS=y
7CONFIG_RELAY=y
8CONFIG_BLK_DEV_INITRD=y
9CONFIG_EXPERT=y
10CONFIG_KALLSYMS_ALL=y
11CONFIG_PERF_EVENTS=y
12# CONFIG_SLUB_DEBUG is not set
13# CONFIG_COMPAT_BRK is not set
14CONFIG_MODULES=y
15CONFIG_MODULE_UNLOAD=y
16CONFIG_MODVERSIONS=y
17CONFIG_MODULE_SRCVERSION_ALL=y
18# CONFIG_BLK_DEV_BSG is not set
19CONFIG_GPIO_PCA953X=y
20CONFIG_ARCH_MXC=y
21CONFIG_MACH_IMX51_DT=y
22CONFIG_MACH_EUKREA_CPUIMX51SD=y
23CONFIG_SOC_IMX50=y
24CONFIG_SOC_IMX53=y
25CONFIG_SOC_IMX6Q=y
26CONFIG_SOC_IMX6SL=y
27CONFIG_SOC_IMX6SX=y
28CONFIG_SOC_VF610=y
29# CONFIG_SWP_EMULATE is not set
30CONFIG_SMP=y
31CONFIG_VMSPLIT_2G=y
32CONFIG_PREEMPT_RT_FULL=y
33CONFIG_AEABI=y
34CONFIG_HIGHMEM=y
35CONFIG_CMA=y
36CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
37CONFIG_KEXEC=y
38CONFIG_CPU_FREQ=y
39CONFIG_CPU_FREQ_GOV_POWERSAVE=y
40CONFIG_CPU_FREQ_GOV_USERSPACE=y
41CONFIG_CPU_FREQ_GOV_ONDEMAND=y
42CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
43CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
44CONFIG_ARM_IMX6Q_CPUFREQ=y
45CONFIG_CPU_IDLE=y
46CONFIG_VFP=y
47CONFIG_NEON=y
48CONFIG_BINFMT_MISC=m
49CONFIG_PM_RUNTIME=y
50CONFIG_PM_DEBUG=y
51CONFIG_PM_TEST_SUSPEND=y
52CONFIG_NET=y
53CONFIG_PACKET=y
54CONFIG_UNIX=y
55CONFIG_INET=y
56CONFIG_IP_PNP=y
57CONFIG_IP_PNP_DHCP=y
58# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
59# CONFIG_INET_XFRM_MODE_TUNNEL is not set
60# CONFIG_INET_XFRM_MODE_BEET is not set
61# CONFIG_INET_LRO is not set
62CONFIG_IPV6=y
63CONFIG_NETFILTER=y
64CONFIG_VLAN_8021Q=y
65CONFIG_LLC2=y
66CONFIG_CAN=y
67CONFIG_CAN_FLEXCAN=y
68CONFIG_CAN_M_CAN=y
69CONFIG_BT=y
70CONFIG_BT_RFCOMM=y
71CONFIG_BT_RFCOMM_TTY=y
72CONFIG_BT_BNEP=y
73CONFIG_BT_BNEP_MC_FILTER=y
74CONFIG_BT_BNEP_PROTO_FILTER=y
75CONFIG_BT_HIDP=y
76CONFIG_BT_HCIBTUSB=y
77CONFIG_BT_HCIBTSDIO=y
78CONFIG_BT_HCIUART=y
79CONFIG_BT_HCIUART_H4=y
80CONFIG_BT_HCIUART_BCSP=y
81CONFIG_BT_HCIUART_ATH3K=y
82CONFIG_BT_HCIBCM203X=y
83CONFIG_BT_ATH3K=y
84CONFIG_CFG80211=y
85CONFIG_MAC80211=y
86CONFIG_DEVTMPFS=y
87CONFIG_DEVTMPFS_MOUNT=y
88# CONFIG_STANDALONE is not set
89CONFIG_DMA_CMA=y
90CONFIG_CMA_SIZE_MBYTES=320
91CONFIG_IMX_WEIM=y
92CONFIG_CONNECTOR=y
93CONFIG_MTD=y
94CONFIG_MTD_CMDLINE_PARTS=y
95CONFIG_MTD_BLOCK=y
96CONFIG_MTD_CFI=y
97CONFIG_MTD_JEDECPROBE=y
98CONFIG_MTD_CFI_INTELEXT=y
99CONFIG_MTD_CFI_AMDSTD=y
100CONFIG_MTD_CFI_STAA=y
101CONFIG_MTD_PHYSMAP_OF=y
102CONFIG_MTD_DATAFLASH=y
103CONFIG_MTD_M25P80=y
104CONFIG_MTD_SST25L=y
105CONFIG_MTD_NAND=y
106CONFIG_MTD_NAND_GPMI_NAND=y
107CONFIG_MTD_NAND_MXC=y
108CONFIG_MTD_SPI_NOR=y
109CONFIG_SPI_FSL_QUADSPI=y
110CONFIG_MTD_UBI=y
111CONFIG_BLK_DEV_LOOP=y
112CONFIG_BLK_DEV_RAM=y
113CONFIG_BLK_DEV_RAM_SIZE=65536
114CONFIG_EEPROM_AT24=y
115CONFIG_EEPROM_AT25=y
116# CONFIG_SCSI_PROC_FS is not set
117CONFIG_BLK_DEV_SD=y
118CONFIG_SCSI_MULTI_LUN=y
119CONFIG_SCSI_CONSTANTS=y
120CONFIG_SCSI_LOGGING=y
121CONFIG_SCSI_SCAN_ASYNC=y
122# CONFIG_SCSI_LOWLEVEL is not set
123CONFIG_ATA=y
124CONFIG_SATA_AHCI_PLATFORM=y
125CONFIG_AHCI_IMX=y
126CONFIG_PATA_IMX=y
127CONFIG_NETDEVICES=y
128# CONFIG_NET_VENDOR_BROADCOM is not set
129CONFIG_CS89x0=y
130CONFIG_CS89x0_PLATFORM=y
131# CONFIG_NET_VENDOR_FARADAY is not set
132# CONFIG_NET_VENDOR_INTEL is not set
133# CONFIG_NET_VENDOR_MARVELL is not set
134# CONFIG_NET_VENDOR_MICREL is not set
135# CONFIG_NET_VENDOR_MICROCHIP is not set
136# CONFIG_NET_VENDOR_NATSEMI is not set
137# CONFIG_NET_VENDOR_SEEQ is not set
138CONFIG_SMC91X=y
139CONFIG_SMC911X=y
140CONFIG_SMSC911X=y
141# CONFIG_NET_VENDOR_STMICRO is not set
142CONFIG_USB_PEGASUS=m
143CONFIG_USB_RTL8150=m
144CONFIG_USB_RTL8152=m
145CONFIG_USB_USBNET=m
146CONFIG_USB_NET_CDC_EEM=m
147CONFIG_ATH_CARDS=y
148CONFIG_ATH6KL=m
149CONFIG_ATH6KL_SDIO=m
150CONFIG_BRCMFMAC=m
151# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
152CONFIG_INPUT_EVDEV=y
153CONFIG_INPUT_EVBUG=m
154CONFIG_KEYBOARD_GPIO=y
155CONFIG_KEYBOARD_SNVS_PWRKEY=y
156CONFIG_KEYBOARD_IMX=y
157CONFIG_MOUSE_PS2=m
158CONFIG_MOUSE_PS2_ELANTECH=y
159CONFIG_INPUT_TOUCHSCREEN=y
160CONFIG_TOUCHSCREEN_EGALAX=y
161CONFIG_TOUCHSCREEN_ELAN=y
162CONFIG_TOUCHSCREEN_MAX11801=y
163CONFIG_TOUCHSCREEN_MC13783=y
164CONFIG_TOUCHSCREEN_TSC2007=y
165CONFIG_TOUCHSCREEN_STMPE=y
166CONFIG_INPUT_MISC=y
167CONFIG_INPUT_MMA8450=y
168CONFIG_INPUT_ISL29023=y
169CONFIG_SERIO_SERPORT=m
170# CONFIG_LEGACY_PTYS is not set
171# CONFIG_DEVKMEM is not set
172CONFIG_SERIAL_IMX=y
173CONFIG_SERIAL_IMX_CONSOLE=y
174CONFIG_SERIAL_FSL_LPUART=y
175CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
176CONFIG_FSL_OTP=y
177# CONFIG_I2C_COMPAT is not set
178CONFIG_I2C_CHARDEV=y
179# CONFIG_I2C_HELPER_AUTO is not set
180CONFIG_I2C_ALGOPCF=m
181CONFIG_I2C_ALGOPCA=m
182CONFIG_I2C_IMX=y
183CONFIG_SPI=y
184CONFIG_SPI_IMX=y
185CONFIG_GPIO_SYSFS=y
186CONFIG_POWER_SUPPLY=y
187CONFIG_SABRESD_MAX8903=y
188CONFIG_SENSORS_MAX17135=y
189CONFIG_SENSORS_MAG3110=y
190CONFIG_THERMAL=y
191CONFIG_CPU_THERMAL=y
192CONFIG_IMX_THERMAL=y
193CONFIG_DEVICE_THERMAL=y
194CONFIG_WATCHDOG=y
195CONFIG_IMX2_WDT=y
196CONFIG_MFD_DA9052_I2C=y
197CONFIG_MFD_MC13XXX_SPI=y
198CONFIG_MFD_MC13XXX_I2C=y
199CONFIG_MFD_MAX17135=y
200CONFIG_MFD_SI476X_CORE=y
201CONFIG_MFD_STMPE=y
202CONFIG_REGULATOR=y
203CONFIG_REGULATOR_FIXED_VOLTAGE=y
204CONFIG_REGULATOR_ANATOP=y
205CONFIG_REGULATOR_DA9052=y
206CONFIG_REGULATOR_MAX17135=y
207CONFIG_REGULATOR_MC13783=y
208CONFIG_REGULATOR_MC13892=y
209CONFIG_REGULATOR_PFUZE100=y
210CONFIG_MEDIA_SUPPORT=y
211CONFIG_MEDIA_CAMERA_SUPPORT=y
212CONFIG_MEDIA_RADIO_SUPPORT=y
213CONFIG_MEDIA_RC_SUPPORT=y
214CONFIG_RC_DEVICES=y
215CONFIG_IR_GPIO_CIR=y
216CONFIG_MEDIA_USB_SUPPORT=y
217CONFIG_USB_VIDEO_CLASS=m
218CONFIG_V4L_PLATFORM_DRIVERS=y
219CONFIG_VIDEO_MXC_OUTPUT=y
220CONFIG_VIDEO_MXC_CAPTURE=m
221CONFIG_MXC_CAMERA_OV5640=m
222CONFIG_MXC_CAMERA_OV5642=m
223CONFIG_MXC_CAMERA_OV5640_MIPI=m
224CONFIG_MXC_TVIN_ADV7180=m
225CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
226CONFIG_VIDEO_MXC_IPU_OUTPUT=y
227CONFIG_VIDEO_MXC_PXP_V4L2=y
228CONFIG_VIDEO_MXC_CSI_CAMERA=m
229CONFIG_MXC_VADC=m
230CONFIG_SOC_CAMERA=y
231CONFIG_VIDEO_MX3=y
232CONFIG_V4L_MEM2MEM_DRIVERS=y
233CONFIG_VIDEO_CODA=y
234CONFIG_RADIO_SI476X=y
235CONFIG_SOC_CAMERA_OV2640=y
236CONFIG_DRM=y
237CONFIG_DRM_VIVANTE=y
238CONFIG_FB=y
239CONFIG_FB_MXS=y
240CONFIG_BACKLIGHT_LCD_SUPPORT=y
241CONFIG_LCD_CLASS_DEVICE=y
242CONFIG_LCD_L4F00242T03=y
243CONFIG_LCD_PLATFORM=y
244CONFIG_BACKLIGHT_CLASS_DEVICE=y
245CONFIG_BACKLIGHT_PWM=y
246CONFIG_FB_MXC_SYNC_PANEL=y
247CONFIG_FB_MXC_LDB=y
248CONFIG_FB_MXC_MIPI_DSI=y
249CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
250CONFIG_FB_MXC_HDMI=y
251CONFIG_FB_MXC_EINK_PANEL=y
252CONFIG_FB_MXS_SII902X=y
253CONFIG_FB_MXC_DCIC=m
254CONFIG_HANNSTAR_CABC=y
255CONFIG_FRAMEBUFFER_CONSOLE=y
256CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
257CONFIG_LOGO=y
258CONFIG_SOUND=y
259CONFIG_SND=y
260CONFIG_SND_USB_AUDIO=m
261CONFIG_SND_SOC=y
262CONFIG_SND_IMX_SOC=y
263CONFIG_SND_SOC_EUKREA_TLV320=y
264CONFIG_SND_SOC_IMX_CS42888=y
265CONFIG_SND_SOC_IMX_WM8962=y
266CONFIG_SND_SOC_IMX_SGTL5000=y
267CONFIG_SND_SOC_IMX_MQS=y
268CONFIG_SND_SOC_IMX_SPDIF=y
269CONFIG_SND_SOC_IMX_MC13783=y
270CONFIG_SND_SOC_IMX_HDMI=y
271CONFIG_SND_SOC_IMX_SI476X=y
272CONFIG_USB=y
273CONFIG_USB_EHCI_HCD=y
274CONFIG_USB_EHCI_MXC=y
275CONFIG_USB_ACM=m
276CONFIG_USB_STORAGE=y
277CONFIG_USB_CHIPIDEA=y
278CONFIG_USB_CHIPIDEA_UDC=y
279CONFIG_USB_CHIPIDEA_HOST=y
280CONFIG_USB_SERIAL=m
281CONFIG_USB_SERIAL_GENERIC=y
282CONFIG_USB_SERIAL_FTDI_SIO=m
283CONFIG_USB_SERIAL_OPTION=m
284CONFIG_USB_EHSET_TEST_FIXTURE=m
285CONFIG_NOP_USB_XCEIV=y
286CONFIG_USB_MXS_PHY=y
287CONFIG_USB_GADGET=y
288CONFIG_USB_CONFIGFS=m
289CONFIG_USB_CONFIGFS_SERIAL=y
290CONFIG_USB_CONFIGFS_ACM=y
291CONFIG_USB_CONFIGFS_OBEX=y
292CONFIG_USB_CONFIGFS_NCM=y
293CONFIG_USB_CONFIGFS_ECM=y
294CONFIG_USB_CONFIGFS_ECM_SUBSET=y
295CONFIG_USB_CONFIGFS_RNDIS=y
296CONFIG_USB_CONFIGFS_EEM=y
297CONFIG_USB_CONFIGFS_MASS_STORAGE=y
298CONFIG_USB_CONFIGFS_F_LB_SS=y
299CONFIG_USB_CONFIGFS_F_FS=y
300CONFIG_USB_ZERO=m
301CONFIG_USB_ETH=m
302CONFIG_USB_G_NCM=m
303CONFIG_USB_GADGETFS=m
304CONFIG_USB_MASS_STORAGE=m
305CONFIG_USB_G_SERIAL=m
306CONFIG_MMC=y
307CONFIG_MMC_UNSAFE_RESUME=y
308CONFIG_MMC_SDHCI=y
309CONFIG_MMC_SDHCI_PLTFM=y
310CONFIG_MMC_SDHCI_ESDHC_IMX=y
311CONFIG_MXC_IPU=y
312CONFIG_MXC_GPU_VIV=y
313CONFIG_MXC_MIPI_CSI2=y
314CONFIG_MXC_MLB150=m
315CONFIG_NEW_LEDS=y
316CONFIG_LEDS_CLASS=y
317CONFIG_LEDS_GPIO=y
318CONFIG_LEDS_TRIGGERS=y
319CONFIG_LEDS_TRIGGER_TIMER=y
320CONFIG_LEDS_TRIGGER_ONESHOT=y
321CONFIG_LEDS_TRIGGER_HEARTBEAT=y
322CONFIG_LEDS_TRIGGER_BACKLIGHT=y
323CONFIG_LEDS_TRIGGER_GPIO=y
324CONFIG_RTC_CLASS=y
325CONFIG_RTC_INTF_DEV_UIE_EMUL=y
326CONFIG_RTC_DRV_MC13XXX=y
327CONFIG_RTC_DRV_MXC=y
328CONFIG_RTC_DRV_SNVS=y
329CONFIG_DMADEVICES=y
330CONFIG_MXC_PXP_V2=y
331CONFIG_IMX_SDMA=y
332CONFIG_MXS_DMA=y
333CONFIG_STAGING=y
334CONFIG_STAGING_MEDIA=y
335# CONFIG_IOMMU_SUPPORT is not set
336CONFIG_IIO=y
337CONFIG_VF610_ADC=y
338CONFIG_PWM=y
339CONFIG_PWM_IMX=y
340CONFIG_EXT2_FS=y
341CONFIG_EXT2_FS_XATTR=y
342CONFIG_EXT2_FS_POSIX_ACL=y
343CONFIG_EXT2_FS_SECURITY=y
344CONFIG_EXT3_FS=y
345CONFIG_EXT3_FS_POSIX_ACL=y
346CONFIG_EXT3_FS_SECURITY=y
347CONFIG_EXT4_FS=y
348CONFIG_EXT4_FS_POSIX_ACL=y
349CONFIG_EXT4_FS_SECURITY=y
350CONFIG_QUOTA=y
351CONFIG_QUOTA_NETLINK_INTERFACE=y
352# CONFIG_PRINT_QUOTA_WARNING is not set
353CONFIG_AUTOFS4_FS=y
354CONFIG_FUSE_FS=y
355CONFIG_ISO9660_FS=m
356CONFIG_JOLIET=y
357CONFIG_ZISOFS=y
358CONFIG_UDF_FS=m
359CONFIG_MSDOS_FS=m
360CONFIG_VFAT_FS=y
361CONFIG_TMPFS=y
362CONFIG_JFFS2_FS=y
363CONFIG_UBIFS_FS=y
364CONFIG_NFS_FS=y
365CONFIG_NFS_V3_ACL=y
366CONFIG_NFS_V4=y
367CONFIG_ROOT_NFS=y
368CONFIG_NLS_DEFAULT="cp437"
369CONFIG_NLS_CODEPAGE_437=y
370CONFIG_NLS_ASCII=y
371CONFIG_NLS_ISO8859_1=y
372CONFIG_NLS_ISO8859_15=m
373CONFIG_NLS_UTF8=y
374CONFIG_DEBUG_FS=y
375CONFIG_MAGIC_SYSRQ=y
376# CONFIG_SCHED_DEBUG is not set
377# CONFIG_DEBUG_BUGVERBOSE is not set
378# CONFIG_FTRACE is not set
379CONFIG_SECURITYFS=y
380CONFIG_CRYPTO_USER=y
381CONFIG_CRYPTO_TEST=m
382CONFIG_CRYPTO_GCM=y
383CONFIG_CRYPTO_CBC=y
384CONFIG_CRYPTO_CTS=y
385CONFIG_CRYPTO_LRW=y
386CONFIG_CRYPTO_XTS=y
387CONFIG_CRYPTO_MD4=y
388CONFIG_CRYPTO_MD5=y
389CONFIG_CRYPTO_MICHAEL_MIC=y
390CONFIG_CRYPTO_RMD128=y
391CONFIG_CRYPTO_RMD160=y
392CONFIG_CRYPTO_RMD256=y
393CONFIG_CRYPTO_RMD320=y
394CONFIG_CRYPTO_SHA1=y
395CONFIG_CRYPTO_SHA512=y
396CONFIG_CRYPTO_TGR192=y
397CONFIG_CRYPTO_WP512=y
398CONFIG_CRYPTO_BLOWFISH=y
399CONFIG_CRYPTO_CAMELLIA=y
400CONFIG_CRYPTO_DES=y
401CONFIG_CRYPTO_TWOFISH=y
402# CONFIG_CRYPTO_ANSI_CPRNG is not set
403CONFIG_CRYPTO_DEV_FSL_CAAM=y
404CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
405CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
406CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
407CONFIG_CRC_CCITT=m
408CONFIG_CRC_T10DIF=y
409CONFIG_CRC7=m
410CONFIG_LIBCRC32C=m
411CONFIG_FONTS=y
412CONFIG_FONT_8x8=y
413CONFIG_FONT_8x16=y
diff --git a/recipes-kernel/linux/linux-fslc-mx6-rt_3.14-1.0.x.bb b/recipes-kernel/linux/linux-fslc-mx6-rt_3.14-1.0.x.bb
new file mode 100644
index 0000000..af65b72
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-mx6-rt_3.14-1.0.x.bb
@@ -0,0 +1,27 @@
1# Adapted from linux-fslc-mx6_3.14-1.0.x.bb
2
3SUMMARY = "Realtime version of the FSL Community BSP i.MX6 Linux kernel with backported features and fixes"
4DESCRIPTION = "Linux kernel based on Freescale 3.14.28 GA release, used by FSL Community BSP in order to \
5provide support for i.MX6 based platforms and include official Linux kernel stable updates, backported \
6features and fixes coming from the vendors, kernel community or FSL Community itself. \
7In addition, this kernel has the realtime patch (PREEMPT_RT) applied."
8
9include linux-fslc.inc
10
11PV .= "+git${SRCPV}"
12
13SRCBRANCH = "3.14-1.0.x-mx6"
14SRCREV = "964e5a3e65936e07f5d5189d233b8f8843687776"
15
16SRC_URI += "\
17 https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/older/patch-3.14.51-rt52.patch.gz;name=rt-patch1 \
18 file://0001-fix-build.patch \
19 file://0002-fix-build-with-rt-enabled.patch \
20 file://0003-no-split-ptlocks.patch \
21 file://0004-imx-sdma-channel-use-raw-spinlock.patch \
22"
23
24SRC_URI[rt-patch1.md5sum] = "236a97a3722c21403bbe60350e9be184"
25SRC_URI[rt-patch1.sha256sum] = "a454c6fabbd3a0698feec6a1bb71bc8af8d8f40a424ca071b30bee40c32f2c20"
26
27COMPATIBLE_MACHINE = "(mx6)"