Add support for i.MX 7Dual and i.MX 6QuadPlus SoC. Add support for graphics loadable modules for mixing different graphics versions with older kernels.
Note that defconfig is same for mx6 and mx7 so changing defconfig diretory to imx to use for both. Signed-off-by: Lauren Post <[email protected]> --- ...0001-ARM-imx6q-drop-unnecessary-semicolon.patch | 35 ------- ...lk-imx6q-fix-video-divider-for-rev-T0-1.0.patch | 40 -------- ...et-fec-fix-the-warning-found-by-dma-debug.patch | 100 -------------------- ...Disable-imx6sl-specific-code-when-imx6sl-.patch | 0 ...sdhc-imx-Fixup-runtime-PM-conditions-duri.patch | 0 .../mx6 => linux-imx-3.14.38/imx}/defconfig | 23 +++++ ...ool_3.14.28.bb => linux-imx-mfgtool_3.14.38.bb} | 0 recipes-kernel/linux/linux-imx_3.14.28.bb | 25 ----- recipes-kernel/linux/linux-imx_3.14.38.bb | 35 +++++++ 9 files changed, 58 insertions(+), 200 deletions(-) delete mode 100644 recipes-kernel/linux/linux-imx-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch delete mode 100644 recipes-kernel/linux/linux-imx-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch delete mode 100644 recipes-kernel/linux/linux-imx-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch rename recipes-kernel/linux/{linux-imx-3.14.28 => linux-imx-3.14.38}/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch (100%) rename recipes-kernel/linux/{linux-imx-3.14.28 => linux-imx-3.14.38}/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch (100%) rename recipes-kernel/linux/{linux-imx-3.14.28/mx6 => linux-imx-3.14.38/imx}/defconfig (94%) rename recipes-kernel/linux/{linux-imx-mfgtool_3.14.28.bb => linux-imx-mfgtool_3.14.38.bb} (100%) delete mode 100644 recipes-kernel/linux/linux-imx_3.14.28.bb create mode 100644 recipes-kernel/linux/linux-imx_3.14.38.bb diff --git a/recipes-kernel/linux/linux-imx-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch b/recipes-kernel/linux/linux-imx-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch deleted file mode 100644 index 8d43183..0000000 --- a/recipes-kernel/linux/linux-imx-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5332a5467624b01d0c166309cd1dceac5f7b9d96 Mon Sep 17 00:00:00 2001 -From: Dmitry Voytik <[email protected]> -Date: Thu, 6 Nov 2014 22:46:20 +0400 -Subject: [PATCH 1/3] ARM: imx6q: drop unnecessary semicolon - -commit d2a10a1727b3948019128e83162f22c65859f1fd upstream. - -Drop unnecessary semicolon after closing curly bracket. - -Signed-off-by: Dmitry Voytik <[email protected]> -Signed-off-by: Shawn Guo <[email protected]> -Signed-off-by: Greg Kroah-Hartman <[email protected]> - -Upstream-Status: Backport [3.14.29] - ---- - arch/arm/mach-imx/clk-imx6q.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c -index f0d8000..a5107ab 100644 ---- a/arch/arm/mach-imx/clk-imx6q.c -+++ b/arch/arm/mach-imx/clk-imx6q.c -@@ -149,7 +149,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) - post_div_table[2].div = 1; - video_div_table[1].div = 1; - video_div_table[2].div = 1; -- }; -+ } - - clk[IMX6QDL_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", base + 0x00, 14, 2, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); - clk[IMX6QDL_PLL2_BYPASS_SRC] = imx_clk_mux("pll2_bypass_src", base + 0x30, 14, 2, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); --- -2.1.4 - diff --git a/recipes-kernel/linux/linux-imx-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch b/recipes-kernel/linux/linux-imx-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch deleted file mode 100644 index d7b852d..0000000 --- a/recipes-kernel/linux/linux-imx-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 5b9eb0cdaefd7ac8e31c1e1812582e0169ba9722 Mon Sep 17 00:00:00 2001 -From: Gary Bisson <[email protected]> -Date: Wed, 3 Dec 2014 15:03:51 -0800 -Subject: [PATCH 2/3] ARM: clk-imx6q: fix video divider for rev T0 1.0 - -commit 81ef447950bf0955aca46f4a7617d8ce435cf0ce upstream. - -The post dividers do not work on i.MX6Q rev T0 1.0 so they must be fixed -to 1. As the table index was wrong, a divider a of 4 could still be -requested which implied the clock not to be set properly. This is the -root cause of the HDMI not working at high resolution on rev T0 1.0 of -the SoC. - -Signed-off-by: Gary Bisson <[email protected]> -Cc: <[email protected]> -Signed-off-by: Shawn Guo <[email protected]> -Signed-off-by: Greg Kroah-Hartman <[email protected]> - -Upstream-Status: Backport [3.14.29] - ---- - arch/arm/mach-imx/clk-imx6q.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c -index a5107ab..cf060a9 100644 ---- a/arch/arm/mach-imx/clk-imx6q.c -+++ b/arch/arm/mach-imx/clk-imx6q.c -@@ -148,7 +148,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) - post_div_table[1].div = 1; - post_div_table[2].div = 1; - video_div_table[1].div = 1; -- video_div_table[2].div = 1; -+ video_div_table[3].div = 1; - } - - clk[IMX6QDL_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", base + 0x00, 14, 2, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); --- -2.1.4 - diff --git a/recipes-kernel/linux/linux-imx-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch b/recipes-kernel/linux/linux-imx-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch deleted file mode 100644 index d40e55a..0000000 --- a/recipes-kernel/linux/linux-imx-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch +++ /dev/null @@ -1,100 +0,0 @@ -From a2fe37b69d4fe369c284d50927193fed81c238a0 Mon Sep 17 00:00:00 2001 -From: Fabio Estevam <[email protected]> -Date: Fri, 13 Mar 2015 14:07:54 -0300 -Subject: [PATCH] Revert "net: fec: fix the warning found by dma debug" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit 2b995f63987013bacde99168218f9c7b252bdcf1. - -Панов Андрей reported the following regression: - -"Commit 2b995f63987013bacde99168218f9c7b252bdcf1 in 4.0.0-rc3 introduces a -nasty bug in transmit, corrupting packets. - -To reproduce: - -$ dd if=/dev/zero of=zeros bs=1M count=20 -$ md5sum -b zeros -8f4e33f3dc3e414ff94e5fb6905cba8c *zeros - -This checksum is correct. - -Copy file "zeros" to another host with NFS, and it gets corrupted, checksum is -changed. -File should be big, small amounts of transmit isn't affected. - -I use an i.MX6 Quad board. - -If this commit is reverted, all works fine." - -Reported-by: Панов Андрей <[email protected]> -Signed-off-by: Fabio Estevam <[email protected]> -Signed-off-by: David S. Miller <[email protected]> ---- - drivers/net/ethernet/freescale/fec_main.c | 34 ++++++++++--------------------- - 1 file changed, 11 insertions(+), 23 deletions(-) - -diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c -index 787db50..78e1ce0 100644 ---- a/drivers/net/ethernet/freescale/fec_main.c -+++ b/drivers/net/ethernet/freescale/fec_main.c -@@ -1189,13 +1189,12 @@ static void - fec_enet_tx_queue(struct net_device *ndev, u16 queue_id) - { - struct fec_enet_private *fep; -- struct bufdesc *bdp, *bdp_t; -+ struct bufdesc *bdp; - unsigned short status; - struct sk_buff *skb; - struct fec_enet_priv_tx_q *txq; - struct netdev_queue *nq; - int index = 0; -- int i, bdnum; - int entries_free; - - fep = netdev_priv(ndev); -@@ -1216,29 +1215,18 @@ fec_enet_tx_queue(struct net_device *ndev, u16 queue_id) - if (bdp == txq->cur_tx) - break; - -- bdp_t = bdp; -- bdnum = 1; -- index = fec_enet_get_bd_index(txq->tx_bd_base, bdp_t, fep); -- skb = txq->tx_skbuff[index]; -- while (!skb) { -- bdp_t = fec_enet_get_nextdesc(bdp_t, fep, queue_id); -- index = fec_enet_get_bd_index(txq->tx_bd_base, bdp_t, fep); -- skb = txq->tx_skbuff[index]; -- bdnum++; -- } -- if (skb_shinfo(skb)->nr_frags && -- (status = bdp_t->cbd_sc) & BD_ENET_TX_READY) -- break; -+ index = fec_enet_get_bd_index(txq->tx_bd_base, bdp, fep); - -- for (i = 0; i < bdnum; i++) { -- if (!IS_TSO_HEADER(txq, bdp->cbd_bufaddr)) -- dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, -- bdp->cbd_datlen, DMA_TO_DEVICE); -- bdp->cbd_bufaddr = 0; -- if (i < bdnum - 1) -- bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); -- } -+ skb = txq->tx_skbuff[index]; - txq->tx_skbuff[index] = NULL; -+ if (!IS_TSO_HEADER(txq, bdp->cbd_bufaddr)) -+ dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, -+ bdp->cbd_datlen, DMA_TO_DEVICE); -+ bdp->cbd_bufaddr = 0; -+ if (!skb) { -+ bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); -+ continue; -+ } - - /* Check for errors. */ - if (status & (BD_ENET_TX_HB | BD_ENET_TX_LC | --- -1.9.3 - diff --git a/recipes-kernel/linux/linux-imx-3.14.28/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch b/recipes-kernel/linux/linux-imx-3.14.38/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch similarity index 100% rename from recipes-kernel/linux/linux-imx-3.14.28/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch rename to recipes-kernel/linux/linux-imx-3.14.38/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch diff --git a/recipes-kernel/linux/linux-imx-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch b/recipes-kernel/linux/linux-imx-3.14.38/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch similarity index 100% rename from recipes-kernel/linux/linux-imx-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch rename to recipes-kernel/linux/linux-imx-3.14.38/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch diff --git a/recipes-kernel/linux/linux-imx-3.14.28/mx6/defconfig b/recipes-kernel/linux/linux-imx-3.14.38/imx/defconfig similarity index 94% rename from recipes-kernel/linux/linux-imx-3.14.28/mx6/defconfig rename to recipes-kernel/linux/linux-imx-3.14.38/imx/defconfig index 303e679..43f152f 100644 --- a/recipes-kernel/linux/linux-imx-3.14.28/mx6/defconfig +++ b/recipes-kernel/linux/linux-imx-3.14.38/imx/defconfig @@ -2,6 +2,8 @@ CONFIG_KERNEL_LZO=y CONFIG_SYSVIPC=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_CGROUPS=y CONFIG_RELAY=y @@ -25,9 +27,11 @@ CONFIG_SOC_IMX53=y CONFIG_SOC_IMX6Q=y CONFIG_SOC_IMX6SL=y CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX7D=y CONFIG_SOC_VF610=y # CONFIG_SWP_EMULATE is not set CONFIG_SMP=y +CONFIG_HAVE_ARM_ARCH_TIMER=y CONFIG_VMSPLIT_2G=y CONFIG_PREEMPT=y CONFIG_AEABI=y @@ -42,6 +46,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_ARM_IMX7D_CPUFREQ=y CONFIG_CPU_IDLE=y CONFIG_VFP=y CONFIG_NEON=y @@ -181,10 +186,14 @@ CONFIG_I2C_ALGOPCF=m CONFIG_I2C_ALGOPCA=m CONFIG_I2C_IMX=y CONFIG_SPI=y +CONFIG_SPI_GPIO=y CONFIG_SPI_IMX=y CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_74X164=y CONFIG_POWER_SUPPLY=y CONFIG_SABRESD_MAX8903=y +CONFIG_IMX6_USB_CHARGER=y CONFIG_SENSORS_MAX17135=y CONFIG_SENSORS_MAG3110=y CONFIG_THERMAL=y @@ -249,6 +258,7 @@ CONFIG_FB_MXC_MIPI_DSI=y CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y CONFIG_FB_MXC_HDMI=y CONFIG_FB_MXC_EINK_PANEL=y +CONFIG_FB_MXC_EINK_V2_PANEL=y CONFIG_FB_MXS_SII902X=y CONFIG_FB_MXC_DCIC=m CONFIG_HANNSTAR_CABC=y @@ -262,6 +272,9 @@ CONFIG_SND_SOC=y CONFIG_SND_IMX_SOC=y CONFIG_SND_SOC_EUKREA_TLV320=y CONFIG_SND_SOC_IMX_CS42888=y +CONFIG_SND_SOC_IMX_SII902X=y +CONFIG_SND_SOC_IMX_WM8958=y +CONFIG_SND_SOC_IMX_WM8960=y CONFIG_SND_SOC_IMX_WM8962=y CONFIG_SND_SOC_IMX_SGTL5000=y CONFIG_SND_SOC_IMX_MQS=y @@ -270,6 +283,7 @@ CONFIG_SND_SOC_IMX_MC13783=y CONFIG_SND_SOC_IMX_HDMI=y CONFIG_SND_SOC_IMX_SI476X=y CONFIG_USB=y +CONFIG_USB_OTG_FSM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MXC=y CONFIG_USB_ACM=m @@ -310,8 +324,10 @@ CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_ESDHC_IMX=y CONFIG_MXC_IPU=y CONFIG_MXC_GPU_VIV=y +CONFIG_MXC_IPU_V3_PRE=y CONFIG_MXC_MIPI_CSI2=y CONFIG_MXC_MLB150=m +CONFIG_MXC_SIM=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y @@ -328,6 +344,7 @@ CONFIG_RTC_DRV_MXC=y CONFIG_RTC_DRV_SNVS=y CONFIG_DMADEVICES=y CONFIG_MXC_PXP_V2=y +CONFIG_MXC_PXP_V3=y CONFIG_IMX_SDMA=y CONFIG_MXS_DMA=y CONFIG_STAGING=y @@ -335,6 +352,7 @@ CONFIG_STAGING_MEDIA=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_IIO=y CONFIG_VF610_ADC=y +CONFIG_AD2802A=y CONFIG_PWM=y CONFIG_PWM_IMX=y CONFIG_EXT2_FS=y @@ -376,6 +394,11 @@ CONFIG_MAGIC_SYSRQ=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_FTRACE is not set +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_USER=y CONFIG_CRYPTO_TEST=m diff --git a/recipes-kernel/linux/linux-imx-mfgtool_3.14.28.bb b/recipes-kernel/linux/linux-imx-mfgtool_3.14.38.bb similarity index 100% rename from recipes-kernel/linux/linux-imx-mfgtool_3.14.28.bb rename to recipes-kernel/linux/linux-imx-mfgtool_3.14.38.bb diff --git a/recipes-kernel/linux/linux-imx_3.14.28.bb b/recipes-kernel/linux/linux-imx_3.14.28.bb deleted file mode 100644 index ba6f99a..0000000 --- a/recipes-kernel/linux/linux-imx_3.14.28.bb +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (C) 2013-2015 Freescale Semiconductor -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Linux Kernel provided and supported by Freescale" -DESCRIPTION = "Linux Kernel provided and supported by Freescale with focus on \ -i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU and IPU." - -require recipes-kernel/linux/linux-imx.inc -require recipes-kernel/linux/linux-dtb.inc - -DEPENDS += "lzop-native bc-native" - -SRCBRANCH = "imx_3.14.28_1.0.0_ga" -LOCALVERSION = "-1.0.0_ga" -SRCREV = "91cf351a2afc17ac4a260e4d2ad1e32d00925a1b" - -SRC_URI += " \ - file://0001-ARM-imx6q-drop-unnecessary-semicolon.patch \ - file://0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch \ - file://0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch \ - file://0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch \ - file://0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch \ -" - -COMPATIBLE_MACHINE = "(mx6)" diff --git a/recipes-kernel/linux/linux-imx_3.14.38.bb b/recipes-kernel/linux/linux-imx_3.14.38.bb new file mode 100644 index 0000000..3600abf --- /dev/null +++ b/recipes-kernel/linux/linux-imx_3.14.38.bb @@ -0,0 +1,35 @@ +# Copyright (C) 2013-2015 Freescale Semiconductor +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Linux Kernel provided and supported by Freescale" +DESCRIPTION = "Linux Kernel provided and supported by Freescale with focus on \ +i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU and IPU." + +require recipes-kernel/linux/linux-imx.inc +require recipes-kernel/linux/linux-dtb.inc + +DEPENDS += "lzop-native bc-native" + +SRCBRANCH = "imx_3.14.38_6qp_beta" +LOCALVERSION = "-6QP_beta" +SRCREV = "a4dec7730c98f2639fe250a1a67f782b6f73bdf5" +KERNEL_SRC ?= "git://git.freescale.com/imx/linux-2.6-imx.git;protocol=git" +SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH} \ + file://defconfig " + +SRC_URI += " \ + file://0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch \ + file://0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch \ +" + +# Allow support for graphics driver to run as loadable module to use different +# graphics version then one in this kernel. Default is built in module but +# this setting allows switch to loadable module +do_configure_append() { + if [ "${USE_GPU_VIV_MODULE}" = "1" ]; then + sed -i s/CONFIG_MXC_GPU_VIV=y/CONFIG_MXC_GPU_VIV=n/g ${B}/.config + sed -i s/CONFIG_MXC_GPU_VIV=y/CONFIG_MXC_GPU_VIV=n/g ${B}/../defconfig + fi +} + +COMPATIBLE_MACHINE = "(mx6|mx7)" -- 1.7.9.5 -- _______________________________________________ meta-freescale mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-freescale
