[meta-freescale] [PATCH 04/21] linux: upgrade to v4.4

Chunrong Guo B40290 at freescale.com
Fri Jul 28 00:44:05 PDT 2017


From: Chunrong Guo <chunrong.guo at nxp.com>

      *include the following changes
	ec61f52 - irqchip/gicv3: Remove disabling redistributor and group1 non-secure interrupts
	7f4242d - arm64: dts: update the cpu idle node
	ab7df6a - arm: dma-mapping: export arch_setup_dma_ops()
	9d921e8 - gianfar_ptp: replace get_of_u32 with of_property_read_u32
	ec491e1 - arm64: dts: ls2088ardb: Update nodes for QSPI
	69fe6d7 - mtd: spi-nor: Fix the wrong setting for SPI_NOR_DDR_QUAD_READ
	13694ee - arm: config: Remove CONFIG_MTD_CFI_BE_BYTE_SWAP in multi_v7_defconfig
	9153b91 - arm: dts: Add big-endian for IFC on LS1021A
	765159b - armv8: dts: Add big-endian for IFC on LS1043A/LS1046A
	dec2400 - arm64: configs: Remove CONFIG_MTD_CFI_BE_BYTE_SWAP in lsdk.config
	b1ce954 - driver: mtd: update struct map_info's swap as per map requirement
	dea4d1b - phy: allow 10G fixed PHY support
	e16454a - net: phy: add 10000 as valid speed for fixed-link
	57e8edd - crypto: caam/qi2 - setup CG only if supported
	b4b138a - crypto: caam/qi2 - add dpseci capabilities support
	110fc6b - serial: fsl_lpuart: Remove the alias node dependence
	4f43ea0 - pcie-ep: Fix the memory leak issue
	4a14d8f - pci-ep/ls1046a: Add new interface to show the transfer data
	3da05d2 - pci-ep/ls1046a: Instead of the __get_free_pages with dma_alloc_coherent
	270c4da - pci-ep/ls1046a: Add new input parameter to set transfer data
	c4b6a9a - pci-ep/ls1046a: Remove the BARs set step
	22b58f3 - pci-ep/ls1046a: Correct LUT offset for different LS platform
	cc463ba - pci/layerscape: add msi trigger function
	284f305 - pci/layerscape: fix compile issue
	04f2757 - pci/layerscape: Add PCIe endpoint driver
	faad801 - ls1088a: dts: Added reboot node
	8b5f765 - crypto: caam/qi - abort algorithm setup on DPAA2 parts
	574f783 - arm64: defconfig: enable CONFIG_GPIO_MPC8XXX
	2fb5946 - crypto: caam/qi2 - fix authenc givencrypt shared descriptor
	da6f201 - arm64: dts: ls2088a: add cpu idle support
	943127c - arm64: dts: ls1088a: add cpu idle support
	4884a91 - arm64: dts: ls1043a: add cpu idle support
	9b01166 - arm64: dts: ls1012a: add cpu idle support
	4878b3b - staging: fsl-dpaa2/eth: Set Tx timestamp support correctly
	cde1f46 - dpaa_eth: move global variable 'clock' into ptp_priv_s struct
	7579dc5 - config: arm32: enable necessary options for KVM and containers
	2b8471d - dts: ls1046aqds: add "simple-bus" and ranges to fpga
	bde83bb - usb: dts: for fix usb port faile issue on ls1021atwr
	206cee8 - usb: dwc3 : Add support for USB snooping
	6ee3ba2 - usb: host: xhci: add a new quirk XHCI_NO_64BIT_SUPPORT
	7532a3a - fmd: use ptp-timer for Fman RTC node name
	c95fecc - dpaa_eth: use ptp-timer phandle instead of ptimer-handle
	43ea287 - arm64: dts: ls1088ardb: correct the base address of watchdog
	d1d561b - arm64: dts: add qmda note in ls1043/ls1046 dts.
	1f984eb - arm64:configs: Enable CEPH_FS and XFS_FS in lsdk.config
	63543be - crypto: caam/qi2: add support for TLS 1.0 record
	508ce50 - caam/qi - add support for TLS 1.0 record
	68054f6 - crypto: caam - add support for MOVEB command
	4aa26bc - crypto: caam/qi - explicitly set dma_ops
	9ba9074 - crypto: caam/qi - fix AD length endianness in S/G entry
	41b5850 - crypto: caam/qi - use QBMan (NXP) SDK driver
	db3e005 - dpa_eth: remove unused code
	a648124 - dpaa_eth: ceetm: adapt to net/sched API changes
	e5435d5 - fsl_qbman: set dma_ops
	e954a2f - staging: fsl-dpaa2/eth: Update tx_shaping max burst size
	7644da1 - staging: fsl-dpaa2/eth: Fix kfree bug
	47d6760 - cpufreq: qoriq: enhance bus frequency calculation
	53cc39e - arm64: lsdk.config: Enable CONFIG_OVERLAY_FS in kernel
	e394bc8 - driver: mtd: ifc: update bufnum mask for ver >= 2.0.0
	67565eb - driver: mtd: ifc: Initialize SRAM for all version >= 1.0
	3c9e9ac - Add dspi node for fsl-ls1046a-qds-sdk dts
	9990039 - crypto: backport TLS implementation to v4.4 API

Signed-off-by: Chunrong Guo <B40290 at freescale.com>
---
 .../0003-use-static-inline-in-ARM-lifeboot.h.patch |  39 ------
 .../linux/linux-qoriq/CVE-2016-0758.patch          |  98 ---------------
 .../linux/linux-qoriq/CVE-2016-2053.patch          | 133 ---------------------
 .../fix-the-compile-issue-under-gcc6.patch         | 103 ----------------
 .../modify-defconfig-t1040-nr-cpus.patch           |  33 -----
 ...pic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch |  32 -----
 ...pc-64e-Convert-cmpi-to-cmpwi-in-head_64.S.patch |  57 ---------
 ...x-build-of-the-dtb-embedded-kernel-images.patch |  45 -------
 ...dso64-Use-double-word-compare-on-pointers.patch |  67 -----------
 recipes-kernel/linux/linux-qoriq_4.1.bb            |  82 -------------
 recipes-kernel/linux/linux-qoriq_4.4.bb            |  73 +++++++++++
 11 files changed, 73 insertions(+), 689 deletions(-)
 delete mode 100644 recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/CVE-2016-0758.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/CVE-2016-2053.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/fix-the-compile-issue-under-gcc6.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/modify-defconfig-t1040-nr-cpus.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/powerpc-64e-Convert-cmpi-to-cmpwi-in-head_64.S.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/powerpc-fsl-Fix-build-of-the-dtb-embedded-kernel-images.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq/powerpc-vdso64-Use-double-word-compare-on-pointers.patch
 delete mode 100644 recipes-kernel/linux/linux-qoriq_4.1.bb
 create mode 100644 recipes-kernel/linux/linux-qoriq_4.4.bb

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
deleted file mode 100644
index 161bada..0000000
--- a/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 16b34c08f43c6e65f21a8cab536c497edb6c886e Mon Sep 17 00:00:00 2001
-From: Chunrong Guo <B40290 at freescale.com>
-Date: Thu, 8 Oct 2015 22:48:22 -0500
-Subject: [PATCH] use static inline in ARM lifeboot.h
-
----
- drivers/input/mouse/sentelic.h   | 2 +-
- drivers/input/mouse/trackpoint.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/input/mouse/sentelic.h b/drivers/input/mouse/sentelic.h
-index aa697ec..9e69e94 100644
---- a/drivers/input/mouse/sentelic.h
-+++ b/drivers/input/mouse/sentelic.h
-@@ -123,7 +123,7 @@ struct fsp_data {
- extern int fsp_detect(struct psmouse *psmouse, bool set_properties);
- extern int fsp_init(struct psmouse *psmouse);
- #else
--inline int fsp_detect(struct psmouse *psmouse, bool set_properties)
-+static inline int fsp_detect(struct psmouse *psmouse, bool set_properties)
- {
- 	return -ENOSYS;
- }
-diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
-index ecd0547..693735c 100644
---- a/drivers/input/mouse/trackpoint.h
-+++ b/drivers/input/mouse/trackpoint.h
-@@ -147,7 +147,7 @@ struct trackpoint_data
- #ifdef CONFIG_MOUSE_PS2_TRACKPOINT
- int trackpoint_detect(struct psmouse *psmouse, bool set_properties);
- #else
--inline int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
-+static inline int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
- {
- 	return -ENOSYS;
- }
--- 
-2.3.3
-
diff --git a/recipes-kernel/linux/linux-qoriq/CVE-2016-0758.patch b/recipes-kernel/linux/linux-qoriq/CVE-2016-0758.patch
deleted file mode 100644
index 5447552..0000000
--- a/recipes-kernel/linux/linux-qoriq/CVE-2016-0758.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From af00ae6ef5a2c73f21ba215c476570b7772a14fb Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells at redhat.com>
-Date: Tue, 23 Feb 2016 11:03:12 +0000
-Subject: KEYS: Fix ASN.1 indefinite length object parsing
-
-commit 23c8a812dc3c621009e4f0e5342aa4e2ede1ceaa upstream.
-
-This fixes CVE-2016-0758.
-
-In the ASN.1 decoder, when the length field of an ASN.1 value is extracted,
-it isn't validated against the remaining amount of data before being added
-to the cursor.  With a sufficiently large size indicated, the check:
-
-	datalen - dp < 2
-
-may then fail due to integer overflow.
-
-Fix this by checking the length indicated against the amount of remaining
-data in both places a definite length is determined.
-
-Whilst we're at it, make the following changes:
-
- (1) Check the maximum size of extended length does not exceed the capacity
-     of the variable it's being stored in (len) rather than the type that
-     variable is assumed to be (size_t).
-
- (2) Compare the EOC tag to the symbolic constant ASN1_EOC rather than the
-     integer 0.
-
- (3) To reduce confusion, move the initialisation of len outside of:
-
-	for (len = 0; n > 0; n--) {
-
-     since it doesn't have anything to do with the loop counter n.
-
-CVE: CVE-2016-0758.
-Upstream-Status: Backport [backported from kernel.org 3.16 branch]
-
-Signed-off-by: David Howells <dhowells at redhat.com>
-Reviewed-by: Mimi Zohar <zohar at linux.vnet.ibm.com>
-Acked-by: David Woodhouse <David.Woodhouse at intel.com>
-Acked-by: Peter Jones <pjones at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Sona Sarmadi <sona.sarmadi at enea.com>
----
- lib/asn1_decoder.c | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/lib/asn1_decoder.c b/lib/asn1_decoder.c
-index d60ce8a..806c5b6 100644
---- a/lib/asn1_decoder.c
-+++ b/lib/asn1_decoder.c
-@@ -69,7 +69,7 @@ next_tag:
- 
- 	/* Extract a tag from the data */
- 	tag = data[dp++];
--	if (tag == 0) {
-+	if (tag == ASN1_EOC) {
- 		/* It appears to be an EOC. */
- 		if (data[dp++] != 0)
- 			goto invalid_eoc;
-@@ -91,10 +91,8 @@ next_tag:
- 
- 	/* Extract the length */
- 	len = data[dp++];
--	if (len <= 0x7f) {
--		dp += len;
--		goto next_tag;
--	}
-+	if (len <= 0x7f)
-+		goto check_length;
- 
- 	if (unlikely(len == ASN1_INDEFINITE_LENGTH)) {
- 		/* Indefinite length */
-@@ -105,14 +103,18 @@ next_tag:
- 	}
- 
- 	n = len - 0x80;
--	if (unlikely(n > sizeof(size_t) - 1))
-+	if (unlikely(n > sizeof(len) - 1))
- 		goto length_too_long;
- 	if (unlikely(n > datalen - dp))
- 		goto data_overrun_error;
--	for (len = 0; n > 0; n--) {
-+	len = 0;
-+	for (; n > 0; n--) {
- 		len <<= 8;
- 		len |= data[dp++];
- 	}
-+check_length:
-+	if (len > datalen - dp)
-+		goto data_overrun_error;
- 	dp += len;
- 	goto next_tag;
- 
--- 
-cgit v0.12
-
diff --git a/recipes-kernel/linux/linux-qoriq/CVE-2016-2053.patch b/recipes-kernel/linux/linux-qoriq/CVE-2016-2053.patch
deleted file mode 100644
index 778a99f..0000000
--- a/recipes-kernel/linux/linux-qoriq/CVE-2016-2053.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 15430f775ee686b61569a0c3e74cf0b2ad57c8eb Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells at redhat.com>
-Date: Wed, 5 Aug 2015 12:54:46 +0100
-Subject: ASN.1: Fix non-match detection failure on data overrun
-
-commit 0d62e9dd6da45bbf0f33a8617afc5fe774c8f45f upstream.
-
-If the ASN.1 decoder is asked to parse a sequence of objects, non-optional
-matches get skipped if there's no more data to be had rather than a
-data-overrun error being reported.
-
-This is due to the code segment that decides whether to skip optional
-matches (ie. matches that could get ignored because an element is marked
-OPTIONAL in the grammar) due to a lack of data also skips non-optional
-elements if the data pointer has reached the end of the buffer.
-
-This can be tested with the data decoder for the new RSA akcipher algorithm
-that takes three non-optional integers.  Currently, it skips the last
-integer if there is insufficient data.
-
-Without the fix, #defining DEBUG in asn1_decoder.c will show something
-like:
-
-	next_op: pc=0/13 dp=0/270 C=0 J=0
-	- match? 30 30 00
-	- TAG: 30 266 CONS
-	next_op: pc=2/13 dp=4/270 C=1 J=0
-	- match? 02 02 00
-	- TAG: 02 257
-	- LEAF: 257
-	next_op: pc=5/13 dp=265/270 C=1 J=0
-	- match? 02 02 00
-	- TAG: 02 3
-	- LEAF: 3
-	next_op: pc=8/13 dp=270/270 C=1 J=0
-	next_op: pc=11/13 dp=270/270 C=1 J=0
-	- end cons t=4 dp=270 l=270/270
-
-The next_op line for pc=8/13 should be followed by a match line.
-
-This is not exploitable for X.509 certificates by means of shortening the
-message and fixing up the ASN.1 CONS tags because:
-
- (1) The relevant records being built up are cleared before use.
-
- (2) If the message is shortened sufficiently to remove the public key, the
-     ASN.1 parse of the RSA key will fail quickly due to a lack of data.
-
- (3) Extracted signature data is either turned into MPIs (which cope with a
-     0 length) or is simpler integers specifying algoritms and suchlike
-     (which can validly be 0); and
-
- (4) The AKID and SKID extensions are optional and their removal is handled
-     without risking passing a NULL to asymmetric_key_generate_id().
-
- (5) If the certificate is truncated sufficiently to remove the subject,
-     issuer or serialNumber then the ASN.1 decoder will fail with a 'Cons
-     stack underflow' return.
-
-This is not exploitable for PKCS#7 messages by means of removal of elements
-from such a message from the tail end of a sequence:
-
- (1) Any shortened X.509 certs embedded in the PKCS#7 message are survivable
-     as detailed above.
-
- (2) The message digest content isn't used if it shows a NULL pointer,
-     similarly, the authattrs aren't used if that shows a NULL pointer.
-
- (3) A missing signature results in a NULL MPI - which the MPI routines deal
-     with.
-
- (4) If data is NULL, it is expected that the message has detached content and
-     that is handled appropriately.
-
- (5) If the serialNumber is excised, the unconditional action associated
-     with it will pick up the containing SEQUENCE instead, so no NULL
-     pointer will be seen here.
-
-     If both the issuer and the serialNumber are excised, the ASN.1 decode
-     will fail with an 'Unexpected tag' return.
-
-     In either case, there's no way to get to asymmetric_key_generate_id()
-     with a NULL pointer.
-
- (6) Other fields are decoded to simple integers.  Shortening the message
-     to omit an algorithm ID field will cause checks on this to fail early
-     in the verification process.
-
-This can also be tested by snipping objects off of the end of the ASN.1 stream
-such that mandatory tags are removed - or even from the end of internal
-SEQUENCEs.  If any mandatory tag is missing, the error EBADMSG *should* be
-produced.  Without this patch ERANGE or ENOPKG might be produced or the parse
-may apparently succeed, perhaps with ENOKEY or EKEYREJECTED being produced
-later, depending on what gets snipped.
-
-Just snipping off the final BIT_STRING or OCTET_STRING from either sample
-should be a start since both are mandatory and neither will cause an EBADMSG
-without the patches
-
-CVE: CVE-2016-2053
-Upstream-Status: Backport [kernel.org linux-stable 3.16 branch]
-
-Reported-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: David Howells <dhowells at redhat.com>
-Tested-by: Marcel Holtmann <marcel at holtmann.org>
-Reviewed-by: David Woodhouse <David.Woodhouse at intel.com>
-Cc: Moritz Muehlenhoff <jmm at inutil.org>
-[ luis: backported to 3.16: adjusted context ]
-Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
-Signed-off-by: Sona Sarmadi <sona.sarmadi at enea.com>
----
- lib/asn1_decoder.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/lib/asn1_decoder.c b/lib/asn1_decoder.c
-index 1a000bb..d60ce8a 100644
---- a/lib/asn1_decoder.c
-+++ b/lib/asn1_decoder.c
-@@ -208,9 +208,8 @@ next_op:
- 		unsigned char tmp;
- 
- 		/* Skip conditional matches if possible */
--		if ((op & ASN1_OP_MATCH__COND &&
--		     flags & FLAG_MATCHED) ||
--		    dp == datalen) {
-+		if ((op & ASN1_OP_MATCH__COND && flags & FLAG_MATCHED) ||
-+		    (op & ASN1_OP_MATCH__SKIP && dp == datalen)) {
- 			pc += asn1_op_lengths[op];
- 			goto next_op;
- 		}
--- 
-cgit v0.12
-
diff --git a/recipes-kernel/linux/linux-qoriq/fix-the-compile-issue-under-gcc6.patch b/recipes-kernel/linux/linux-qoriq/fix-the-compile-issue-under-gcc6.patch
deleted file mode 100644
index 910ef18..0000000
--- a/recipes-kernel/linux/linux-qoriq/fix-the-compile-issue-under-gcc6.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Fix the compile issue under gcc6
-
-Fix the following build error:
-| .../include/linux/compiler-gcc.h:106:30: fatal error: linux/compiler-gcc6.h: No such file or directory
-| #include gcc_header(__GNUC__)
-
-Signed-off-by: Zhenhua Luo <zhenhua.luo at nxp.com>
-
-Upstream-Status: Pending
----
- arch/powerpc/kernel/Makefile  |  2 --
- include/linux/compiler-gcc6.h | 66 +++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 66 insertions(+), 2 deletions(-)
- create mode 100644 include/linux/compiler-gcc6.h
-
-diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
-index c326675..45f0494 100644
---- a/arch/powerpc/kernel/Makefile
-+++ b/arch/powerpc/kernel/Makefile
-@@ -4,8 +4,6 @@
- 
- CFLAGS_ptrace.o		+= -DUTS_MACHINE='"$(UTS_MACHINE)"'
- 
--subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
--
- ifeq ($(CONFIG_PPC64),y)
- CFLAGS_prom_init.o	+= $(NO_MINIMAL_TOC)
- endif
-diff --git a/include/linux/compiler-gcc6.h b/include/linux/compiler-gcc6.h
-new file mode 100644
-index 0000000..cdd1cc2
---- /dev/null
-+++ b/include/linux/compiler-gcc6.h
-@@ -0,0 +1,66 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used				__attribute__((__used__))
-+#define __must_check			__attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b)	__builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+   to them will be unlikely.  This means a lot of manual unlikely()s
-+   are unnecessary now for any paths leading to the usual suspects
-+   like BUG(), printk(), panic() etc. [but let's keep them for now for
-+   older compilers]
-+
-+   Early snapshots of gcc 4.3 don't support this and we can't detect this
-+   in the preprocessor, but we can live with this because they're unreleased.
-+   Maketime probing would be overkill here.
-+
-+   gcc also has a __attribute__((__hot__)) to move hot functions into
-+   a special section, but I don't see any sense in this right now in
-+   the kernel context */
-+#define __cold			__attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable.  This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased.  Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone	__attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ * Fixed in GCC 4.8.2 and later versions.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...)	do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
--- 
-2.5.0
-
diff --git a/recipes-kernel/linux/linux-qoriq/modify-defconfig-t1040-nr-cpus.patch b/recipes-kernel/linux/linux-qoriq/modify-defconfig-t1040-nr-cpus.patch
deleted file mode 100644
index 7d109ed..0000000
--- a/recipes-kernel/linux/linux-qoriq/modify-defconfig-t1040-nr-cpus.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8545129540a5862b22aad03badb2a9f93bf29117 Mon Sep 17 00:00:00 2001
-From: Bob Cochran <yocto at mindchasers.com>
-Date: Mon, 3 Nov 2014 22:45:35 -0500
-Subject: [meta-fsl-ppc][PATCH] linux-qoriq: Change defconfig for T1040 to
- match number of CPUS
-
-Having a number higher than necessary for NR_CPUS wastes memory by
-instantiating unnecessary structures in RAM.  An example is in the DPAA where
-DPAA_ETH_TX_QUEUES is defined based on NR_CPUS and used to create
-dozens of extra qman_fq structures.  Using the prior value of 24, which was
-left over from the T4240 created an additonal 60 frame queue structures alone.
-
-This has been tested on t1040rdb-64b.  .
-
-Signed-off-by: Bob Cochran <yocto at mindchasers.com>
----
- arch/powerpc/configs/corenet32_fmanv3l_smp_defconfig |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/powerpc/configs/corenet32_fmanv3l_smp_defconfig b/arch/powerpc/configs/corenet32_fmanv3l_smp_defconfig
-index a401e7c..5542248 100644
---- a/arch/powerpc/configs/corenet32_fmanv3l_smp_defconfig
-+++ b/arch/powerpc/configs/corenet32_fmanv3l_smp_defconfig
-@@ -1,6 +1,6 @@
- CONFIG_PPC_85xx=y
- CONFIG_SMP=y
--CONFIG_NR_CPUS=8
-+CONFIG_NR_CPUS=4
- CONFIG_EXPERIMENTAL=y
- CONFIG_SYSVIPC=y
- CONFIG_POSIX_MQUEUE=y
---
-1.7.9.5
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
deleted file mode 100644
index 5f3220d..0000000
--- a/recipes-kernel/linux/linux-qoriq/only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-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/powerpc-64e-Convert-cmpi-to-cmpwi-in-head_64.S.patch b/recipes-kernel/linux/linux-qoriq/powerpc-64e-Convert-cmpi-to-cmpwi-in-head_64.S.patch
deleted file mode 100644
index 710b212..0000000
--- a/recipes-kernel/linux/linux-qoriq/powerpc-64e-Convert-cmpi-to-cmpwi-in-head_64.S.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From f87f253bac3ce4a4eb2a60a1ae604d74e65f9042 Mon Sep 17 00:00:00 2001
-From: Nicholas Piggin <npiggin at gmail.com>
-Date: Thu, 24 Nov 2016 00:02:07 +1100
-Subject: [PATCH] powerpc/64e: Convert cmpi to cmpwi in head_64.S
-
-From 80f23935cadb ("powerpc: Convert cmp to cmpd in idle enter sequence"):
-
-  PowerPC's "cmp" instruction has four operands. Normally people write
-  "cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
-  people forget, and write "cmp" with just three operands.
-
-  With older binutils this is silently accepted as if this was "cmpw",
-  while often "cmpd" is wanted. With newer binutils GAS will complain
-  about this for 64-bit code. For 32-bit code it still silently assumes
-  "cmpw" is what is meant.
-
-In this case, cmpwi is called for, so this is just a build fix for
-new toolchains.
-
-Cc: stable at vger.kernel.org # v3.0+
-Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
-Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
----
- arch/powerpc/kernel/head_64.S | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
-index 451a8e1..bdb4612 100644
---- a/arch/powerpc/kernel/head_64.S
-+++ b/arch/powerpc/kernel/head_64.S
-@@ -221,9 +221,9 @@ booting_thread_hwid:
-  */
- _GLOBAL(book3e_start_thread)
- 	LOAD_REG_IMMEDIATE(r5, MSR_KERNEL)
--	cmpi	0, r3, 0
-+	cmpwi	r3, 0
- 	beq	10f
--	cmpi	0, r3, 1
-+	cmpwi	r3, 1
- 	beq	11f
- 	/* If the thread id is invalid, just exit. */
- 	b	13f
-@@ -248,9 +248,9 @@ _GLOBAL(book3e_start_thread)
-  * r3 = the thread physical id
-  */
- _GLOBAL(book3e_stop_thread)
--	cmpi	0, r3, 0
-+	cmpwi	r3, 0
- 	beq	10f
--	cmpi	0, r3, 1
-+	cmpwi	r3, 1
- 	beq	10f
- 	/* If the thread id is invalid, just exit. */
- 	b	13f
--- 
-2.7.4
-
diff --git a/recipes-kernel/linux/linux-qoriq/powerpc-fsl-Fix-build-of-the-dtb-embedded-kernel-images.patch b/recipes-kernel/linux/linux-qoriq/powerpc-fsl-Fix-build-of-the-dtb-embedded-kernel-images.patch
deleted file mode 100644
index 1103f0c..0000000
--- a/recipes-kernel/linux/linux-qoriq/powerpc-fsl-Fix-build-of-the-dtb-embedded-kernel-images.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 4680c9d50637f78338e786c920aef6c171c7cc00 Mon Sep 17 00:00:00 2001
-From: Alessio Igor Bogani <alessio.bogani at elettra.eu>
-Date: Mon, 18 Apr 2016 08:36:19 +0200
-Subject: powerpc/fsl: Fix build of the dtb embedded kernel images
-
-Commit dc37374b9c833 ("powerpc/fsl: Move Freescale device tree files
-into fsl folder") moved a lot of device tree files into fsl directory,
-fixing Makefile for cuImage target only.  Unfortunately there are other
-targets which require embedding a device tree into the kernel image
-(e.g. dtbImage.%).  So use a more generic approach.
-
-Signed-off-by: Alessio Igor Bogani <alessio.bogani at elettra.eu>
-[scottwood: cleaned up commit message]
-Signed-off-by: Scott Wood <oss at buserror.net>
----
- arch/powerpc/boot/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
-index 6116510..8fe78a3 100644
---- a/arch/powerpc/boot/Makefile
-+++ b/arch/powerpc/boot/Makefile
-@@ -362,9 +362,6 @@ $(obj)/cuImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits)
- $(obj)/cuImage.%: vmlinux $(obj)/%.dtb $(wrapperbits)
- 	$(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb)
- 
--$(obj)/cuImage.%: vmlinux $(obj)/fsl/%.dtb $(wrapperbits)
--	$(call if_changed,wrap,cuboot-$*,,$(obj)/fsl/$*.dtb)
--
- $(obj)/simpleImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits)
- 	$(call if_changed,wrap,simpleboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
- 
-@@ -381,6 +378,9 @@ $(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits)
- $(obj)/%.dtb: $(src)/dts/%.dts FORCE
- 	$(call if_changed_dep,dtc)
- 
-+$(obj)/%.dtb: $(src)/dts/fsl/%.dts FORCE
-+	$(call if_changed_dep,dtc)
-+
- # If there isn't a platform selected then just strip the vmlinux.
- ifeq (,$(image-y))
- image-y := vmlinux.strip
--- 
-cgit v0.12
-
diff --git a/recipes-kernel/linux/linux-qoriq/powerpc-vdso64-Use-double-word-compare-on-pointers.patch b/recipes-kernel/linux/linux-qoriq/powerpc-vdso64-Use-double-word-compare-on-pointers.patch
deleted file mode 100644
index 9fa40de..0000000
--- a/recipes-kernel/linux/linux-qoriq/powerpc-vdso64-Use-double-word-compare-on-pointers.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5045ea37377ce8cca6890d32b127ad6770e6dce5 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Sun, 25 Sep 2016 17:16:53 +1000
-Subject: [PATCH] powerpc/vdso64: Use double word compare on pointers
-
-__kernel_get_syscall_map() and __kernel_clock_getres() use cmpli to
-check if the passed in pointer is non zero. cmpli maps to a 32 bit
-compare on binutils, so we ignore the top 32 bits.
-
-A simple test case can be created by passing in a bogus pointer with
-the bottom 32 bits clear. Using a clk_id that is handled by the VDSO,
-then one that is handled by the kernel shows the problem:
-
-  printf("%d\n", clock_getres(CLOCK_REALTIME, (void *)0x100000000));
-  printf("%d\n", clock_getres(CLOCK_BOOTTIME, (void *)0x100000000));
-
-And we get:
-
-  0
-  -1
-
-The bigger issue is if we pass a valid pointer with the bottom 32 bits
-clear, in this case we will return success but won't write any data
-to the pointer.
-
-I stumbled across this issue because the LLVM integrated assembler
-doesn't accept cmpli with 3 arguments. Fix this by converting them to
-cmpldi.
-
-Fixes: a7f290dad32e ("[PATCH] powerpc: Merge vdso's and add vdso support to 32 bits kernel")
-Cc: stable at vger.kernel.org # v2.6.15+
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
----
- arch/powerpc/kernel/vdso64/datapage.S     | 2 +-
- arch/powerpc/kernel/vdso64/gettimeofday.S | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/powerpc/kernel/vdso64/datapage.S b/arch/powerpc/kernel/vdso64/datapage.S
-index 184a6ba..abf17fe 100644
---- a/arch/powerpc/kernel/vdso64/datapage.S
-+++ b/arch/powerpc/kernel/vdso64/datapage.S
-@@ -59,7 +59,7 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
- 	bl	V_LOCAL_FUNC(__get_datapage)
- 	mtlr	r12
- 	addi	r3,r3,CFG_SYSCALL_MAP64
--	cmpli	cr0,r4,0
-+	cmpldi	cr0,r4,0
- 	crclr	cr0*4+so
- 	beqlr
- 	li	r0,NR_syscalls
-diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S
-index a76b4af..3820213 100644
---- a/arch/powerpc/kernel/vdso64/gettimeofday.S
-+++ b/arch/powerpc/kernel/vdso64/gettimeofday.S
-@@ -145,7 +145,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
- 	bne	cr0,99f
- 
- 	li	r3,0
--	cmpli	cr0,r4,0
-+	cmpldi	cr0,r4,0
- 	crclr	cr0*4+so
- 	beqlr
- 	lis	r5,CLOCK_REALTIME_RES at h
--- 
-2.7.4
-
diff --git a/recipes-kernel/linux/linux-qoriq_4.1.bb b/recipes-kernel/linux/linux-qoriq_4.1.bb
deleted file mode 100644
index 02680e9..0000000
--- a/recipes-kernel/linux/linux-qoriq_4.1.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-inherit kernel qoriq_build_64bit_kernel
-inherit fsl-kernel-localversion
-require recipes-kernel/linux/linux-dtb.inc
-
-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;nobranch=1 \
-    file://modify-defconfig-t1040-nr-cpus.patch \
-    file://0003-use-static-inline-in-ARM-lifeboot.h.patch \
-    file://fix-the-compile-issue-under-gcc6.patch \
-    file://only-set-vmpic_msi_feature-if-CONFIG_EPAPR_PARAVIRT-.patch \
-    file://powerpc-fsl-Fix-build-of-the-dtb-embedded-kernel-images.patch \
-    file://CVE-2016-2053.patch \
-    file://CVE-2016-0758.patch \
-    file://powerpc-64e-Convert-cmpi-to-cmpwi-in-head_64.S.patch \
-    file://powerpc-vdso64-Use-double-word-compare-on-pointers.patch \
-"
-SRCREV = "1ae843c08261402b2c35d83422e4fa1e313611f4"
-
-S = "${WORKDIR}/git"
-
-DEPENDS_append = " libgcc"
-# 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_qoriq-arm64 = "freescale.config "
-DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch2-32b = "freescale_aarch32.config "
-
-do_merge_delta_config() {
-    # copy desired defconfig so we pick it up for the real kernel_do_configure
-    cp ${KERNEL_DEFCONFIG} .config
-    
-    # add config fragments
-    for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do
-        if [ -f "${deltacfg}" ]; then
-            ${S}/scripts/kconfig/merge_config.sh -m .config ${deltacfg}
-        elif [ -f "${WORKDIR}/${deltacfg}" ]; then
-            ${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/${ARCH}/configs/${deltacfg}
-        fi
-    done
-    cp .config ${WORKDIR}/defconfig
-}
-addtask merge_delta_config before do_preconfigure after do_patch
-
-# The link of dts folder is needed for 32b compile of aarch64 targets(e.g. ls1043ardb-32b)
-do_compile_prepend_fsl-lsch2-32b() {
-    ln -sfT ${STAGING_KERNEL_DIR}/arch/arm64/boot/dts/freescale ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale
-}
-
-do_install_prepend_fsl-lsch2-32b() {
-    rm -f ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale
-}
-
-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() {
-    install -m 0644 arch/${ARCH}/boot/zImage ${DEPLOYDIR}/${ZIMAGE_BASE_NAME}.bin
-    ln -sf ${ZIMAGE_BASE_NAME}.bin ${DEPLOYDIR}/zImage-${MACHINE}.bin
-    ln -sf ${ZIMAGE_BASE_NAME}.bin ${DEPLOYDIR}/zImage
-}
-
-FILES_kernel-image += "/boot/zImage*"
-COMPATIBLE_MACHINE = "(qoriq)"
diff --git a/recipes-kernel/linux/linux-qoriq_4.4.bb b/recipes-kernel/linux/linux-qoriq_4.4.bb
new file mode 100644
index 0000000..6feca8f
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq_4.4.bb
@@ -0,0 +1,73 @@
+inherit kernel qoriq_build_64bit_kernel
+inherit fsl-kernel-localversion
+require recipes-kernel/linux/linux-dtb.inc
+
+SUMMARY = "Linux Kernel for Freescale QorIQ platforms"
+SECTION = "kernel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+SRC_URI = "git://github.com/qoriq-open-source/linux.git;nobranch=1 \
+"
+SRCREV = "ec61f521be6a22b100aabc0e2726c670aec3c845"
+
+S = "${WORKDIR}/git"
+
+DEPENDS_append = " libgcc"
+# 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_qoriq-arm64 = "freescale.config "
+DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch2-32b = "freescale_aarch32.config "
+
+do_merge_delta_config() {
+    # copy desired defconfig so we pick it up for the real kernel_do_configure
+    cp ${KERNEL_DEFCONFIG} .config
+    
+    # add config fragments
+    for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do
+        if [ -f "${deltacfg}" ]; then
+            ${S}/scripts/kconfig/merge_config.sh -m .config ${deltacfg}
+        elif [ -f "${WORKDIR}/${deltacfg}" ]; then
+            ${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/${ARCH}/configs/${deltacfg}
+        fi
+    done
+    cp .config ${WORKDIR}/defconfig
+}
+addtask merge_delta_config before do_preconfigure after do_patch
+
+# The link of dts folder is needed for 32b compile of aarch64 targets(e.g. ls1043ardb-32b)
+do_compile_prepend_fsl-lsch2-32b() {
+    ln -sfT ${STAGING_KERNEL_DIR}/arch/arm64/boot/dts/freescale ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale
+}
+
+do_install_prepend_fsl-lsch2-32b() {
+    rm -f ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale
+}
+
+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() {
+    install -m 0644 arch/${ARCH}/boot/zImage ${DEPLOYDIR}/${ZIMAGE_BASE_NAME}.bin
+    ln -sf ${ZIMAGE_BASE_NAME}.bin ${DEPLOYDIR}/zImage-${MACHINE}.bin
+    ln -sf ${ZIMAGE_BASE_NAME}.bin ${DEPLOYDIR}/zImage
+}
+
+FILES_kernel-image += "/boot/zImage*"
+COMPATIBLE_MACHINE = "(qoriq)"
-- 
1.9.0



More information about the meta-freescale mailing list