[meta-freescale] [meta-freescale-layer][PATCH 11/67] linux-qoriq: upgrade to 4.1 plus fsl patches

ting.liu at nxp.com ting.liu at nxp.com
Fri Jul 1 01:37:49 PDT 2016


From: Ting Liu <ting.liu at nxp.com>

The main features are:
* Linux kernel 4.1.8
* ARM A7 (AARCH32), A53 and A57 (AARCH64), Little Endian (default)
* Power Architecture e500mc, e5500, e6500
* Multicore SMP support and multithread (e6500)
* 32-bit effective kernel addressing [e500mc, e5500, A57]
* 64-bit effective addressing [e6500, A53, A57]
* Huge Pages (hugetlbfs)
* Linux Real-Time (RT) [P4080, B4860, LS1021A]
* Kernel-based Virtual Machine (KVM)
* Libvirt 1.2.19
* Linux Containers (LXC) 1.1.4 function support

Detailed commit log can be found at:
http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/log/?h=sdk-v2.0.x

Signed-off-by: Ting Liu <ting.liu at nxp.com>
---
 .../linux/files/net-sctp-CVE-2014-0101.patch       | 145 ---------------------
 ...LLVMLinux-use-static-inline-in-ARM-ftrace.patch |  48 -------
 ...nux-Change-extern-inline-to-static-inline.patch |  59 ---------
 .../0001-powerpc-Align-TOC-to-256-bytes.patch      |  37 ------
 .../0003-use-static-inline-in-ARM-lifeboot.h.patch |  16 +--
 .../modify-defconfig-t1040-nr-cpus.patch           |   0
 .../module-remove-MODULE_GENERIC_TABLE.patch       |  77 -----------
 ...pic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch |  32 +++++
 .../{linux-qoriq_3.12.bb => linux-qoriq_4.1.bb}    |  46 ++++---
 9 files changed, 59 insertions(+), 401 deletions(-)
 delete mode 100644 recipes-kernel/linux/files/net-sctp-CVE-2014-0101.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/0001-powerpc-Align-TOC-to-256-bytes.patch
 rename recipes-kernel/linux/{files => linux-qoriq}/modify-defconfig-t1040-nr-cpus.patch (100%)
 delete mode 100644 recipes-kernel/linux/linux-qoriq/module-remove-MODULE_GENERIC_TABLE.patch
 create mode 100644 recipes-kernel/linux/linux-qoriq/only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch
 rename recipes-kernel/linux/{linux-qoriq_3.12.bb => linux-qoriq_4.1.bb} (62%)

diff --git a/recipes-kernel/linux/files/net-sctp-CVE-2014-0101.patch b/recipes-kernel/linux/files/net-sctp-CVE-2014-0101.patch
deleted file mode 100644
index ddcb6c5..0000000
--- a/recipes-kernel/linux/files/net-sctp-CVE-2014-0101.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From 00c53b02cb01976b35d37670a4b5c5d7a6ad3c62 Mon Sep 17 00:00:00 2001
-From: Daniel Borkmann <dborkman at redhat.com>
-Date: Mon, 3 Mar 2014 17:23:04 +0100
-Subject: [PATCH] net: sctp: fix sctp_sf_do_5_1D_ce to verify if we/peer is
- AUTH capable
-
-[ Upstream commit ec0223ec48a90cb605244b45f7c62de856403729 ]
-
-RFC4895 introduced AUTH chunks for SCTP; during the SCTP
-handshake RANDOM; CHUNKS; HMAC-ALGO are negotiated (CHUNKS
-being optional though):
-
-  ---------- INIT[RANDOM; CHUNKS; HMAC-ALGO] ---------->
-  <------- INIT-ACK[RANDOM; CHUNKS; HMAC-ALGO] ---------
-  -------------------- COOKIE-ECHO -------------------->
-  <-------------------- COOKIE-ACK ---------------------
-
-A special case is when an endpoint requires COOKIE-ECHO
-chunks to be authenticated:
-
-  ---------- INIT[RANDOM; CHUNKS; HMAC-ALGO] ---------->
-  <------- INIT-ACK[RANDOM; CHUNKS; HMAC-ALGO] ---------
-  ------------------ AUTH; COOKIE-ECHO ---------------->
-  <-------------------- COOKIE-ACK ---------------------
-
-RFC4895, section 6.3. Receiving Authenticated Chunks says:
-
-  The receiver MUST use the HMAC algorithm indicated in
-  the HMAC Identifier field. If this algorithm was not
-  specified by the receiver in the HMAC-ALGO parameter in
-  the INIT or INIT-ACK chunk during association setup, the
-  AUTH chunk and all the chunks after it MUST be discarded
-  and an ERROR chunk SHOULD be sent with the error cause
-  defined in Section 4.1. [...] If no endpoint pair shared
-  key has been configured for that Shared Key Identifier,
-  all authenticated chunks MUST be silently discarded. [...]
-
-  When an endpoint requires COOKIE-ECHO chunks to be
-  authenticated, some special procedures have to be followed
-  because the reception of a COOKIE-ECHO chunk might result
-  in the creation of an SCTP association. If a packet arrives
-  containing an AUTH chunk as a first chunk, a COOKIE-ECHO
-  chunk as the second chunk, and possibly more chunks after
-  them, and the receiver does not have an STCB for that
-  packet, then authentication is based on the contents of
-  the COOKIE-ECHO chunk. In this situation, the receiver MUST
-  authenticate the chunks in the packet by using the RANDOM
-  parameters, CHUNKS parameters and HMAC_ALGO parameters
-  obtained from the COOKIE-ECHO chunk, and possibly a local
-  shared secret as inputs to the authentication procedure
-  specified in Section 6.3. If authentication fails, then
-  the packet is discarded. If the authentication is successful,
-  the COOKIE-ECHO and all the chunks after the COOKIE-ECHO
-  MUST be processed. If the receiver has an STCB, it MUST
-  process the AUTH chunk as described above using the STCB
-  from the existing association to authenticate the
-  COOKIE-ECHO chunk and all the chunks after it. [...]
-
-Commit bbd0d59809f9 introduced the possibility to receive
-and verification of AUTH chunk, including the edge case for
-authenticated COOKIE-ECHO. On reception of COOKIE-ECHO,
-the function sctp_sf_do_5_1D_ce() handles processing,
-unpacks and creates a new association if it passed sanity
-checks and also tests for authentication chunks being
-present. After a new association has been processed, it
-invokes sctp_process_init() on the new association and
-walks through the parameter list it received from the INIT
-chunk. It checks SCTP_PARAM_RANDOM, SCTP_PARAM_HMAC_ALGO
-and SCTP_PARAM_CHUNKS, and copies them into asoc->peer
-meta data (peer_random, peer_hmacs, peer_chunks) in case
-sysctl -w net.sctp.auth_enable=1 is set. If in INIT's
-SCTP_PARAM_SUPPORTED_EXT parameter SCTP_CID_AUTH is set,
-peer_random != NULL and peer_hmacs != NULL the peer is to be
-assumed asoc->peer.auth_capable=1, in any other case
-asoc->peer.auth_capable=0.
-
-Now, if in sctp_sf_do_5_1D_ce() chunk->auth_chunk is
-available, we set up a fake auth chunk and pass that on to
-sctp_sf_authenticate(), which at latest in
-sctp_auth_calculate_hmac() reliably dereferences a NULL pointer
-at position 0..0008 when setting up the crypto key in
-crypto_hash_setkey() by using asoc->asoc_shared_key that is
-NULL as condition key_id == asoc->active_key_id is true if
-the AUTH chunk was injected correctly from remote. This
-happens no matter what net.sctp.auth_enable sysctl says.
-
-The fix is to check for net->sctp.auth_enable and for
-asoc->peer.auth_capable before doing any operations like
-sctp_sf_authenticate() as no key is activated in
-sctp_auth_asoc_init_active_key() for each case.
-
-Now as RFC4895 section 6.3 states that if the used HMAC-ALGO
-passed from the INIT chunk was not used in the AUTH chunk, we
-SHOULD send an error; however in this case it would be better
-to just silently discard such a maliciously prepared handshake
-as we didn't even receive a parameter at all. Also, as our
-endpoint has no shared key configured, section 6.3 says that
-MUST silently discard, which we are doing from now onwards.
-
-Before calling sctp_sf_pdiscard(), we need not only to free
-the association, but also the chunk->auth_chunk skb, as
-commit bbd0d59809f9 created a skb clone in that case.
-
-I have tested this locally by using netfilter's nfqueue and
-re-injecting packets into the local stack after maliciously
-modifying the INIT chunk (removing RANDOM; HMAC-ALGO param)
-and the SCTP packet containing the COOKIE_ECHO (injecting
-AUTH chunk before COOKIE_ECHO). Fixed with this patch applied.
-
-This fixes CVE-2014-0101
-Upstream-Status: Backport
-
-Fixes: bbd0d59809f9 ("[SCTP]: Implement the receive and verification of AUTH chunk")
-Signed-off-by: Daniel Borkmann <dborkman at redhat.com>
-Cc: Vlad Yasevich <yasevich at gmail.com>
-Cc: Neil Horman <nhorman at tuxdriver.com>
-Acked-by: Vlad Yasevich <vyasevich at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Jiri Slaby <jslaby at suse.cz>
-Signed-off-by: Sona Sarmadi <sona.sarmadi at enea.com>
----
- net/sctp/sm_statefuns.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
-index dfe3f36..56ebe71 100644
---- a/net/sctp/sm_statefuns.c
-+++ b/net/sctp/sm_statefuns.c
-@@ -768,6 +768,13 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(struct net *net,
- 			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
- 		}
- 
-+		/* Make sure that we and the peer are AUTH capable */
-+		if (!net->sctp.auth_enable || !new_asoc->peer.auth_capable) {
-+			kfree_skb(chunk->auth_chunk);
-+			sctp_association_free(new_asoc);
-+			return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
-+		}
-+
- 		/* set-up our fake chunk so that we can process it */
- 		auth.skb = chunk->auth_chunk;
- 		auth.asoc = chunk->asoc;
--- 
-1.9.1
-
diff --git a/recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch b/recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch
deleted file mode 100644
index 47f13c7..0000000
--- a/recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001
-From: Behan Webster <behanw at converseincode.com>
-Date: Wed, 24 Sep 2014 01:06:46 +0100
-Subject: ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
-
-With compilers which follow the C99 standard (like modern versions of gcc and
-clang), "extern inline" does the wrong thing (emits code for an externally
-linkable version of the inline function). In this case using static inline
-and removing the NULL version of return_address in return_address.c does
-the right thing.
-
-Signed-off-by: Behan Webster <behanw at converseincode.com>
-Reviewed-by: Mark Charlebois <charlebm at gmail.com>
-Acked-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-
-diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
-index 39eb16b..bfe2a2f 100644
---- a/arch/arm/include/asm/ftrace.h
-+++ b/arch/arm/include/asm/ftrace.h
-@@ -45,7 +45,7 @@ void *return_address(unsigned int);
- 
- #else
- 
--extern inline void *return_address(unsigned int level)
-+static inline void *return_address(unsigned int level)
- {
- 	return NULL;
- }
-diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
-index fafedd8..f6aa84d 100644
---- a/arch/arm/kernel/return_address.c
-+++ b/arch/arm/kernel/return_address.c
-@@ -63,11 +63,6 @@ void *return_address(unsigned int level)
- #warning "TODO: return_address should use unwind tables"
- #endif
- 
--void *return_address(unsigned int level)
--{
--	return NULL;
--}
--
- #endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */
- 
- EXPORT_SYMBOL_GPL(return_address);
--- 
-cgit v0.10.2
-
diff --git a/recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch b/recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch
deleted file mode 100644
index 0ab03fb..0000000
--- a/recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From a2561791169351cbf1ac5ca0c4299a0eef7eca65 Mon Sep 17 00:00:00 2001
-From: Behan Webster <behanw at converseincode.com>
-Date: Tue, 3 Sep 2013 22:27:26 -0400
-Subject: [PATCH] ARM: LLVMLinux: Change "extern inline" to "static inline" in
- glue-cache.h
-
-With compilers which follow the C99 standard (like modern versions of gcc and
-clang), "extern inline" does the wrong thing (emits code for an externally
-linkable version of the inline function). "static inline" is the correct choice
-instead.
-
-Author: Behan Webster <behanw at converseincode.com>
-Signed-off-by: Behan Webster <behanw at converseincode.com>
-Reviewed-by: Mark Charlebois <charlebm at gmail.com>
----
- arch/arm/include/asm/glue-cache.h | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h
-index c81adc0..a3c24cd 100644
---- a/arch/arm/include/asm/glue-cache.h
-+++ b/arch/arm/include/asm/glue-cache.h
-@@ -130,22 +130,22 @@
- #endif
- 
- #ifndef __ASSEMBLER__
--extern inline void nop_flush_icache_all(void) { }
--extern inline void nop_flush_kern_cache_all(void) { }
--extern inline void nop_flush_kern_cache_louis(void) { }
--extern inline void nop_flush_user_cache_all(void) { }
--extern inline void nop_flush_user_cache_range(unsigned long a,
-+static inline void nop_flush_icache_all(void) { }
-+static inline void nop_flush_kern_cache_all(void) { }
-+static inline void nop_flush_kern_cache_louis(void) { }
-+static inline void nop_flush_user_cache_all(void) { }
-+static inline void nop_flush_user_cache_range(unsigned long a,
- 		unsigned long b, unsigned int c) { }
- 
--extern inline void nop_coherent_kern_range(unsigned long a, unsigned long b) { }
--extern inline int nop_coherent_user_range(unsigned long a,
-+static inline void nop_coherent_kern_range(unsigned long a, unsigned long b) { }
-+static inline int nop_coherent_user_range(unsigned long a,
- 		unsigned long b) { return 0; }
--extern inline void nop_flush_kern_dcache_area(void *a, size_t s) { }
-+static inline void nop_flush_kern_dcache_area(void *a, size_t s) { }
- 
--extern inline void nop_dma_flush_range(const void *a, const void *b) { }
-+static inline void nop_dma_flush_range(const void *a, const void *b) { }
- 
--extern inline void nop_dma_map_area(const void *s, size_t l, int f) { }
--extern inline void nop_dma_unmap_area(const void *s, size_t l, int f) { }
-+static inline void nop_dma_map_area(const void *s, size_t l, int f) { }
-+static inline void nop_dma_unmap_area(const void *s, size_t l, int f) { }
- #endif
- 
- #ifndef MULTI_CACHE
--- 
-2.1.4
-
diff --git a/recipes-kernel/linux/linux-qoriq/0001-powerpc-Align-TOC-to-256-bytes.patch b/recipes-kernel/linux/linux-qoriq/0001-powerpc-Align-TOC-to-256-bytes.patch
deleted file mode 100644
index 2131c9d..0000000
--- a/recipes-kernel/linux/linux-qoriq/0001-powerpc-Align-TOC-to-256-bytes.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7d4d16a6ccdd6d965b84284262a67d5b63426d50 Mon Sep 17 00:00:00 2001
-From: Zhenhua Luo <zhenhua.luo at freescale.com>
-Date: Mon, 9 Nov 2015 04:36:29 -0600
-Subject: [PATCH] powerpc: Align TOC to 256 bytes
-
-Recent toolchains(gcc-5.2) force the TOC to be 256 byte aligned. We need
-to enforce this alignment in our linker script, otherwise pointers
-to our TOC variables (__toc_start, __prom_init_toc_start) could
-be incorrect.
-
-If they are bad, we die a few hundred instructions into boot.
-
-Upstream-Status: Backport
-
-Backport from https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5e95235
-
-Signed-off-by: Zhenhua Luo <zhenhua.luo at freescale.com>
----
- arch/powerpc/kernel/vmlinux.lds.S | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
-index f096e72..3266864 100644
---- a/arch/powerpc/kernel/vmlinux.lds.S
-+++ b/arch/powerpc/kernel/vmlinux.lds.S
-@@ -213,6 +213,8 @@ SECTIONS
- 		*(.opd)
- 	}
- 
-+	. = ALIGN(256);
-+
- 	.got : AT(ADDR(.got) - LOAD_OFFSET) {
- 		__toc_start = .;
- #ifndef CONFIG_RELOCATABLE
--- 
-2.3.3
-
diff --git a/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch b/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch
index 6d06776..161bada 100644
--- a/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch
+++ b/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch
@@ -4,24 +4,10 @@ Date: Thu, 8 Oct 2015 22:48:22 -0500
 Subject: [PATCH] use static inline in ARM lifeboot.h
 
 ---
- drivers/input/mouse/lifebook.h   | 2 +-
  drivers/input/mouse/sentelic.h   | 2 +-
  drivers/input/mouse/trackpoint.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/drivers/input/mouse/lifebook.h b/drivers/input/mouse/lifebook.h
-index 4c4326c..e4c2453 100644
---- a/drivers/input/mouse/lifebook.h
-+++ b/drivers/input/mouse/lifebook.h
-@@ -19,7 +19,7 @@ int lifebook_init(struct psmouse *psmouse);
- inline void lifebook_module_init(void)
- {
- }
--inline int lifebook_detect(struct psmouse *psmouse, bool set_properties)
-+static inline int lifebook_detect(struct psmouse *psmouse, bool set_properties)
- {
- 	return -ENOSYS;
- }
 diff --git a/drivers/input/mouse/sentelic.h b/drivers/input/mouse/sentelic.h
 index aa697ec..9e69e94 100644
 --- a/drivers/input/mouse/sentelic.h
diff --git a/recipes-kernel/linux/files/modify-defconfig-t1040-nr-cpus.patch b/recipes-kernel/linux/linux-qoriq/modify-defconfig-t1040-nr-cpus.patch
similarity index 100%
rename from recipes-kernel/linux/files/modify-defconfig-t1040-nr-cpus.patch
rename to recipes-kernel/linux/linux-qoriq/modify-defconfig-t1040-nr-cpus.patch
diff --git a/recipes-kernel/linux/linux-qoriq/module-remove-MODULE_GENERIC_TABLE.patch b/recipes-kernel/linux/linux-qoriq/module-remove-MODULE_GENERIC_TABLE.patch
deleted file mode 100644
index 5a67155..0000000
--- a/recipes-kernel/linux/linux-qoriq/module-remove-MODULE_GENERIC_TABLE.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-module: remove MODULE_GENERIC_TABLE
-
-MODULE_DEVICE_TABLE() calles MODULE_GENERIC_TABLE(); make it do the
-work directly.  This also removes a wart introduced in the last patch,
-where the alias is defined to be an unknown struct type "struct
-type##__##name##_device_id" instead of "struct type##_device_id" (it's
-an extern so GCC doesn't care, but it's wrong).
-
-The other user of MODULE_GENERIC_TABLE (ISAPNP_CARD_TABLE) is unused,
-so delete it.
-
-<Backport from cff26a51da5d206d3baf871e75778da44710219d>
-
-Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
-Signed-off-by: Zhenhua Luo <zhenhua.luo at nxp.com>
-
-Upstream-Status: Backport
----
- include/linux/isapnp.h |  4 ----
- include/linux/module.h | 19 ++++++++-----------
- 2 files changed, 8 insertions(+), 15 deletions(-)
-
-diff --git a/include/linux/isapnp.h b/include/linux/isapnp.h
-index e2d28b0..3c77bf9 100644
---- a/include/linux/isapnp.h
-+++ b/include/linux/isapnp.h
-@@ -56,10 +56,6 @@
- #define ISAPNP_DEVICE_ID(_va, _vb, _vc, _function) \
- 		{ .vendor = ISAPNP_VENDOR(_va, _vb, _vc), .function = ISAPNP_FUNCTION(_function) }
- 
--/* export used IDs outside module */
--#define ISAPNP_CARD_TABLE(name) \
--		MODULE_GENERIC_TABLE(isapnp_card, name)
--
- struct isapnp_card_id {
- 	unsigned long driver_data;	/* data private to the driver */
- 	unsigned short card_vendor, card_device;
-diff --git a/include/linux/module.h b/include/linux/module.h
-index 54aef1b..a9f6812 100644
---- a/include/linux/module.h
-+++ b/include/linux/module.h
-@@ -83,15 +83,6 @@ void sort_extable(struct exception_table_entry *start,
- void sort_main_extable(void);
- void trim_init_extable(struct module *m);
- 
--#ifdef MODULE
--#define MODULE_GENERIC_TABLE(gtype,name)			\
--extern const struct gtype##_id __mod_##gtype##_table		\
--  __attribute__ ((unused, alias(__stringify(name))))
--
--#else  /* !MODULE */
--#define MODULE_GENERIC_TABLE(gtype,name)
--#endif
--
- /* Generic info of form tag = "info" */
- #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
- 
-@@ -142,8 +133,14 @@ extern const struct gtype##_id __mod_##gtype##_table		\
- /* What your module does. */
- #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
- 
--#define MODULE_DEVICE_TABLE(type,name)		\
--  MODULE_GENERIC_TABLE(type##__##name##_device, name)
-+#ifdef MODULE
-+/* Creates an alias so file2alias.c can find device table. */
-+#define MODULE_DEVICE_TABLE(type, name)                                        \
-+  extern const struct type##_device_id __mod_##type##__##name##_device_table \
-+  __attribute__ ((unused, alias(__stringify(name))))
-+#else  /* !MODULE */
-+#define MODULE_DEVICE_TABLE(type, name)
-+#endif
- 
- /* Version of form [<epoch>:]<version>[-<extra-version>].
-    Or for CVS/RCS ID version, everything but the number is stripped.
--- 
-2.5.0
-
diff --git a/recipes-kernel/linux/linux-qoriq/only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch b/recipes-kernel/linux/linux-qoriq/only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch
new file mode 100644
index 0000000..5f3220d
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq/only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch
@@ -0,0 +1,32 @@
+From 15895f6880829ee502f0a48412173fb452b23c0b Mon Sep 17 00:00:00 2001
+From: Ting Liu <ting.liu at nxp.com>
+Date: Fri, 17 Jun 2016 10:57:35 +0800
+Subject: [PATCH] only set vmpic_msi_feature if CONFIG_EPAPR_PARAVIRT defined
+
+Upstream-Status: Pending
+
+Signed-off-by: Ting Liu <ting.liu at nxp.com>
+---
+ arch/powerpc/sysdev/fsl_msi.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
+index 963661a..95d7111 100644
+--- a/arch/powerpc/sysdev/fsl_msi.c
++++ b/arch/powerpc/sysdev/fsl_msi.c
+@@ -658,10 +658,12 @@ static const struct fsl_msi_feature ipic_msi_feature = {
+ 	.msiir_offset = 0x38,
+ };
+ 
++#ifdef CONFIG_EPAPR_PARAVIRT
+ static const struct fsl_msi_feature vmpic_msi_feature = {
+ 	.fsl_pic_ip = FSL_PIC_IP_VMPIC,
+ 	.msiir_offset = 0,
+ };
++#endif
+ 
+ static const struct of_device_id fsl_of_msi_ids[] = {
+ 	{
+-- 
+1.9.2
+
diff --git a/recipes-kernel/linux/linux-qoriq_3.12.bb b/recipes-kernel/linux/linux-qoriq_4.1.bb
similarity index 62%
rename from recipes-kernel/linux/linux-qoriq_3.12.bb
rename to recipes-kernel/linux/linux-qoriq_4.1.bb
index 5d89255..ce67c4d 100644
--- a/recipes-kernel/linux/linux-qoriq_3.12.bb
+++ b/recipes-kernel/linux/linux-qoriq_4.1.bb
@@ -1,43 +1,40 @@
-inherit kernel kernel-arch qoriq_build_64bit_kernel
-inherit fsl-kernel-localversion
+inherit kernel qoriq_build_64bit_kernel
 require recipes-kernel/linux/linux-dtb.inc
 
-DESCRIPTION = "Linux kernel for Freescale platforms"
+SUMMARY = "Linux Kernel for Freescale QorIQ platforms"
+SECTION = "kernel"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 
-SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;branch=sdk-v1.9.x \
+SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;branch=sdk-v2.0.x \
     file://modify-defconfig-t1040-nr-cpus.patch \
-    file://net-sctp-CVE-2014-0101.patch \
-    file://0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch \
-    file://0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch \
     file://0003-use-static-inline-in-ARM-lifeboot.h.patch \
-    file://0001-powerpc-Align-TOC-to-256-bytes.patch \
     file://fix-the-compile-issue-under-gcc6.patch \
-    file://module-remove-MODULE_GENERIC_TABLE.patch \
+    file://only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch \
 "
-SRCREV = "43cecda943a6c40a833b588801b0929e8bd48813"
+SRCREV = "bd51baffc04ecc73f933aee1c3a37c8b44b889a7"
 
 S = "${WORKDIR}/git"
 
-DEPENDS_append = " libgcc"
-# not put uImage into /boot of rootfs, install kernel-image if needed
+DEPENDS_append = " libgcc dtc-native"
+# not put Images into /boot of rootfs, install kernel-image if needed
 RDEPENDS_kernel-base = ""
 
 KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}"
 KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}"
-
 KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
+
 ZIMAGE_BASE_NAME = "zImage-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
 ZIMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
 
 SCMVERSION ?= "y"
-LOCALVERSION = ""
 DELTA_KERNEL_DEFCONFIG ?= ""
-
+DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch2 = "freescale.config "
+DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch3 = "freescale.config "
 do_configure_prepend() {
     # copy desired defconfig so we pick it up for the real kernel_do_configure
-    cp ${KERNEL_DEFCONFIG} .config
+    cp ${KERNEL_DEFCONFIG} ${B}/.config
+    
     # add config fragments
     for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do
         if [ -f "${deltacfg}" ]; then
@@ -46,14 +43,25 @@ do_configure_prepend() {
             ${S}/scripts/kconfig/merge_config.sh -m .config ${WORKDIR}/${deltacfg}
         elif [ -f "${S}/arch/${ARCH}/configs/${deltacfg}" ]; then
             ${S}/scripts/kconfig/merge_config.sh -m .config \
-                ${S}/arch/powerpc/configs/${deltacfg}
+                ${S}/arch/${ARCH}/configs/${deltacfg}
         fi
     done
-    cp .config ${WORKDIR}/defconfig
+    
+    #add git revision to the local version
+    if [ "${SCMVERSION}" = "y" ]; then
+        # append sdk version if SDK_VERSION is defined
+        sdkversion=''
+        if [ -n "${SDK_VERSION}" ]; then
+            sdkversion="-${SDK_VERSION}"
+        fi
+        head=`git --git-dir=${S}/.git rev-parse --verify --short HEAD 2> /dev/null`
+        printf "%s%s%s%s" +sdk $sdkversion +g $head > ${B}/.scmversion
+    fi
 }
 
 do_install_append_qoriq-arm() {
     install -m 0644 arch/${ARCH}/boot/zImage ${D}/boot/zImage-${KERNEL_VERSION}
+    ln -sf  zImage-${KERNEL_VERSION} ${D}/boot/zImage
 }
 
 do_deploy_append_qoriq-arm() {
@@ -63,6 +71,4 @@ do_deploy_append_qoriq-arm() {
 }
 
 FILES_kernel-image += "/boot/zImage*"
-
-# make everything compatible for the time being
 COMPATIBLE_MACHINE = "(qoriq)"
-- 
1.9.2



More information about the meta-freescale mailing list