summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-12-10 17:32:06 +0100
committerPhilippe Schenker <philippe.schenker@toradex.com>2018-12-27 16:45:52 +0100
commit58af5f8ccb2f29acf4fd0182521f793c9e10d68e (patch)
treee7ec9f88ce462e8a0a831f9e77b2c36858dd1725 /recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x
parente25cc381c7ceeb325a038308c414975844ac7864 (diff)
linux kernel: update to 4.9.144 based fslc
Update to L4.9.123-2.3.0_8mm_ga release. Update to branch toradex_4.9-2.3.x-imx based on 4.9-2.3.x-imx branch of linux-fslc currently re-based to 4.9.144. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Philippe Schenker <philippe.schenker@toradex.com>
Diffstat (limited to 'recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x')
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0002-mm-Work-around-the-oops-below-by-disabling-split-ptl.patch153
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001.patch11
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001b.patch34
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002.patch95
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002b.patch11
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002c.patch116
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002d.patch18
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002e.patch58
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002f.patch42
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch53
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002h.patch10
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002i.patch114
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002j.patch239
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002k.patch31
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002l.patch19
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/003.patch39
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/004.patch86
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/apalis-imx6/defconfig384
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6/defconfig377
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6ull/defconfig384
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/mx7/defconfig388
21 files changed, 2662 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0002-mm-Work-around-the-oops-below-by-disabling-split-ptl.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0002-mm-Work-around-the-oops-below-by-disabling-split-ptl.patch
new file mode 100644
index 0000000..27e2137
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0002-mm-Work-around-the-oops-below-by-disabling-split-ptl.patch
@@ -0,0 +1,153 @@
+From e60420657d5f617d229c4a0969b48ad6ccb32391 Mon Sep 17 00:00:00 2001
+From: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+Date: Wed, 24 Jan 2018 16:38:05 +0100
+Subject: [PATCH 2/2] mm: Work around the oops below by disabling split ptlocks
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+[ 12.468598] Unable to handle kernel NULL pointer dereference at virtual address 0000000c
+[ 12.476703] pgd = a9110000
+[ 12.479416] [0000000c] *pgd=390c2831, *pte=00000000, *ppte=00000000
+[ 12.485755] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
+[ 12.485761] Modules linked in:
+[ 12.485773] CPU: 2 PID: 625 Comm: X Not tainted 4.9.76-rt61-02456-g58db19f39d5a-dirty #187
+[ 12.485777] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
+[ 12.485782] task: a8c48000 task.stack: a8ce6000
+[ 12.485804] PC is at rt_spin_lock+0x2c/0x60
+[ 12.485811] LR is at rt_spin_lock+0x14/0x60
+[ 12.485818] pc : [<8086bafc>] lr : [<8086bae4>] psr: 200c0013
+[ 12.485818] sp : a8ce7808 ip : a8ce7808 fp : a8ce781c
+[ 12.485823] r10: abfb9000 r9 : abfb9000 r8 : 00000000
+[ 12.485827] r7 : a8ce7878 r6 : 00000000 r5 : 00000000 r4 : 00000000
+[ 12.485831] r3 : 0000000c r2 : a8c48000 r1 : 80a1c198 r0 : 00000000
+[ 12.485838] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
+[ 12.485844] Control: 10c5387d Table: 3911004a DAC: 00000051
+[ 12.485849] Process X (pid: 625, stack limit = 0xa8ce6210)
+[ 12.485853] Stack: (0xa8ce7808 to 0xa8ce8000)
+[ 12.485863] 7800: 00000000 00000000 a8ce784c a8ce7820 80696ca8 8086badc
+[ 12.485872] 7820: 00000000 a8ce7878 b4a00000 a8708200 a8708200 a8715600 00000000 00000000
+[ 12.485880] 7840: a8ce7874 a8ce7850 80697f18 80696bf4 00000001 a8ce7850 a87082a0 a872e400
+[ 12.485889] 7860: 00000000 00000000 a8ce78ac a8ce7878 806bf0cc 80697ef8 8086bf38 8086a2e4
+[ 12.485897] 7880: a8ce78ac a8ce7890 80697ac0 8086bf34 a872e400 00000000 00000000 a8708200
+[ 12.485906] 78a0: a8ce78ec a8ce78b0 806bf520 806bf0a4 00070900 00140021 00008000 8086a2e4
+[ 12.485914] 78c0: a8ce78ec a8ce78d0 a872e400 00000000 00000000 a8708200 a8715600 00000000
+[ 12.485923] 78e0: a8ce7964 a8ce78f0 806c0650 806bf2d8 80a8671c 00000000 00000300 00000039
+[ 12.485931] 7900: 00000001 00000000 a8ce7964 00000000 806a7a5c 00000271 00000271 00070100
+[ 12.485939] 7920: 00000320 00005007 e02c7eca c1399eff 020fb2db 00000000 8086bf38 a872e400
+[ 12.485949] 7940: 00000000 00000000 a872e400 a8715600 a8ce7e98 00afe280 a8ce7984 a8ce7968
+[ 12.485955] 7960: 806996a0 806bfbec 00000000 00000000 00000000 a8715600 a8ce79a4 a8ce7988
+[ 12.485964] 7980: 806a5250 806995d4 a8715600 00000000 00000000 00000001 a8ce7c94 a8ce79a8
+[ 12.485972] 79a0: 806a5850 806a5214 a6037e9c a90cecb8 a8ce79ec a8ce79c0 8010a174 8010b6a0
+[ 12.485979] 79c0: 00000000 8016b848 a8ce7a3c a8ce7a28 80149d70 8016b848 00000001 a8ce79d8
+[ 12.485987] 79e0: 00000000 00000000 8010b6c4 8010a104 00000000 00000001 00000000 00000000
+[ 12.485995] 7a00: 024002c0 a8ce7b68 a8ce7a44 00000000 00000000 00000000 00000000 00000000
+[ 12.486003] 7a20: 00000000 00afe280 00000000 8020c418 a8ce7a4c ffffe000 a8ce7a64 a8ce7a48
+[ 12.486012] 7a40: 80149d78 80169cd0 a8000fc0 a8000fc0 a8ce7a84 a8ce7a60 8010b6c4 8010a104
+[ 12.486020] 7a60: 00000000 00000001 8086b758 2abc1000 ffffe000 a8ce7b68 a8ce7ab4 a8ce7a88
+[ 12.486028] 7a80: 8010a174 8010b6a0 00000000 8020c744 a8ce7b64 a8ce7af0 80149d70 8020c744
+[ 12.486038] 7aa0: a8ce7b74 ffffe000 a8ce7ad4 a8ce7ab8 80149d78 80169cd0 ab71708c 80b5608c
+[ 12.486048] 7ac0: ab71708c 2abc1000 a8ce7aec a8ce7ad8 8086b758 80149ca8 a929e7c0 80b5608c
+[ 12.486057] 7ae0: a8ce7b64 a8ce7af0 8020c794 80149bc0 024002c0 a8001f00 ffffe000 00000000
+[ 12.486067] 7b00: ffffe000 00400040 a8ce7b24 a8ce7b18 00000001 a8ce7b10 00000001 a8ce7b18
+[ 12.486077] 7b20: a96e3800 00400040 00000001 a8ce7b28 00000001 a8ce7b30 80b5ab00 80b5ab00
+[ 12.486087] 7b40: a8ce7b68 a8001f00 a929e7c0 a8ce7b68 a8001f00 60070013 a8ce7b94 a8ce7b68
+[ 12.486097] 7b60: 8020cb04 8020acfc 00000001 a8ce7b68 00000001 a8ce7b70 00000001 a8ce7b78
+[ 12.486106] 7b80: 00000001 a8ce7b80 a96e3800 a872e200 00000271 00000000 a8ce7bfc 00000008
+[ 12.486113] 7ba0: 00000001 a8ce7ba0 00000001 a8ce7ba8 a96d0080 00000005 a8708200 a8ce7c18
+[ 12.486120] 7bc0: 00000001 a8ce7bc0 00000001 a8ce7bc8 00000000 00000000 a872e200 00000006
+[ 12.486127] 7be0: 00000271 00000008 a8ce7c04 a8ce7bf8 8086bf38 8086a2e4 a8ce7c14 a8ce7c08
+[ 12.486134] 7c00: ffffe000 00000000 ffffe000 80c0471c a8ce7c2c a8ce7c20 8041f3b8 8041f22c
+[ 12.486140] 7c20: a8ce7c54 a8ce7c30 80127bd8 8041f3a4 80b522b0 00000000 ffffe000 00000190
+[ 12.486147] 7c40: a8ce7c5c a8ce7c50 ffffffff a870be80 a8ce7c6c a8ce7c60 8086a598 8086a4d4
+[ 12.486154] 7c60: a8ce7c7c a8ce7c70 8086befc a8ce7d48 a872e200 a8708600 00000001 a8715600
+[ 12.486160] 7c80: a8ce7e98 a871edb0 a8ce7d04 a8ce7c98 806a3bf0 806a57e4 00000000 00000271
+[ 12.486167] 7ca0: 00000000 00000000 a8ce7e90 a8ce7e98 a8ce7ccc a8ce7cc0 80169c98 a8ce7e90
+[ 12.486173] 7cc0: 00000000 00000000 00000000 00000271 a9066108 a8c3c768 a8ce7d1c 00000051
+[ 12.486180] 7ce0: a9099300 a86ec000 a8ce7d28 00000051 a8ce6000 a871edb0 a8ce7d1c a8ce7d08
+[ 12.486187] 7d00: 806a4648 806a317c 00000051 a9099300 a8ce7efc a8ce7d20 8069dac0 806a4524
+[ 12.486193] 7d20: ab71be2c a9164d80 7e846800 00000000 00000190 00000000 7e846800 00000000
+[ 12.486200] 7d40: 00000190 00000000 00000013 00000002 00000000 0ba2e8ba 0bb2ecbb 0bc2f0bc
+[ 12.486206] 7d60: 0bd2f4bd 0be2f8be 00000000 0c0300c0 7e846890 00000000 7e8468e0 00000000
+[ 12.486212] 7d80: 7e846840 00000000 00000000 00000000 00000001 76f6298c 00000001 76721a7c
+[ 12.486219] 7da0: 0000021b 7672376c 00af76b8 7e8468ac 7e8468a8 0d2348d2 0d334cd3 0e0ef440
+[ 12.486226] 7dc0: 7672376c 7671f8cc 007077a2 76721a7c 76724e4d 7e846918 00000000 00000000
+[ 12.486232] 7de0: aaaaaaab 00000000 00aee6f8 00000025 00000000 00000000 00000001 0e0ef440
+[ 12.486239] 7e00: 00000000 00af7870 7e846918 76724e4d 7e84698c 7e846920 7e846974 76f63424
+[ 12.486245] 7e20: 7e846920 76f8aa64 00afe280 00000000 00000001 00000000 00000001 00af76b8
+[ 12.486255] 7e40: 76f89fac 004e2000 aaaaaaab 00000000 00aee6f8 00000000 00af7870 00af76b8
+[ 12.486265] 7e60: 041a5454 2ce101bb 76721a7c 00af76b8 7e846980 766bd155 00000000 00000000
+[ 12.486274] 7e80: 00000000 00000000 00000000 00000001 0000001d 00000000 00000001 7671e000
+[ 12.486283] 7ea0: 0010b4d8 76a034d0 00000000 00000001 7e8469ec 00b14e24 00b14de8 76f68858
+[ 12.486292] 7ec0: 00000000 00000001 00000001 00000000 767220cc 76721a7c 0000081f a913c200
+[ 12.486301] 7ee0: 7e846798 0000000d 00007530 0000000d a8ce7f7c a8ce7f00 80225dec 8069d998
+[ 12.486310] 7f00: 80234f94 80234da0 a8ce7f54 a8ce7f18 8021549c 80234f74 00000020 00000000
+[ 12.486317] 7f20: 8014274c a904d508 a904d500 a8c484a0 80c5a460 a8c484d0 a8c48000 00000000
+[ 12.486324] 7f40: a8ce6000 00000000 a8ce7f64 a8ce7f58 8021559c a913c200 a913c200 0000000d
+[ 12.486330] 7f60: 00007530 7e846798 a8ce6000 00000000 a8ce7fa4 a8ce7f80 80226650 80225d50
+[ 12.486337] 7f80: 00002710 00007530 76839978 00000036 80107e44 a8ce6000 00000000 a8ce7fa8
+[ 12.486346] 7fa0: 80107c60 80226620 00002710 00007530 0000000d 00007530 7e846798 00afe400
+[ 12.486354] 7fc0: 00002710 00007530 76839978 00000036 00b3d518 7e8469ec 00000000 00b14de8
+[ 12.486360] 7fe0: 7682937c 7e846784 76812890 76bab84c 200c0010 0000000d 00000000 00000000
+[ 12.486364] Backtrace:
+[ 12.486379] [<8086bad0>] (rt_spin_lock) from [<80696ca8>] (_QueryProcessPageTable+0xc0/0x178)
+[ 12.486383] r5:00000000 r4:00000000
+[ 12.486393] [<80696be8>] (_QueryProcessPageTable) from [<80697f18>] (gckOS_GetPhysicalAddress+0x2c/0xb8)
+[ 12.486400] r10:00000000 r9:00000000 r8:a8715600 r7:a8708200 r6:a8708200 r5:b4a00000
+[ 12.486404] r4:a8ce7878 r3:00000000
+[ 12.486416] [<80697eec>] (gckOS_GetPhysicalAddress) from [<806bf0cc>] (gckHARDWARE_SetMMU+0x34/0x234)
+[ 12.486421] r6:00000000 r5:00000000 r4:a872e400
+[ 12.486429] [<806bf098>] (gckHARDWARE_SetMMU) from [<806bf520>] (gckHARDWARE_InitializeHardware+0x254/0x914)
+[ 12.486434] r7:a8708200 r6:00000000 r5:00000000 r4:a872e400
+[ 12.486442] [<806bf2cc>] (gckHARDWARE_InitializeHardware) from [<806c0650>] (gckHARDWARE_SetPowerManagementState+0xa70/0xc44)
+[ 12.486448] r9:00000000 r8:a8715600 r7:a8708200 r6:00000000 r5:00000000 r4:a872e400
+[ 12.486458] [<806bfbe0>] (gckHARDWARE_SetPowerManagementState) from [<806996a0>] (gckOS_Broadcast+0xd8/0x130)
+[ 12.486464] r10:00afe280 r9:a8ce7e98 r8:a8715600 r7:a872e400 r6:00000000 r5:00000000
+[ 12.486467] r4:a872e400
+[ 12.486479] [<806995c8>] (gckOS_Broadcast) from [<806a5250>] (gckCOMMAND_EnterCommit+0x48/0xcc)
+[ 12.486482] r4:a8715600
+[ 12.486489] [<806a5208>] (gckCOMMAND_EnterCommit) from [<806a5850>] (gckCOMMAND_Commit+0x78/0xf60)
+[ 12.486494] r7:00000001 r6:00000000 r5:00000000 r4:a8715600
+[ 12.486502] [<806a57d8>] (gckCOMMAND_Commit) from [<806a3bf0>] (gckKERNEL_Dispatch+0xa80/0x13a8)
+[ 12.486509] r10:a871edb0 r9:a8ce7e98 r8:a8715600 r7:00000001 r6:a8708600 r5:a872e200
+[ 12.486511] r4:a8ce7d48
+[ 12.486518] [<806a3170>] (gckKERNEL_Dispatch) from [<806a4648>] (gckDEVICE_Dispatch+0x130/0x134)
+[ 12.486525] r10:a871edb0 r9:a8ce6000 r8:00000051 r7:a8ce7d28 r6:a86ec000 r5:a9099300
+[ 12.486527] r4:00000051
+[ 12.486534] [<806a4518>] (gckDEVICE_Dispatch) from [<8069dac0>] (drv_ioctl+0x134/0x284)
+[ 12.486537] r5:a9099300 r4:00000051
+[ 12.486548] [<8069d98c>] (drv_ioctl) from [<80225dec>] (do_vfs_ioctl+0xa8/0x8d0)
+[ 12.486554] r8:0000000d r7:00007530 r6:0000000d r5:7e846798 r4:a913c200
+[ 12.486561] [<80225d44>] (do_vfs_ioctl) from [<80226650>] (SyS_ioctl+0x3c/0x60)
+[ 12.486568] r10:00000000 r9:a8ce6000 r8:7e846798 r7:00007530 r6:0000000d r5:a913c200
+[ 12.486570] r4:a913c200
+[ 12.486581] [<80226614>] (SyS_ioctl) from [<80107c60>] (ret_fast_syscall+0x0/0x50)
+[ 12.486587] r9:a8ce6000 r8:80107e44 r7:00000036 r6:76839978 r5:00007530 r4:00002710
+[ 12.486594] Code: e284300c e3c2203f e5922010 f593f000 (e193cf9f)
+[ 13.331699] ---[ end trace 0000000000000002 ]---
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> [updated for 3.14.28]
+Signed-off-by: Stefan Agner <stefan.agner@toradex.com> [updated for 4.9]
+---
+ include/linux/mm_types.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
+index 08bde1a7a987..c9e1a95814f9 100644
+--- a/include/linux/mm_types.h
++++ b/include/linux/mm_types.h
+@@ -25,7 +25,7 @@
+ struct address_space;
+ struct mem_cgroup;
+
+-#define USE_SPLIT_PTE_PTLOCKS (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
++#define USE_SPLIT_PTE_PTLOCKS (0)
+ #define USE_SPLIT_PMD_PTLOCKS (USE_SPLIT_PTE_PTLOCKS && \
+ IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK))
+ #define ALLOC_SPLIT_PTLOCKS (SPINLOCK_SIZE > BITS_PER_LONG/8)
+--
+2.15.1
+
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001.patch
new file mode 100644
index 0000000..538718a
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001.patch
@@ -0,0 +1,11 @@
+--- b/init/main.c
++++ a/init/main.c
+@@ -915,7 +915,7 @@
+
+ static noinline void __init kernel_init_freeable(void);
+
++#if defined(CONFIG_DEBUG_RODATA) || defined(CONFIG_SET_MODULE_RONX)
+-#if defined(CONFIG_DEBUG_RODATA) || defined(CONFIG_DEBUG_SET_MODULE_RONX)
+ bool rodata_enabled __ro_after_init = true;
+ static int __init set_debug_rodata(char *str)
+ {
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001b.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001b.patch
new file mode 100644
index 0000000..400f7fc
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/001b.patch
@@ -0,0 +1,34 @@
+--- b/include/linux/cpu.h
++++ a/include/linux/cpu.h
+@@ -29,7 +29,7 @@
+ };
+
+ extern void boot_cpu_init(void);
++extern void boot_cpu_state_init(void);
+-extern void boot_cpu_hotplug_init(void);
+
+ extern int register_cpu(struct cpu *cpu, int num);
+ extern struct device *get_cpu_device(unsigned cpu);
+--- b/init/main.c
++++ a/init/main.c
+@@ -509,8 +509,8 @@
+ setup_command_line(command_line);
+ setup_nr_cpu_ids();
+ setup_per_cpu_areas();
++ boot_cpu_state_init();
+ smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
+- boot_cpu_hotplug_init();
+
+ build_all_zonelists(NULL, NULL);
+ page_alloc_init();
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -1944,7 +1944,7 @@
+ /*
+ * Must be called _AFTER_ setting up the per_cpu areas
+ */
++void __init boot_cpu_state_init(void)
+-void __init boot_cpu_hotplug_init(void)
+ {
+ per_cpu_ptr(&cpuhp_state, smp_processor_id())->state = CPUHP_ONLINE;
+ }
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002.patch
new file mode 100644
index 0000000..a61c5e1
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002.patch
@@ -0,0 +1,95 @@
+--- b/arch/x86/include/asm/idle.h
++++ a/arch/x86/include/asm/idle.h
+@@ -1,6 +1,13 @@
+ #ifndef _ASM_X86_IDLE_H
+ #define _ASM_X86_IDLE_H
+
++#define IDLE_START 1
++#define IDLE_END 2
++
++struct notifier_block;
++void idle_notifier_register(struct notifier_block *n);
++void idle_notifier_unregister(struct notifier_block *n);
++
+ #ifdef CONFIG_X86_64
+ void enter_idle(void);
+ void exit_idle(void);
+--- b/arch/x86/kernel/process.c
++++ a/arch/x86/kernel/process.c
+@@ -68,6 +68,19 @@
+
+ #ifdef CONFIG_X86_64
+ static DEFINE_PER_CPU(unsigned char, is_idle);
++static ATOMIC_NOTIFIER_HEAD(idle_notifier);
++
++void idle_notifier_register(struct notifier_block *n)
++{
++ atomic_notifier_chain_register(&idle_notifier, n);
++}
++EXPORT_SYMBOL_GPL(idle_notifier_register);
++
++void idle_notifier_unregister(struct notifier_block *n)
++{
++ atomic_notifier_chain_unregister(&idle_notifier, n);
++}
++EXPORT_SYMBOL_GPL(idle_notifier_unregister);
+ #endif
+
+ /*
+@@ -384,14 +397,14 @@
+ void enter_idle(void)
+ {
+ this_cpu_write(is_idle, 1);
++ atomic_notifier_call_chain(&idle_notifier, IDLE_START, NULL);
+- idle_notifier_call_chain(IDLE_START);
+ }
+
+ static void __exit_idle(void)
+ {
+ if (x86_test_and_clear_bit_percpu(0, is_idle) == 0)
+ return;
++ atomic_notifier_call_chain(&idle_notifier, IDLE_END, NULL);
+- idle_notifier_call_chain(IDLE_END);
+ }
+
+ /* Called from interrupts to signify idle end */
+--- b/include/linux/cpu.h
++++ a/include/linux/cpu.h
+@@ -276,11 +276,4 @@
+ static inline void cpu_smt_check_topology(void) { }
+ #endif
+
+-#define IDLE_START 1
+-#define IDLE_END 2
+-
+-void idle_notifier_register(struct notifier_block *n);
+-void idle_notifier_unregister(struct notifier_block *n);
+-void idle_notifier_call_chain(unsigned long val);
+-
+ #endif /* _LINUX_CPU_H_ */
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -2206,23 +2206,3 @@
+ #endif
+ this_cpu_write(cpuhp_state.state, CPUHP_ONLINE);
+ }
+-
+-static ATOMIC_NOTIFIER_HEAD(idle_notifier);
+-
+-void idle_notifier_register(struct notifier_block *n)
+-{
+- atomic_notifier_chain_register(&idle_notifier, n);
+-}
+-EXPORT_SYMBOL_GPL(idle_notifier_register);
+-
+-void idle_notifier_unregister(struct notifier_block *n)
+-{
+- atomic_notifier_chain_unregister(&idle_notifier, n);
+-}
+-EXPORT_SYMBOL_GPL(idle_notifier_unregister);
+-
+-void idle_notifier_call_chain(unsigned long val)
+-{
+- atomic_notifier_call_chain(&idle_notifier, val, NULL);
+-}
+-EXPORT_SYMBOL_GPL(idle_notifier_call_chain);
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002b.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002b.patch
new file mode 100644
index 0000000..1463abf
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002b.patch
@@ -0,0 +1,11 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -2201,8 +2201,6 @@
+ */
+ void __init boot_cpu_hotplug_init(void)
+ {
+-#ifdef CONFIG_SMP
+ this_cpu_write(cpuhp_state.booted_once, true);
+-#endif
+ this_cpu_write(cpuhp_state.state, CPUHP_ONLINE);
+ }
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002c.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002c.patch
new file mode 100644
index 0000000..27951a0
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002c.patch
@@ -0,0 +1,116 @@
+--- b/arch/x86/kernel/cpu/bugs.c
++++ a/arch/x86/kernel/cpu/bugs.c
+@@ -61,7 +61,7 @@
+ * identify_boot_cpu() initialized SMT support information, let the
+ * core code know.
+ */
++ cpu_smt_check_topology();
+- cpu_smt_check_topology_early();
+
+ if (!IS_ENABLED(CONFIG_SMP)) {
+ pr_info("CPU: ");
+--- b/include/linux/cpu.h
++++ a/include/linux/cpu.h
+@@ -267,12 +267,10 @@
+ #if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
+ extern enum cpuhp_smt_control cpu_smt_control;
+ extern void cpu_smt_disable(bool force);
+-extern void cpu_smt_check_topology_early(void);
+ extern void cpu_smt_check_topology(void);
+ #else
+ # define cpu_smt_control (CPU_SMT_ENABLED)
+ static inline void cpu_smt_disable(bool force) { }
+-static inline void cpu_smt_check_topology_early(void) { }
+ static inline void cpu_smt_check_topology(void) { }
+ #endif
+
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -360,8 +360,6 @@
+ enum cpuhp_smt_control cpu_smt_control __read_mostly = CPU_SMT_ENABLED;
+ EXPORT_SYMBOL_GPL(cpu_smt_control);
+
+-static bool cpu_smt_available __read_mostly;
+-
+ void __init cpu_smt_disable(bool force)
+ {
+ if (cpu_smt_control == CPU_SMT_FORCE_DISABLED ||
+@@ -378,28 +376,14 @@
+
+ /*
+ * The decision whether SMT is supported can only be done after the full
++ * CPU identification. Called from architecture code.
+- * CPU identification. Called from architecture code before non boot CPUs
+- * are brought up.
+ */
++void __init cpu_smt_check_topology(void)
+-void __init cpu_smt_check_topology_early(void)
+ {
+ if (!topology_smt_supported())
+ cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
+ }
+
+-/*
+- * If SMT was disabled by BIOS, detect it here, after the CPUs have been
+- * brought online. This ensures the smt/l1tf sysfs entries are consistent
+- * with reality. cpu_smt_available is set to true during the bringup of non
+- * boot CPUs when a SMT sibling is detected. Note, this may overwrite
+- * cpu_smt_control's previous setting.
+- */
+-void __init cpu_smt_check_topology(void)
+-{
+- if (!cpu_smt_available)
+- cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
+-}
+-
+ static int __init smt_cmdline_disable(char *str)
+ {
+ cpu_smt_disable(str && !strcmp(str, "force"));
+@@ -409,18 +393,10 @@
+
+ static inline bool cpu_smt_allowed(unsigned int cpu)
+ {
++ if (cpu_smt_control == CPU_SMT_ENABLED)
+- if (topology_is_primary_thread(cpu))
+ return true;
+
++ if (topology_is_primary_thread(cpu))
+- /*
+- * If the CPU is not a 'primary' thread and the booted_once bit is
+- * set then the processor has SMT support. Store this information
+- * for the late check of SMT support in cpu_smt_check_topology().
+- */
+- if (per_cpu(cpuhp_state, cpu).booted_once)
+- cpu_smt_available = true;
+-
+- if (cpu_smt_control == CPU_SMT_ENABLED)
+ return true;
+
+ /*
+@@ -2087,6 +2063,15 @@
+
+ static int __init cpu_smt_state_init(void)
+ {
++ /*
++ * If SMT was disabled by BIOS, detect it here, after the CPUs have
++ * been brought online. This ensures the smt/l1tf sysfs entries are
++ * consistent with reality. Note this may overwrite cpu_smt_control's
++ * previous setting.
++ */
++ if (topology_max_smt_threads() == 1)
++ cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
++
+ return sysfs_create_group(&cpu_subsys.dev_root->kobj,
+ &cpuhp_smt_attr_group);
+ }
+--- b/kernel/smp.c
++++ a/kernel/smp.c
+@@ -564,8 +564,6 @@
+ cpu_up(cpu);
+ }
+
+- /* Final decision about SMT support */
+- cpu_smt_check_topology();
+ /* Any cleanup work */
+ smp_announce();
+ smp_cpus_done(setup_max_cpus);
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002d.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002d.patch
new file mode 100644
index 0000000..853223c
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002d.patch
@@ -0,0 +1,18 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -2063,15 +2063,6 @@
+
+ static int __init cpu_smt_state_init(void)
+ {
+- /*
+- * If SMT was disabled by BIOS, detect it here, after the CPUs have
+- * been brought online. This ensures the smt/l1tf sysfs entries are
+- * consistent with reality. Note this may overwrite cpu_smt_control's
+- * previous setting.
+- */
+- if (topology_max_smt_threads() == 1)
+- cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
+-
+ return sysfs_create_group(&cpu_subsys.dev_root->kobj,
+ &cpuhp_smt_attr_group);
+ }
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002e.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002e.patch
new file mode 100644
index 0000000..88419fc
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002e.patch
@@ -0,0 +1,58 @@
+--- b/arch/x86/kernel/cpu/bugs.c
++++ a/arch/x86/kernel/cpu/bugs.c
+@@ -57,12 +57,6 @@
+ {
+ identify_boot_cpu();
+
+- /*
+- * identify_boot_cpu() initialized SMT support information, let the
+- * core code know.
+- */
+- cpu_smt_check_topology();
+-
+ if (!IS_ENABLED(CONFIG_SMP)) {
+ pr_info("CPU: ");
+ print_cpu_info(&boot_cpu_data);
+--- b/include/linux/cpu.h
++++ a/include/linux/cpu.h
+@@ -267,11 +267,9 @@
+ #if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
+ extern enum cpuhp_smt_control cpu_smt_control;
+ extern void cpu_smt_disable(bool force);
+-extern void cpu_smt_check_topology(void);
+ #else
+ # define cpu_smt_control (CPU_SMT_ENABLED)
+ static inline void cpu_smt_disable(bool force) { }
+-static inline void cpu_smt_check_topology(void) { }
+ #endif
+
+ #endif /* _LINUX_CPU_H_ */
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -374,16 +374,6 @@
+ }
+ }
+
+-/*
+- * The decision whether SMT is supported can only be done after the full
+- * CPU identification. Called from architecture code.
+- */
+-void __init cpu_smt_check_topology(void)
+-{
+- if (!topology_smt_supported())
+- cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
+-}
+-
+ static int __init smt_cmdline_disable(char *str)
+ {
+ cpu_smt_disable(str && !strcmp(str, "force"));
+@@ -2063,6 +2053,9 @@
+
+ static int __init cpu_smt_state_init(void)
+ {
++ if (!topology_smt_supported())
++ cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
++
+ return sysfs_create_group(&cpu_subsys.dev_root->kobj,
+ &cpuhp_smt_attr_group);
+ }
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002f.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002f.patch
new file mode 100644
index 0000000..f50b1aa
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002f.patch
@@ -0,0 +1,42 @@
+--- b/include/linux/cpu.h
++++ a/include/linux/cpu.h
+@@ -266,10 +266,8 @@
+
+ #if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
+ extern enum cpuhp_smt_control cpu_smt_control;
+-extern void cpu_smt_disable(bool force);
+ #else
+ # define cpu_smt_control (CPU_SMT_ENABLED)
+-static inline void cpu_smt_disable(bool force) { }
+ #endif
+
+ #endif /* _LINUX_CPU_H_ */
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -360,23 +360,13 @@
+ enum cpuhp_smt_control cpu_smt_control __read_mostly = CPU_SMT_ENABLED;
+ EXPORT_SYMBOL_GPL(cpu_smt_control);
+
++static int __init smt_cmdline_disable(char *str)
+-void __init cpu_smt_disable(bool force)
+ {
++ cpu_smt_control = CPU_SMT_DISABLED;
++ if (str && !strcmp(str, "force")) {
+- if (cpu_smt_control == CPU_SMT_FORCE_DISABLED ||
+- cpu_smt_control == CPU_SMT_NOT_SUPPORTED)
+- return;
+-
+- if (force) {
+ pr_info("SMT: Force disabled\n");
+ cpu_smt_control = CPU_SMT_FORCE_DISABLED;
+- } else {
+- cpu_smt_control = CPU_SMT_DISABLED;
+ }
+-}
+-
+-static int __init smt_cmdline_disable(char *str)
+-{
+- cpu_smt_disable(str && !strcmp(str, "force"));
+ return 0;
+ }
+ early_param("nosmt", smt_cmdline_disable);
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch
new file mode 100644
index 0000000..714e97f
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch
@@ -0,0 +1,53 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -1917,15 +1917,6 @@
+ kobject_uevent(&dev->kobj, KOBJ_OFFLINE);
+ }
+
+-static void cpuhp_online_cpu_device(unsigned int cpu)
+-{
+- struct device *dev = get_cpu_device(cpu);
+-
+- dev->offline = false;
+- /* Tell user space about the state change */
+- kobject_uevent(&dev->kobj, KOBJ_ONLINE);
+-}
+-
+ static int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval)
+ {
+ int cpu, ret = 0;
+@@ -1958,24 +1949,11 @@
+ return ret;
+ }
+
++static void cpuhp_smt_enable(void)
+-static int cpuhp_smt_enable(void)
+ {
+- int cpu, ret = 0;
+-
+ cpu_maps_update_begin();
+ cpu_smt_control = CPU_SMT_ENABLED;
+- for_each_present_cpu(cpu) {
+- /* Skip online CPUs and CPUs on offline nodes */
+- if (cpu_online(cpu) || !node_online(cpu_to_node(cpu)))
+- continue;
+- ret = _cpu_up(cpu, 0, CPUHP_ONLINE);
+- if (ret)
+- break;
+- /* See comment in cpuhp_smt_disable() */
+- cpuhp_online_cpu_device(cpu);
+- }
+ cpu_maps_update_done();
+- return ret;
+ }
+
+ static ssize_t
+@@ -2006,7 +1984,7 @@
+ if (ctrlval != cpu_smt_control) {
+ switch (ctrlval) {
+ case CPU_SMT_ENABLED:
++ cpuhp_smt_enable();
+- ret = cpuhp_smt_enable();
+ break;
+ case CPU_SMT_DISABLED:
+ case CPU_SMT_FORCE_DISABLED:
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002h.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002h.patch
new file mode 100644
index 0000000..578a370
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002h.patch
@@ -0,0 +1,10 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -358,7 +358,6 @@
+
+ #ifdef CONFIG_HOTPLUG_SMT
+ enum cpuhp_smt_control cpu_smt_control __read_mostly = CPU_SMT_ENABLED;
+-EXPORT_SYMBOL_GPL(cpu_smt_control);
+
+ static int __init smt_cmdline_disable(char *str)
+ {
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002i.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002i.patch
new file mode 100644
index 0000000..0733908
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002i.patch
@@ -0,0 +1,114 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -54,7 +54,6 @@
+ bool rollback;
+ bool single;
+ bool bringup;
+- bool booted_once;
+ struct hlist_node *node;
+ enum cpuhp_state cb_state;
+ int result;
+@@ -356,40 +355,6 @@
+ EXPORT_SYMBOL_GPL(cpu_hotplug_enable);
+ #endif /* CONFIG_HOTPLUG_CPU */
+
+-#ifdef CONFIG_HOTPLUG_SMT
+-enum cpuhp_smt_control cpu_smt_control __read_mostly = CPU_SMT_ENABLED;
+-
+-static int __init smt_cmdline_disable(char *str)
+-{
+- cpu_smt_control = CPU_SMT_DISABLED;
+- if (str && !strcmp(str, "force")) {
+- pr_info("SMT: Force disabled\n");
+- cpu_smt_control = CPU_SMT_FORCE_DISABLED;
+- }
+- return 0;
+-}
+-early_param("nosmt", smt_cmdline_disable);
+-
+-static inline bool cpu_smt_allowed(unsigned int cpu)
+-{
+- if (cpu_smt_control == CPU_SMT_ENABLED)
+- return true;
+-
+- if (topology_is_primary_thread(cpu))
+- return true;
+-
+- /*
+- * On x86 it's required to boot all logical CPUs at least once so
+- * that the init code can get a chance to set CR4.MCE on each
+- * CPU. Otherwise, a broadacasted MCE observing CR4.MCE=0b on any
+- * core will shutdown the machine.
+- */
+- return !per_cpu(cpuhp_state, cpu).booted_once;
+-}
+-#else
+-static inline bool cpu_smt_allowed(unsigned int cpu) { return true; }
+-#endif
+-
+ /* Need to know about CPUs going up/down? */
+ int register_cpu_notifier(struct notifier_block *nb)
+ {
+@@ -466,16 +431,6 @@
+ stop_machine_unpark(cpu);
+ kthread_unpark(st->thread);
+
+- /*
+- * SMT soft disabling on X86 requires to bring the CPU out of the
+- * BIOS 'wait for SIPI' state in order to set the CR4.MCE bit. The
+- * CPU marked itself as booted_once in cpu_notify_starting() so the
+- * cpu_smt_allowed() check will now return false if this is not the
+- * primary sibling.
+- */
+- if (!cpu_smt_allowed(cpu))
+- return -ECANCELED;
+-
+ /* Should we go further up ? */
+ if (st->target > CPUHP_AP_ONLINE_IDLE) {
+ __cpuhp_kick_ap_work(st);
+@@ -1023,6 +978,29 @@
+ EXPORT_SYMBOL(cpu_down);
+ #endif /*CONFIG_HOTPLUG_CPU*/
+
++#ifdef CONFIG_HOTPLUG_SMT
++enum cpuhp_smt_control cpu_smt_control __read_mostly = CPU_SMT_ENABLED;
++
++static int __init smt_cmdline_disable(char *str)
++{
++ cpu_smt_control = CPU_SMT_DISABLED;
++ if (str && !strcmp(str, "force")) {
++ pr_info("SMT: Force disabled\n");
++ cpu_smt_control = CPU_SMT_FORCE_DISABLED;
++ }
++ return 0;
++}
++early_param("nosmt", smt_cmdline_disable);
++
++static inline bool cpu_smt_allowed(unsigned int cpu)
++{
++ return cpu_smt_control == CPU_SMT_ENABLED ||
++ topology_is_primary_thread(cpu);
++}
++#else
++static inline bool cpu_smt_allowed(unsigned int cpu) { return true; }
++#endif
++
+ /**
+ * notify_cpu_starting(cpu) - Invoke the callbacks on the starting CPU
+ * @cpu: cpu that just started
+@@ -1036,7 +1014,6 @@
+ enum cpuhp_state target = min((int)st->target, CPUHP_AP_ONLINE);
+
+ rcu_cpu_starting(cpu); /* Enables RCU usage on this CPU. */
+- st->booted_once = true;
+ while (st->state < target) {
+ st->state++;
+ cpuhp_invoke_callback(cpu, st->state, true, NULL);
+@@ -2137,6 +2114,5 @@
+ */
+ void __init boot_cpu_hotplug_init(void)
+ {
++ per_cpu_ptr(&cpuhp_state, smp_processor_id())->state = CPUHP_ONLINE;
+- this_cpu_write(cpuhp_state.booted_once, true);
+- this_cpu_write(cpuhp_state.state, CPUHP_ONLINE);
+ }
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002j.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002j.patch
new file mode 100644
index 0000000..b98ae77
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002j.patch
@@ -0,0 +1,239 @@
+--- b/arch/Kconfig
++++ a/arch/Kconfig
+@@ -5,9 +5,6 @@
+ config KEXEC_CORE
+ bool
+
+-config HOTPLUG_SMT
+- bool
+-
+ config OPROFILE
+ tristate "OProfile system profiling"
+ depends on PROFILING
+--- b/arch/x86/Kconfig
++++ a/arch/x86/Kconfig
+@@ -147,7 +147,6 @@
+ select HAVE_UID16 if X86_32 || IA32_EMULATION
+ select HAVE_UNSTABLE_SCHED_CLOCK
+ select HAVE_USER_RETURN_NOTIFIER
+- select HOTPLUG_SMT if SMP
+ select IRQ_FORCED_THREADING
+ select MODULES_USE_ELF_RELA if X86_64
+ select MODULES_USE_ELF_REL if X86_32
+--- b/include/linux/cpu.h
++++ a/include/linux/cpu.h
+@@ -257,17 +257,4 @@
+ static inline void cpuhp_report_idle_dead(void) { }
+ #endif /* #ifdef CONFIG_HOTPLUG_CPU */
+
+-enum cpuhp_smt_control {
+- CPU_SMT_ENABLED,
+- CPU_SMT_DISABLED,
+- CPU_SMT_FORCE_DISABLED,
+- CPU_SMT_NOT_SUPPORTED,
+-};
+-
+-#if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
+-extern enum cpuhp_smt_control cpu_smt_control;
+-#else
+-# define cpu_smt_control (CPU_SMT_ENABLED)
+-#endif
+-
+ #endif /* _LINUX_CPU_H_ */
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -978,29 +978,6 @@
+ EXPORT_SYMBOL(cpu_down);
+ #endif /*CONFIG_HOTPLUG_CPU*/
+
+-#ifdef CONFIG_HOTPLUG_SMT
+-enum cpuhp_smt_control cpu_smt_control __read_mostly = CPU_SMT_ENABLED;
+-
+-static int __init smt_cmdline_disable(char *str)
+-{
+- cpu_smt_control = CPU_SMT_DISABLED;
+- if (str && !strcmp(str, "force")) {
+- pr_info("SMT: Force disabled\n");
+- cpu_smt_control = CPU_SMT_FORCE_DISABLED;
+- }
+- return 0;
+-}
+-early_param("nosmt", smt_cmdline_disable);
+-
+-static inline bool cpu_smt_allowed(unsigned int cpu)
+-{
+- return cpu_smt_control == CPU_SMT_ENABLED ||
+- topology_is_primary_thread(cpu);
+-}
+-#else
+-static inline bool cpu_smt_allowed(unsigned int cpu) { return true; }
+-#endif
+-
+ /**
+ * notify_cpu_starting(cpu) - Invoke the callbacks on the starting CPU
+ * @cpu: cpu that just started
+@@ -1119,10 +1096,6 @@
+ err = -EBUSY;
+ goto out;
+ }
+- if (!cpu_smt_allowed(cpu)) {
+- err = -EPERM;
+- goto out;
+- }
+
+ err = _cpu_up(cpu, 0, target);
+ out:
+@@ -1869,153 +1842,10 @@
+ NULL
+ };
+
+-#ifdef CONFIG_HOTPLUG_SMT
+-
+-static const char *smt_states[] = {
+- [CPU_SMT_ENABLED] = "on",
+- [CPU_SMT_DISABLED] = "off",
+- [CPU_SMT_FORCE_DISABLED] = "forceoff",
+- [CPU_SMT_NOT_SUPPORTED] = "notsupported",
+-};
+-
+-static ssize_t
+-show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
+-{
+- return snprintf(buf, PAGE_SIZE - 2, "%s\n", smt_states[cpu_smt_control]);
+-}
+-
+-static void cpuhp_offline_cpu_device(unsigned int cpu)
+-{
+- struct device *dev = get_cpu_device(cpu);
+-
+- dev->offline = true;
+- /* Tell user space about the state change */
+- kobject_uevent(&dev->kobj, KOBJ_OFFLINE);
+-}
+-
+-static int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval)
+-{
+- int cpu, ret = 0;
+-
+- cpu_maps_update_begin();
+- for_each_online_cpu(cpu) {
+- if (topology_is_primary_thread(cpu))
+- continue;
+- ret = cpu_down_maps_locked(cpu, CPUHP_OFFLINE);
+- if (ret)
+- break;
+- /*
+- * As this needs to hold the cpu maps lock it's impossible
+- * to call device_offline() because that ends up calling
+- * cpu_down() which takes cpu maps lock. cpu maps lock
+- * needs to be held as this might race against in kernel
+- * abusers of the hotplug machinery (thermal management).
+- *
+- * So nothing would update device:offline state. That would
+- * leave the sysfs entry stale and prevent onlining after
+- * smt control has been changed to 'off' again. This is
+- * called under the sysfs hotplug lock, so it is properly
+- * serialized against the regular offline usage.
+- */
+- cpuhp_offline_cpu_device(cpu);
+- }
+- if (!ret)
+- cpu_smt_control = ctrlval;
+- cpu_maps_update_done();
+- return ret;
+-}
+-
+-static void cpuhp_smt_enable(void)
+-{
+- cpu_maps_update_begin();
+- cpu_smt_control = CPU_SMT_ENABLED;
+- cpu_maps_update_done();
+-}
+-
+-static ssize_t
+-store_smt_control(struct device *dev, struct device_attribute *attr,
+- const char *buf, size_t count)
+-{
+- int ctrlval, ret;
+-
+- if (sysfs_streq(buf, "on"))
+- ctrlval = CPU_SMT_ENABLED;
+- else if (sysfs_streq(buf, "off"))
+- ctrlval = CPU_SMT_DISABLED;
+- else if (sysfs_streq(buf, "forceoff"))
+- ctrlval = CPU_SMT_FORCE_DISABLED;
+- else
+- return -EINVAL;
+-
+- if (cpu_smt_control == CPU_SMT_FORCE_DISABLED)
+- return -EPERM;
+-
+- if (cpu_smt_control == CPU_SMT_NOT_SUPPORTED)
+- return -ENODEV;
+-
+- ret = lock_device_hotplug_sysfs();
+- if (ret)
+- return ret;
+-
+- if (ctrlval != cpu_smt_control) {
+- switch (ctrlval) {
+- case CPU_SMT_ENABLED:
+- cpuhp_smt_enable();
+- break;
+- case CPU_SMT_DISABLED:
+- case CPU_SMT_FORCE_DISABLED:
+- ret = cpuhp_smt_disable(ctrlval);
+- break;
+- }
+- }
+-
+- unlock_device_hotplug();
+- return ret ? ret : count;
+-}
+-static DEVICE_ATTR(control, 0644, show_smt_control, store_smt_control);
+-
+-static ssize_t
+-show_smt_active(struct device *dev, struct device_attribute *attr, char *buf)
+-{
+- bool active = topology_max_smt_threads() > 1;
+-
+- return snprintf(buf, PAGE_SIZE - 2, "%d\n", active);
+-}
+-static DEVICE_ATTR(active, 0444, show_smt_active, NULL);
+-
+-static struct attribute *cpuhp_smt_attrs[] = {
+- &dev_attr_control.attr,
+- &dev_attr_active.attr,
+- NULL
+-};
+-
+-static const struct attribute_group cpuhp_smt_attr_group = {
+- .attrs = cpuhp_smt_attrs,
+- .name = "smt",
+- NULL
+-};
+-
+-static int __init cpu_smt_state_init(void)
+-{
+- if (!topology_smt_supported())
+- cpu_smt_control = CPU_SMT_NOT_SUPPORTED;
+-
+- return sysfs_create_group(&cpu_subsys.dev_root->kobj,
+- &cpuhp_smt_attr_group);
+-}
+-
+-#else
+-static inline int cpu_smt_state_init(void) { return 0; }
+-#endif
+-
+ static int __init cpuhp_sysfs_init(void)
+ {
+ int cpu, ret;
+
+- ret = cpu_smt_state_init();
+- if (ret)
+- return ret;
+-
+ ret = sysfs_create_group(&cpu_subsys.dev_root->kobj,
+ &cpuhp_cpu_root_attr_group);
+ if (ret)
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002k.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002k.patch
new file mode 100644
index 0000000..09c6527
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002k.patch
@@ -0,0 +1,31 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -955,19 +955,20 @@
+ return ret;
+ }
+
+-static int cpu_down_maps_locked(unsigned int cpu, enum cpuhp_state target)
+-{
+- if (cpu_hotplug_disabled)
+- return -EBUSY;
+- return _cpu_down(cpu, 0, target);
+-}
+-
+ static int do_cpu_down(unsigned int cpu, enum cpuhp_state target)
+ {
+ int err;
+
+ cpu_maps_update_begin();
++
++ if (cpu_hotplug_disabled) {
++ err = -EBUSY;
++ goto out;
++ }
++
++ err = _cpu_down(cpu, 0, target);
++
++out:
+- err = cpu_down_maps_locked(cpu, target);
+ cpu_maps_update_done();
+ return err;
+ }
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002l.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002l.patch
new file mode 100644
index 0000000..1069057
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002l.patch
@@ -0,0 +1,19 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -817,6 +817,7 @@
+
+ /* Park the smpboot threads */
+ kthread_park(per_cpu_ptr(&cpuhp_state, cpu)->thread);
++ smpboot_park_threads(cpu);
+
+ /*
+ * Prevent irq alloc/free while the dying cpu reorganizes the
+@@ -1388,7 +1389,7 @@
+ [CPUHP_AP_SMPBOOT_THREADS] = {
+ .name = "smpboot/threads:online",
+ .startup.single = smpboot_unpark_threads,
++ .teardown.single = NULL,
+- .teardown.single = smpboot_park_threads,
+ },
+ [CPUHP_AP_PERF_ONLINE] = {
+ .name = "perf:online",
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/003.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/003.patch
new file mode 100644
index 0000000..a385ea0
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/003.patch
@@ -0,0 +1,39 @@
+--- b/kernel/softirq.c
++++ a/kernel/softirq.c
+@@ -79,16 +79,12 @@
+
+ /*
+ * If ksoftirqd is scheduled, we do not want to process pending softirqs
++ * right now. Let ksoftirqd handle this at its own rate, to get fairness.
+- * right now. Let ksoftirqd handle this at its own rate, to get fairness,
+- * unless we're doing some of the synchronous softirqs.
+ */
++static bool ksoftirqd_running(void)
+-#define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ))
+-static bool ksoftirqd_running(unsigned long pending)
+ {
+ struct task_struct *tsk = __this_cpu_read(ksoftirqd);
+
+- if (pending & SOFTIRQ_NOW_MASK)
+- return false;
+ return tsk && (tsk->state == TASK_RUNNING);
+ }
+
+@@ -328,7 +324,7 @@
+
+ pending = local_softirq_pending();
+
++ if (pending && !ksoftirqd_running())
+- if (pending && !ksoftirqd_running(pending))
+ do_softirq_own_stack();
+
+ local_irq_restore(flags);
+@@ -355,7 +351,7 @@
+
+ static inline void invoke_softirq(void)
+ {
++ if (ksoftirqd_running())
+- if (ksoftirqd_running(local_softirq_pending()))
+ return;
+
+ if (!force_irqthreads) {
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/004.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/004.patch
new file mode 100644
index 0000000..bc2c859
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/004.patch
@@ -0,0 +1,86 @@
+--- b/kernel/stop_machine.c
++++ a/kernel/stop_machine.c
+@@ -36,7 +36,7 @@
+ struct cpu_stopper {
+ struct task_struct *thread;
+
++ spinlock_t lock;
+- raw_spinlock_t lock;
+ bool enabled; /* is this stopper enabled? */
+ struct list_head works; /* list of pending works */
+
+@@ -78,13 +78,13 @@
+ unsigned long flags;
+ bool enabled;
+
++ spin_lock_irqsave(&stopper->lock, flags);
+- raw_spin_lock_irqsave(&stopper->lock, flags);
+ enabled = stopper->enabled;
+ if (enabled)
+ __cpu_stop_queue_work(stopper, work);
+ else if (work->done)
+ cpu_stop_signal_done(work->done);
++ spin_unlock_irqrestore(&stopper->lock, flags);
+- raw_spin_unlock_irqrestore(&stopper->lock, flags);
+
+ return enabled;
+ }
+@@ -231,8 +231,8 @@
+ struct cpu_stopper *stopper2 = per_cpu_ptr(&cpu_stopper, cpu2);
+ int err;
+ retry:
++ spin_lock_irq(&stopper1->lock);
++ spin_lock_nested(&stopper2->lock, SINGLE_DEPTH_NESTING);
+- raw_spin_lock_irq(&stopper1->lock);
+- raw_spin_lock_nested(&stopper2->lock, SINGLE_DEPTH_NESTING);
+
+ err = -ENOENT;
+ if (!stopper1->enabled || !stopper2->enabled)
+@@ -255,8 +255,8 @@
+ __cpu_stop_queue_work(stopper1, work1);
+ __cpu_stop_queue_work(stopper2, work2);
+ unlock:
++ spin_unlock(&stopper2->lock);
++ spin_unlock_irq(&stopper1->lock);
+- raw_spin_unlock(&stopper2->lock);
+- raw_spin_unlock_irq(&stopper1->lock);
+
+ if (unlikely(err == -EDEADLK)) {
+ while (stop_cpus_in_progress)
+@@ -448,9 +448,9 @@
+ unsigned long flags;
+ int run;
+
++ spin_lock_irqsave(&stopper->lock, flags);
+- raw_spin_lock_irqsave(&stopper->lock, flags);
+ run = !list_empty(&stopper->works);
++ spin_unlock_irqrestore(&stopper->lock, flags);
+- raw_spin_unlock_irqrestore(&stopper->lock, flags);
+ return run;
+ }
+
+@@ -461,13 +461,13 @@
+
+ repeat:
+ work = NULL;
++ spin_lock_irq(&stopper->lock);
+- raw_spin_lock_irq(&stopper->lock);
+ if (!list_empty(&stopper->works)) {
+ work = list_first_entry(&stopper->works,
+ struct cpu_stop_work, list);
+ list_del_init(&work->list);
+ }
++ spin_unlock_irq(&stopper->lock);
+- raw_spin_unlock_irq(&stopper->lock);
+
+ if (work) {
+ cpu_stop_fn_t fn = work->fn;
+@@ -541,7 +541,7 @@
+ for_each_possible_cpu(cpu) {
+ struct cpu_stopper *stopper = &per_cpu(cpu_stopper, cpu);
+
++ spin_lock_init(&stopper->lock);
+- raw_spin_lock_init(&stopper->lock);
+ INIT_LIST_HEAD(&stopper->works);
+ }
+
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/apalis-imx6/defconfig b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/apalis-imx6/defconfig
new file mode 100644
index 0000000..5f6c0e4
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/apalis-imx6/defconfig
@@ -0,0 +1,384 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_DEBUG=y
+CONFIG_NAMESPACES=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=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_ARCH_MXC=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_IMX6=y
+CONFIG_SMP=y
+CONFIG_VMSPLIT_2G=y
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_AEABI=y
+CONFIG_HIGHMEM=y
+CONFIG_CMA=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_SECCOMP=y
+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_IMX6Q_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=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_IPV6_SIT=m
+CONFIG_NETFILTER=y
+CONFIG_CAN=y
+CONFIG_CAN_VCAN=y
+CONFIG_CAN_FLEXCAN=y
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=320
+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_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_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_PATA_IMX=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_VENDOR_ATHEROS is not set
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# 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_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_PPP=m
+CONFIG_USB_USBNET=y
+# CONFIG_RTL_CARDS is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_FUSION_F0710A=m
+CONFIG_TOUCHSCREEN_STMPE=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=y
+CONFIG_SERIO_SERPORT=m
+# 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_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_GPIO=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=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_STMPE=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_REGULATOR_PFUZE100=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=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_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5642=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
+CONFIG_MXC_TVIN_ADV7180=m
+CONFIG_MXC_TVIN_ADV7280=m
+CONFIG_MXC_TVIN_MAX9526=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_VIDEO_MXC_PXP_V4L2=y
+CONFIG_VIDEO_MXC_CSI_CAMERA=m
+CONFIG_MXC_VADC=m
+CONFIG_SOC_CAMERA=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB_MXS=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FB_MXS_SII902X=y
+CONFIG_HANNSTAR_CABC=y
+CONFIG_FB_MXC_EINK_PANEL=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_FRAMEBUFFER_CONSOLE=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_HIDRAW=y
+CONFIG_HID_MULTITOUCH=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_MXC=y
+CONFIG_USB_ACM=m
+CONFIG_USB_WDM=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_CONSOLE=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_MMC=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_MIPI_CSI2=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+CONFIG_IMX_SDMA=y
+CONFIG_MXC_PXP_V2=y
+# CONFIG_MX3_IPU is not set
+CONFIG_STAGING=y
+CONFIG_STMPE_ADC=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_IIO=y
+CONFIG_PWM=y
+CONFIG_PWM_IMX=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_CUSE=y
+CONFIG_OVERLAY_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_NTFS_FS=y
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_CIFS=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_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=10
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_DEBUG_USER=y
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_ECDH=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_LRW=y
+CONFIG_CRYPTO_PCBC=y
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_RMD128=y
+CONFIG_CRYPTO_RMD160=y
+CONFIG_CRYPTO_RMD256=y
+CONFIG_CRYPTO_RMD320=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_TGR192=y
+CONFIG_CRYPTO_WP512=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6/defconfig b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6/defconfig
new file mode 100644
index 0000000..a3fdbf7
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6/defconfig
@@ -0,0 +1,377 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_DEBUG=y
+CONFIG_NAMESPACES=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=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_ARCH_MXC=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SMP=y
+CONFIG_VMSPLIT_2G=y
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_AEABI=y
+CONFIG_HIGHMEM=y
+CONFIG_CMA=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_SECCOMP=y
+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_IMX6Q_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=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_IPV6_SIT=m
+CONFIG_NETFILTER=y
+CONFIG_CAN=y
+CONFIG_CAN_VCAN=y
+CONFIG_CAN_FLEXCAN=y
+CONFIG_CAN_MCP251X=y
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_CMA_SIZE_PERCENTAGE=50
+CONFIG_CMA_SIZE_SEL_MIN=y
+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_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=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# 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_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_PPP=m
+CONFIG_USB_USBNET=y
+# CONFIG_WLAN is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_FUSION_F0710A=m
+CONFIG_TOUCHSCREEN_STMPE=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=y
+CONFIG_SERIO_SERPORT=m
+# 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_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_GPIO=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=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_STMPE=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_REGULATOR_PFUZE100=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=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_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5642=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
+CONFIG_MXC_TVIN_ADV7180=m
+CONFIG_MXC_TVIN_ADV7280=m
+CONFIG_MXC_TVIN_MAX9526=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_VIDEO_MXC_PXP_V4L2=y
+CONFIG_VIDEO_MXC_CSI_CAMERA=m
+CONFIG_MXC_VADC=m
+CONFIG_SOC_CAMERA=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB_MXS=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FB_MXS_SII902X=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_FRAMEBUFFER_CONSOLE=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_HIDRAW=y
+CONFIG_HID_MULTITOUCH=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_MXC=y
+CONFIG_USB_ACM=m
+CONFIG_USB_WDM=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_CONSOLE=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_MMC=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_MIPI_CSI2=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+CONFIG_IMX_SDMA=y
+CONFIG_MXC_PXP_V2=y
+# CONFIG_MX3_IPU is not set
+CONFIG_STAGING=y
+CONFIG_STMPE_ADC=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_IIO=y
+CONFIG_PWM=y
+CONFIG_PWM_IMX=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_CUSE=y
+CONFIG_OVERLAY_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_NTFS_FS=y
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_CIFS=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_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=10
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_DEBUG_USER=y
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_ECDH=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_LRW=y
+CONFIG_CRYPTO_PCBC=y
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_RMD128=y
+CONFIG_CRYPTO_RMD160=y
+CONFIG_CRYPTO_RMD256=y
+CONFIG_CRYPTO_RMD320=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_TGR192=y
+CONFIG_CRYPTO_WP512=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6ull/defconfig b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6ull/defconfig
new file mode 100644
index 0000000..0d35162
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/colibri-imx6ull/defconfig
@@ -0,0 +1,384 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_DEBUG=y
+CONFIG_NAMESPACES=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+CONFIG_KALLSYMS_ALL=y
+CONFIG_EMBEDDED=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_ARCH_MXC=y
+CONFIG_SOC_IMX6ULL=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_SMP=y
+# CONFIG_ARM_CPU_TOPOLOGY is not set
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_VMSPLIT_2G=y
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_AEABI=y
+CONFIG_CMA=y
+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_IMX7D_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_BINFMT_MISC=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_NET_IPGRE_DEMUX=m
+# 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_IPV6_SIT=m
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_TABLES=y
+CONFIG_NF_TABLES_INET=y
+CONFIG_NFT_MASQ=y
+CONFIG_NFT_NAT=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_NFACCT=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_NFT_CHAIN_NAT_IPV4=y
+CONFIG_NFT_MASQ_IPV4=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_NF_TABLES_BRIDGE=y
+CONFIG_L2TP=m
+CONFIG_BRIDGE=y
+# CONFIG_BRIDGE_IGMP_SNOOPING is not set
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=y
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_CAN=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_CMA_SIZE_PERCENTAGE=50
+CONFIG_CMA_SIZE_SEL_MIN=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_GPMI_NAND=y
+CONFIG_MTD_NAND_MXC=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_HISILICON 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_QUALCOMM is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG 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_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_PPP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_USBNET=m
+# CONFIG_USB_NET_CDC_NCM is not set
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+# CONFIG_WLAN is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AD7879=y
+CONFIG_TOUCHSCREEN_AD7879_I2C=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_FUSION_F0710A=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=y
+CONFIG_SERIO_SERPORT=m
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_FSL_OTP=y
+CONFIG_I2C=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_MXC_MMA8451 is not set
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+# CONFIG_USB_GSPCA is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_FB=y
+CONFIG_FB_MXS=y
+# CONFIG_FB_MXC_EDID is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB_AUDIO=m
+CONFIG_HIDRAW=y
+CONFIG_HID_MULTITOUCH=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_MXC=y
+CONFIG_USB_ACM=m
+CONFIG_USB_WDM=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_CONSOLE=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_SIM=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+CONFIG_IMX_SDMA=y
+CONFIG_MXS_DMA=y
+CONFIG_MXC_PXP_V2=y
+CONFIG_MXC_PXP_V3=y
+# CONFIG_MX3_IPU is not set
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_IIO=y
+CONFIG_IMX7D_ADC=y
+CONFIG_VF610_ADC=y
+CONFIG_PWM=y
+CONFIG_PWM_IMX=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_CUSE=y
+CONFIG_OVERLAY_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_NTFS_FS=y
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_UBIFS_FS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_CIFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=10
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_DEBUG_USER=y
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_ECDH=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_LRW=y
+CONFIG_CRYPTO_PCBC=y
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_RMD128=y
+CONFIG_CRYPTO_RMD160=y
+CONFIG_CRYPTO_RMD256=y
+CONFIG_CRYPTO_RMD320=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_TGR192=y
+CONFIG_CRYPTO_WP512=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRYPTO_DEV_MXS_DCP=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/mx7/defconfig b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/mx7/defconfig
new file mode 100644
index 0000000..82650f1
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/mx7/defconfig
@@ -0,0 +1,388 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_DEBUG=y
+CONFIG_NAMESPACES=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+CONFIG_KALLSYMS_ALL=y
+CONFIG_EMBEDDED=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_ARCH_MXC=y
+CONFIG_SOC_IMX7D=y
+# CONFIG_ARM_ERRATA_643719 is not set
+CONFIG_SMP=y
+# CONFIG_ARM_CPU_TOPOLOGY is not set
+CONFIG_VMSPLIT_2G=y
+CONFIG_ARM_PSCI=y
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_AEABI=y
+CONFIG_CMA=y
+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_CPUFREQ_DT=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_BINFMT_MISC=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_NET_IPGRE_DEMUX=m
+# 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_IPV6_SIT=m
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_TABLES=y
+CONFIG_NF_TABLES_INET=y
+CONFIG_NFT_MASQ=y
+CONFIG_NFT_NAT=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_NFACCT=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_NFT_CHAIN_NAT_IPV4=y
+CONFIG_NFT_MASQ_IPV4=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_NF_TABLES_BRIDGE=y
+CONFIG_L2TP=m
+CONFIG_BRIDGE=y
+# CONFIG_BRIDGE_IGMP_SNOOPING is not set
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=y
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_CAN=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_CMA_SIZE_PERCENTAGE=50
+CONFIG_CMA_SIZE_SEL_MIN=y
+CONFIG_IMX_WEIM=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_GPMI_NAND=y
+CONFIG_MTD_NAND_MXC=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_HISILICON 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_NATSEMI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_PPP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_USBNET=m
+# CONFIG_USB_NET_CDC_NCM is not set
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+# CONFIG_WLAN is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AD7879=y
+CONFIG_TOUCHSCREEN_AD7879_I2C=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_FUSION_F0710A=m
+# CONFIG_SERIO is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_MXC_MMA8451 is not set
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_RN5T618_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_MFD_RN5T618=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_REGULATOR_RN5T618=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+# CONFIG_USB_GSPCA is not set
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_PXP_V4L2=y
+CONFIG_SOC_CAMERA=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_CODA=y
+CONFIG_SOC_CAMERA_OV2640=y
+CONFIG_FB=y
+# CONFIG_FB_MX3 is not set
+CONFIG_FB_MXS=y
+# CONFIG_FB_MXC_EDID is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_FSL_ASRC=y
+CONFIG_SND_SOC_FSL_SAI=y
+CONFIG_SND_SOC_FSL_SPDIF=y
+CONFIG_SND_SOC_IMX_AUDMUX=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_SGTL5000=y
+CONFIG_SND_SIMPLE_CARD=y
+CONFIG_HIDRAW=y
+CONFIG_HID_MULTITOUCH=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_MXC=y
+CONFIG_USB_ACM=m
+CONFIG_USB_WDM=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_CONSOLE=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_SIM=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+CONFIG_IMX_SDMA=y
+CONFIG_MXS_DMA=y
+CONFIG_MXC_PXP_V2=y
+CONFIG_MXC_PXP_V3=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_IIO=y
+CONFIG_IMX7D_ADC=y
+CONFIG_VF610_ADC=y
+CONFIG_PWM=y
+CONFIG_PWM_IMX=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_CUSE=y
+CONFIG_OVERLAY_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_NTFS_FS=y
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_UBIFS_FS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_CIFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=10
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+CONFIG_DEBUG_USER=y
+CONFIG_CORESIGHT=y
+CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
+CONFIG_CORESIGHT_SINK_TPIU=y
+CONFIG_CORESIGHT_SINK_ETBV10=y
+CONFIG_CORESIGHT_SOURCE_ETM3X=y
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_ECDH=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_LRW=y
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_RMD128=y
+CONFIG_CRYPTO_RMD160=y
+CONFIG_CRYPTO_RMD256=y
+CONFIG_CRYPTO_RMD320=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_TGR192=y
+CONFIG_CRYPTO_WP512=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y