Custom kernel module accessing EIM bus

Hi

we have a custom carrier board for colibri imx6 modules that has an FPGA connected to the EIM bus.
We also have a custom kernel module for communicating with the FPGA. This all worked fine in kernel 3.14, but trying it now using linux-toradex-rt 4.14 it fails without any errors. Any reads simply returns 0xFFFFFFFF.
Probing the data lines reveals that there is no activity on the EIM bus (all data lines always high).

For both kernels the custom device trees where adapted from the colibri eval board dts.
There seem to have been significant changes to both the device tree (imx6dl-colibri-eval-v3.dts) and the EIM driver (imx-weim.c).

The old images/kernel were built using buildroot (I belive using this fork: GitHub - ntb-ch/buildroot: Buildroot, making embedded Linux easy. Note that this is not the official repository, but only an infrequently updated mirror. The official Git repository is at http://git.buildroot.net/buildroot/.) and the new images were built using yocto using this guide OpenEmbedded (core) - Toradex System/Computer on Modules .

Any ideas what might cause this?

Original (kernel 3.14) dts:

/*
 * Copyright 2014 Toradex AG
 * Copyright 2012 Freescale Semiconductor, Inc.
 * Copyright 2011 Linaro Ltd.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;

#include <dt-bindings/interrupt-controller/irq.h>
#include "imx6dl.dtsi"
#include "imx6qdl-colibri.dtsi"

/ {
	model = "Toradex Colibri iMX6DL/S for PATHOS";
	compatible = "toradex,colibri_imx6dl-eval", "toradex,colibri_imx6dl", "fsl,imx6dl";

	aliases {
		rtc0 = &rtc_i2c;
		rtc1 = "/soc/aips-bus@02000000/snvs@020cc000/snvs-rtc-lp@34";
	};

	aliases {
		/* the following, together with kernel patches, forces a fixed assignment
		   between device id and usdhc controller */
		/* i.e. the eMMC on usdhc3 will be /dev/mmcblk0 */
		mmc0 = &usdhc3; /* eMMC */
		mmc1 = &usdhc1; /* MMC 4bit slot */
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_gpio_keys>;

		wakeup {
			label = "Wakeup";
			gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_WAKEUP>;
			debounce-interval = <10>;
			gpio-key,wakeup;
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		ledpwm2 {
			label = "PWM<B>";
			pwms = <&pwm1 0 50000>;
			max-brightness = <255>;
		};

		ledpwm3 {
			label = "PWM<C>";
			pwms = <&pwm4 0 50000>;
			max-brightness = <255>;
		};

		ledpwm4 {
			label = "PWM<D>";
			pwms = <&pwm2 0 50000>;
			max-brightness = <255>;
		};
	};

	regulators {
		reg_usb_host_vbus: usb_host_vbus {
			status = "okay";
		};
	};
};

&backlight {
#if 0
	/* PWM polarity: 1 is brightest */
	brightness-levels = <0 4 8 16 32 64 128 255>;
	default-brightness-level = <6>;
#else
	/* PWM plarity: 0 is brightest */
	brightness-levels = <0 74 128 164 192 210 255>;
	default-brightness-level = <1>;
#endif
	status = "okay";
};

/* Colibri SPI */
&ecspi4 {
	status = "okay";

	spidev0: spidev@1 {
		compatible = "spidev";
		reg = <0>;
		spi-max-frequency = <50000000>;
	};
};

&hdmi_audio {
	status = "okay";
};

&hdmi_core {
	status = "okay";
};

&hdmi_video {
	status = "okay";
};

&flexcan1 {
	status = "okay";
};

&flexcan2 {
	status = "okay";
};

/*
 * I2C: I2C3_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
 * board)
 */
&i2c3 {
	status = "okay";
#if 0 /* not standard pinout, disable PWM<B>, PWM<C>
	pcap@10 {
		/* TouchRevolution Fusion 7 and 10 multi-touch controller */
		compatible = "touchrevolution,fusion-f0710a";
		reg = <0x10>;
		gpios = <&gpio1  9 0 /* SODIMM-28, Pen down interrupt */
			 &gpio2 10 0 /* SODIMM-30, Reset */
			>;
	};
#endif
	/* M41T0M6 real time clock on carrier board */
	rtc_i2c: rtc@68 {
		compatible = "st,m41t00";
		reg = <0x68>;
	};
};

/*
 * DDC_I2C: I2C2_SDA/SCL on MXM3 pin 205/207
 */
&i2cddc {
	status = "okay";

	hdmi: edid@50 {
		compatible = "fsl,imx6-hdmi-i2c";
		reg = <0x50>;
	};
};

&iomuxc {
	/*
	 * Mux all pins which are unused to be GPIOs
	 * so they are ready for export to user space
	 */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_weim_gpio_5
	             &pinctrl_csi_gpio_1
	             &pinctrl_usbh_oc_1 &pinctrl_usbc_id_1
	             &pinctrl_usbc_det_1>;
};

&lcd {
	status = "okay";
};

&mxcfb1 {
	status = "okay";
};

&mxcfb2 {
	status = "okay";
};

&pwm1 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&pwm3 {
	status = "okay";
};

&pwm4 {
	status = "okay";
};

&sound_hdmi {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
#if 0
	linux,rs485-enabled-at-boot-time;
#endif
};

&uart3 {
	status = "okay";
};

&usbh1 {
	status = "okay";
};

&usbotg {
	status = "okay";
};

/* MMC */
&usdhc1 {
	status = "okay";
};

&weim {
	status = "okay";
	/* weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2 */
	ranges = <0 0 0x08000000 0x02000000
	          1 0 0x0a000000 0x02000000
	          2 0 0x0c000000 0x02000000>;
	/* FPGA on CS0 */
	fpga@0,0 {
		compatible = "ntb,flink_eim_driver";
		reg = <0 0 0x00080000>;
		#address-cells = <1>;
		#size-cells = <1>;
		bank-width = <2>;
		fsl,weim-cs-timing = <0x07710081 0x00000100 0x04000000
				0x00000000 0x04000040 0x00000000>;
	};
};

New device tree (kernel 4.14):

/*
 * Copyright 2014-2016 Toradex AG
 * Copyright 2012 Freescale Semiconductor, Inc.
 * Copyright 2011 Linaro Ltd.
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License
 *     version 2 as published by the Free Software Foundation.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pwm/pwm.h>
#include "imx6dl.dtsi"
#include "imx6qdl-colibri.dtsi"

/ {
	model = "Toradex Colibri iMX6DL/S on Colibri based NTB CB20 board";
	compatible = "toradex,colibri_imx6dl-eval-v3", "toradex,colibri_imx6dl",
		     "fsl,imx6dl";

	memory@10000000 {
		reg = <0x10000000 0>;
	};

	aliases {
		i2c0 = &i2c2;
		i2c1 = &i2c3;
	};

	aliases {
		rtc0 = &rtc_i2c;
		rtc1 = &snvs_rtc;
	};

	aliases {
		/*
		 * the following, together with kernel patches, forces a fixed
		 * assignment between device id and usdhc controller
		 * i.e. the eMMC on usdhc3 will be /dev/mmcblk0
		 */
		mmc0 = &usdhc3; /* eMMC */
		mmc1 = &usdhc1; /* MMC 4bit slot */
	};

	extcon_usbc_det: usbc_det {
		compatible = "linux,extcon-usb-gpio";
		debounce = <25>;
		id-gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usbc_det>;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	/* Fixed crystal dedicated to mcp251x */
	clk16m: clock-16m {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <16000000>;
		clock-output-names = "clk16m";
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_gpio_keys>;

		wakeup {
			label = "Wake-Up";
			gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* SODIMM 45 */
			linux,code = <KEY_WAKEUP>;
			debounce-interval = <10>;
			wakeup-source;
		};
	};

	lcd_display: display@di0 {
		compatible = "fsl,imx-parallel-display";
		#address-cells = <1>;
		#size-cells = <0>;
		interface-pix-fmt = "bgr666";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ipu1_lcdif>;
		status = "okay";

		port@0 {
			reg = <0>;

			lcd_display_in: endpoint {
				remote-endpoint = <&ipu1_di0_disp0>;
			};
		};

		port@1 {
			reg = <1>;

			lcd_display_out: endpoint {
				remote-endpoint = <&lcd_panel_in>;
			};
		};
	};

	panel: panel {
		/*
		 * edt,et057090dhu: EDT 5.7" LCD TFT
		 * edt,et070080dh6: EDT 7.0" LCD TFT
		 */
		compatible = "edt,et057090dhu";
		backlight = <&backlight>;

		port {
			lcd_panel_in: endpoint {
				remote-endpoint = <&lcd_display_out>;
			};
		};
	};
};

&backlight {
	brightness-levels = <0 45 63 88 119 158 203 255>;
	default-brightness-level = <4>;
	pwms = <&pwm3 0 6666667 PWM_POLARITY_INVERTED>;
	status = "okay";
};

/* Colibri SSP */
&ecspi4 {
	status = "okay";

	mcp251x0: mcp251x@1 {
		compatible = "microchip,mcp2515";
		reg = <0>;
		clocks = <&clk16m>;
		interrupt-parent = <&gpio3>;
		interrupts = <27 0x2>;
		spi-max-frequency = <10000000>;
		status = "okay";
	};
	spidev0: spidev@1 {
		compatible = "toradex,evalspi";
		reg = <0>;
		spi-max-frequency = <23000000>;
		status = "disabled";
	};
};

/*
 * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
 */
&i2c3 {
	status = "okay";

	/* Atmel maxtouch controller */
	atmel_mxt_ts: atmel_mxt_ts@4a {
		compatible = "atmel,maxtouch";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pcap_1>;
		reg = <0x4a>;
		interrupt-parent = <&gpio1>;
		interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 */
		reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; /* SODIMM 30 */
		status = "disabled";
	};

	/*
	 * the PCAPs use SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm1,
	 * pwm4. So if you enable one of the PCAP controllers disable the pwms.
	 */
	pcap: pcap@10 {
		/* TouchRevolution Fusion 7 and 10 multi-touch controller */
		compatible = "touchrevolution,fusion-f0710a";
		reg = <0x10>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pcap_1>;
		gpios = <&gpio1  9 0 /* SODIMM 28, Pen down interrupt */
			 &gpio2 10 0 /* SODIMM 30, Reset */
			>;
		status = "disabled";
	};

	/* M41T0M6 real time clock on carrier board */
	rtc_i2c: rtc@68 {
		compatible = "st,m41t0";
		reg = <0x68>;
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <
		&pinctrl_weim_gpio_5
		&pinctrl_csi_gpio_1
		&pinctrl_usbh_oc_1 &pinctrl_usbc_id_1
		&pinctrl_usbc_det
	>;

	gpio {
		pinctrl_pcap_1: pcap-1 {
			fsl,pins = <
				MX6QDL_PAD_GPIO_9__GPIO1_IO09	0x1b0b0 /* SODIMM 28 */
				MX6QDL_PAD_SD4_DAT2__GPIO2_IO10	0x1b0b0 /* SODIMM 30 */
			>;
		};

		pinctrl_mxt_ts: mxt-ts {
			fsl,pins = <
				MX6QDL_PAD_EIM_CS1__GPIO2_IO24	0x130b0 /* SODIMM 107 */
				MX6QDL_PAD_SD2_DAT1__GPIO1_IO14	0x130b0 /* SODIMM 106 */
			>;
		};
	};
};

&ipu1_di0_disp0 {
	remote-endpoint = <&lcd_display_in>;
};

&lcd {
	status = "okay";
};

&mxcfb1 {
	status = "okay";
};

&mxcfb2 {
	status = "okay";
};

&pwm1 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&pwm3 {
	status = "okay";
};

&pwm4 {
	status = "okay";
};

&reg_usb_host_vbus {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
};

&uart3 {
	status = "okay";
};

&can1 {
	status = "okay";
};

&can2 {
	status = "okay";
};

&usbh1 {
	vbus-supply = <&reg_usb_host_vbus>;
	status = "okay";
};

&usbotg {
	status = "okay";
	extcon = <&extcon_usbc_det>, <&extcon_usbc_det>;
};

/* Colibri MMC */
&usdhc1 {
	status = "okay";
};

&weim {
	status = "okay";
	fsl,weim-cs-gpr = <&gpr>;
	/* weim memory map: 32MB on CS0, CS1, CS2 and CS3 */
	ranges = <0 0 0x08000000 0x02000000
		  1 0 0x0a000000 0x02000000
		  2 0 0x0c000000 0x02000000
		  3 0 0x0e000000 0x02000000>;

	/* FPGA on CS0 */
	fpga@0,0 {
		compatible = "ntb,flink_eim_driver";
		reg = <0 0 0x00080000>;
		#address-cells = <1>;
		#size-cells = <1>;
		bank-width = <2>;
		fsl,weim-cs-timing = <0x07710081 0x00000100 0x04000000 0x00000000 0x04000040 0x00000000>;
	};
};

kernel module: flinklinux/flink_eim.c at master · flink-project/flinklinux · GitHub

yocto layer used for additional recipes: GitHub - zechenturm/meta-ntb: NTB specific layers for yocto/openembedded

Any help or pointers in where to look would be hugely appreciated.

Thanks!

Moritz

Hi @LVTTL

Thanks for writing to the Toradex Community!

Regarding your issue, could you flash Bsp 2.8b6 with your custom kernel and device-tree for your custom carrier board and check if this works?

Further you can have a look here and check if writing to EIM using memmap is still working with newer kernel.

Best regards,
Jaski

Hi @jaski.tx

Apologies for the delay. It turned out the cause of the problem was the FPGA not being configured correctly, the EIM bus works just fine. The article you linked was really helpful. Devmem2 finally led us down the right path.

I also tried using BSP 2.8 and it seems linux-toradex-rt fails during patching:

ERROR: linux-toradex-rt-4.9-2.3.x+gitAUTOINC+d899927728-r0 do_patch: Command Error: 'quilt --quiltrc /home/ubuntu/oe-core/build/tmp-glibc/work/cb20-angstrom-linux-gnueabi/linux-toradex-rt/4.9-2.3.x+gitAUTOINC+d899927728-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
Applying patch patch-4.9.115-rt94.patch
patching file Documentation/sysrq.txt
patching file Documentation/trace/histograms.txt
patching file MAINTAINERS
patching file arch/Kconfig
patching file arch/arm/Kconfig
Hunk #3 succeeded at 2170 (offset 12 lines).
patching file arch/arm/include/asm/irq.h
Hunk #1 succeeded at 22 with fuzz 1.
patching file arch/arm/include/asm/switch_to.h
patching file arch/arm/include/asm/thread_info.h
patching file arch/arm/kernel/asm-offsets.c
patching file arch/arm/kernel/entry-armv.S
patching file arch/arm/kernel/entry-common.S
Hunk #1 succeeded at 37 (offset 1 line).
Hunk #2 succeeded at 66 (offset 2 lines).
patching file arch/arm/kernel/patch.c
patching file arch/arm/kernel/process.c
patching file arch/arm/kernel/signal.c
Hunk #1 succeeded at 581 (offset 9 lines).
patching file arch/arm/kernel/smp.c
Hunk #1 succeeded at 265 (offset 31 lines).
Hunk #2 succeeded at 280 (offset 31 lines).
patching file arch/arm/kernel/unwind.c
patching file arch/arm/kvm/arm.c
patching file arch/arm/mach-exynos/platsmp.c
patching file arch/arm/mach-hisi/platmcpm.c
patching file arch/arm/mach-omap2/omap-smp.c
Hunk #2 succeeded at 172 (offset 41 lines).
Hunk #3 succeeded at 187 (offset 41 lines).
Hunk #4 succeeded at 264 (offset 41 lines).
patching file arch/arm/mach-prima2/platsmp.c
patching file arch/arm/mach-qcom/platsmp.c
patching file arch/arm/mach-spear/platsmp.c
patching file arch/arm/mach-sti/platsmp.c
patching file arch/arm/mm/fault.c
Hunk #1 succeeded at 436 (offset 3 lines).
Hunk #2 succeeded at 506 (offset 3 lines).
patching file arch/arm/mm/highmem.c
patching file arch/arm/plat-versatile/platsmp.c
patching file arch/arm64/Kconfig
patching file arch/arm64/crypto/Kconfig
patching file arch/arm64/include/asm/thread_info.h
patching file arch/arm64/kernel/asm-offsets.c
patching file arch/arm64/kernel/entry.S
patching file arch/arm64/kernel/signal.c
patching file arch/mips/Kconfig
Hunk #1 succeeded at 2520 (offset 3 lines).
patching file arch/powerpc/Kconfig
patching file arch/powerpc/include/asm/thread_info.h
patching file arch/powerpc/kernel/asm-offsets.c
patching file arch/powerpc/kernel/entry_32.S
Hunk #1 succeeded at 838 (offset 3 lines).
Hunk #2 succeeded at 856 (offset 3 lines).
Hunk #3 succeeded at 1187 (offset 9 lines).
Hunk #4 succeeded at 1208 (offset 9 lines).
patching file arch/powerpc/kernel/entry_64.S
patching file arch/powerpc/kernel/irq.c
patching file arch/powerpc/kernel/misc_32.S
patching file arch/powerpc/kernel/misc_64.S
patching file arch/powerpc/kvm/Kconfig
patching file arch/powerpc/platforms/ps3/device-init.c
patching file arch/sh/kernel/irq.c
patching file arch/sparc/Kconfig
patching file arch/sparc/kernel/irq_64.c
patching file arch/x86/Kconfig
patching file arch/x86/crypto/aesni-intel_glue.c
patching file arch/x86/crypto/camellia_aesni_avx2_glue.c
patching file arch/x86/crypto/camellia_aesni_avx_glue.c
patching file arch/x86/crypto/cast5_avx_glue.c
patching file arch/x86/crypto/cast6_avx_glue.c
patching file arch/x86/crypto/chacha20_glue.c
Hunk #1 succeeded at 81 (offset 1 line).
patching file arch/x86/crypto/glue_helper.c
patching file arch/x86/crypto/serpent_avx2_glue.c
patching file arch/x86/crypto/serpent_avx_glue.c
patching file arch/x86/crypto/serpent_sse2_glue.c
patching file arch/x86/crypto/twofish_avx_glue.c
patching file arch/x86/entry/common.c
patching file arch/x86/entry/entry_32.S
patching file arch/x86/entry/entry_64.S
Hunk #1 succeeded at 488 with fuzz 1.
patching file arch/x86/include/asm/fpu/api.h
patching file arch/x86/include/asm/preempt.h
patching file arch/x86/include/asm/signal.h
patching file arch/x86/include/asm/stackprotector.h
patching file arch/x86/include/asm/thread_info.h
patching file arch/x86/include/asm/uv/uv_bau.h
patching file arch/x86/kernel/acpi/boot.c
patching file arch/x86/kernel/apic/io_apic.c
Hunk #1 succeeded at 1713 (offset 1 line).
patching file arch/x86/kernel/asm-offsets.c
patching file arch/x86/kernel/cpu/mcheck/mce.c
Hunk #2 succeeded at 1338 (offset 1 line).
Hunk #3 succeeded at 1347 (offset 1 line).
Hunk #4 succeeded at 1381 (offset 1 line).
Hunk #5 succeeded at 1389 (offset 1 line).
Hunk #6 succeeded at 1404 (offset 1 line).
Hunk #7 succeeded at 1414 (offset 1 line).
Hunk #8 succeeded at 1471 (offset 1 line).
Hunk #9 succeeded at 1783 (offset 1 line).
Hunk #10 succeeded at 1792 (offset 1 line).
Hunk #11 succeeded at 2547 (offset 1 line).
Hunk #12 succeeded at 2571 (offset 1 line).
Hunk #13 succeeded at 2579 (offset 1 line).
Hunk #14 succeeded at 2598 (offset 1 line).
Hunk #15 succeeded at 2639 (offset 1 line).
patching file arch/x86/kernel/fpu/core.c
Hunk #1 succeeded at 138 (offset -20 lines).
patching file arch/x86/kernel/irq_32.c
Hunk #1 succeeded at 129 (offset 1 line).
Hunk #2 succeeded at 146 (offset 1 line).
patching file arch/x86/kernel/process_32.c
patching file arch/x86/kvm/lapic.c
Hunk #1 succeeded at 1970 (offset 16 lines).
patching file arch/x86/kvm/x86.c
Hunk #1 succeeded at 6121 (offset 124 lines).
patching file arch/x86/mm/highmem_32.c
patching file arch/x86/mm/iomap_32.c
patching file arch/x86/mm/pageattr.c
patching file arch/x86/platform/uv/tlb_uv.c
Hunk #8 succeeded at 1940 (offset 1 line).
patching file arch/x86/platform/uv/uv_time.c
patching file block/blk-core.c
Hunk #3 succeeded at 704 (offset 29 lines).
Hunk #4 succeeded at 789 (offset 29 lines).
Hunk #5 succeeded at 3219 (offset 7 lines).
Hunk #6 succeeded at 3267 (offset 7 lines).
Hunk #7 succeeded at 3286 (offset 7 lines).
Hunk #8 succeeded at 3298 (offset 7 lines).
Hunk #9 succeeded at 3325 (offset 7 lines).
Hunk #10 succeeded at 3576 (offset 10 lines).
patching file block/blk-ioc.c
patching file block/blk-mq.c
Hunk #1 succeeded at 175 (offset -2 lines).
Hunk #2 succeeded at 346 (offset -2 lines).
Hunk #3 succeeded at 364 (offset -2 lines).
Hunk #4 succeeded at 377 (offset -2 lines).
Hunk #5 succeeded at 924 (offset -2 lines).
patching file block/blk-mq.h
patching file block/blk-softirq.c
patching file block/bounce.c
patching file crypto/algapi.c
patching file crypto/api.c
patching file crypto/internal.h
patching file drivers/acpi/acpica/acglobal.h
patching file drivers/acpi/acpica/hwregs.c
patching file drivers/acpi/acpica/hwxface.c
patching file drivers/acpi/acpica/utmutex.c
patching file drivers/ata/libata-sff.c
patching file drivers/block/zram/zcomp.c
patching file drivers/block/zram/zcomp.h
patching file drivers/block/zram/zram_drv.c
patching file drivers/block/zram/zram_drv.h
patching file drivers/char/random.c
Hunk #5 succeeded at 2119 (offset 8 lines).
Hunk #6 succeeded at 2128 (offset 8 lines).
Hunk #7 succeeded at 2146 (offset 8 lines).
Hunk #8 succeeded at 2156 (offset 8 lines).
patching file drivers/char/tpm/tpm_tis.c
patching file drivers/clocksource/tcb_clksrc.c
patching file drivers/clocksource/timer-atmel-pit.c
patching file drivers/clocksource/timer-atmel-st.c
patching file drivers/connector/cn_proc.c
patching file drivers/cpufreq/Kconfig.x86
patching file drivers/gpu/drm/i915/i915_gem_execbuffer.c
patching file drivers/gpu/drm/i915/i915_gem_shrinker.c
patching file drivers/gpu/drm/i915/i915_irq.c
patching file drivers/gpu/drm/i915/intel_display.c
patching file drivers/gpu/drm/i915/intel_sprite.c
patching file drivers/gpu/drm/msm/msm_gem_shrinker.c
patching file drivers/gpu/drm/radeon/radeon_display.c
patching file drivers/hv/vmbus_drv.c
Hunk #1 succeeded at 781 (offset 20 lines).
Hunk #2 succeeded at 830 (offset 20 lines).
patching file drivers/ide/alim15x3.c
patching file drivers/ide/hpt366.c
patching file drivers/ide/ide-io-std.c
patching file drivers/ide/ide-io.c
patching file drivers/ide/ide-iops.c
patching file drivers/ide/ide-probe.c
patching file drivers/ide/ide-taskfile.c
patching file drivers/infiniband/ulp/ipoib/ipoib_multicast.c
patching file drivers/input/gameport/gameport.c
patching file drivers/iommu/amd_iommu.c
Hunk #1 succeeded at 1943 (offset 20 lines).
Hunk #2 succeeded at 2114 (offset 20 lines).
Hunk #3 succeeded at 2303 (offset 20 lines).
Hunk #4 succeeded at 2320 (offset 20 lines).
patching file drivers/iommu/intel-iommu.c
Hunk #1 succeeded at 480 (offset 1 line).
Hunk #2 succeeded at 3736 (offset 16 lines).
Hunk #3 succeeded at 3770 (offset 16 lines).
patching file drivers/iommu/iova.c
patching file drivers/leds/trigger/Kconfig
patching file drivers/md/bcache/Kconfig
patching file drivers/md/dm-rq.c
patching file drivers/md/raid5.c
Hunk #5 succeeded at 6427 (offset 6 lines).
Hunk #6 succeeded at 6438 (offset 6 lines).
patching file drivers/md/raid5.h
patching file drivers/misc/Kconfig
patching file drivers/mmc/host/mmci.c
patching file drivers/net/ethernet/3com/3c59x.c
patching file drivers/net/wireless/intersil/orinoco/orinoco_usb.c
patching file drivers/pinctrl/qcom/pinctrl-msm.c
Hunk #19 succeeded at 891 (offset 13 lines).
patching file drivers/scsi/fcoe/fcoe.c
patching file drivers/scsi/fcoe/fcoe_ctlr.c
patching file drivers/scsi/libfc/fc_exch.c
patching file drivers/scsi/libsas/sas_ata.c
patching file drivers/scsi/qla2xxx/qla_inline.h
patching file drivers/scsi/qla2xxx/qla_isr.c
patching file drivers/thermal/x86_pkg_temp_thermal.c
patching file drivers/tty/serial/8250/8250_core.c
patching file drivers/tty/serial/8250/8250_port.c
Hunk #2 succeeded at 3144 (offset -1 lines).
patching file drivers/tty/serial/amba-pl011.c
patching file drivers/tty/serial/omap-serial.c
patching file drivers/usb/core/hcd.c
Hunk #1 succeeded at 1765 (offset 1 line).
patching file drivers/usb/gadget/function/f_fs.c
patching file drivers/usb/gadget/legacy/inode.c
patching file fs/aio.c
Hunk #1 FAILED at 40.
Hunk #2 succeeded at 118 (offset 1 line).
Hunk #3 succeeded at 261 (offset 1 line).
Hunk #4 succeeded at 629 (offset 1 line).
Hunk #5 succeeded at 649 (offset 1 line).
1 out of 5 hunks FAILED -- rejects in file fs/aio.c
patching file fs/autofs4/autofs_i.h
Hunk #1 succeeded at 32 (offset 1 line).
patching file fs/autofs4/expire.c
patching file fs/buffer.c
Hunk #1 succeeded at 302 (offset 1 line).
Hunk #2 succeeded at 315 (offset 1 line).
Hunk #3 succeeded at 327 (offset 1 line).
Hunk #4 succeeded at 355 (offset 1 line).
Hunk #5 succeeded at 367 (offset 1 line).
Hunk #6 succeeded at 3376 (offset 1 line).
patching file fs/cifs/readdir.c
patching file fs/dcache.c
Hunk #2 succeeded at 788 (offset -2 lines).
Hunk #3 succeeded at 828 (offset -2 lines).
Hunk #4 succeeded at 2392 (offset -6 lines).
Hunk #5 succeeded at 2437 (offset -6 lines).
Hunk #6 succeeded at 2448 (offset -6 lines).
Hunk #7 succeeded at 2485 (offset -6 lines).
Hunk #8 succeeded at 2513 (offset -6 lines).
Hunk #9 succeeded at 2586 (offset -6 lines).
Hunk #10 succeeded at 3685 (offset -6 lines).
patching file fs/eventpoll.c
patching file fs/exec.c
patching file fs/ext4/page-io.c
patching file fs/fuse/dir.c
Hunk #1 succeeded at 1192 (offset 1 line).
patching file fs/inode.c
patching file fs/libfs.c
patching file fs/locks.c
patching file fs/namei.c
Hunk #1 succeeded at 1666 (offset 41 lines).
Hunk #2 succeeded at 3132 (offset 41 lines).
patching file fs/namespace.c
patching file fs/nfs/delegation.c
patching file fs/nfs/dir.c
patching file fs/nfs/inode.c
patching file fs/nfs/nfs4_fs.h
patching file fs/nfs/nfs4proc.c
Hunk #1 succeeded at 2706 (offset 11 lines).
Hunk #2 succeeded at 2744 (offset 11 lines).
patching file fs/nfs/nfs4state.c
Hunk #2 succeeded at 1503 (offset 2 lines).
Hunk #3 succeeded at 1577 (offset 2 lines).
patching file fs/nfs/unlink.c
patching file fs/ntfs/aops.c
patching file fs/proc/base.c
Hunk #1 succeeded at 1846 (offset 10 lines).
patching file fs/proc/proc_sysctl.c
Hunk #1 succeeded at 680 (offset 48 lines).
patching file fs/squashfs/decompressor_multi_percpu.c
patching file fs/timerfd.c
patching file fs/xfs/xfs_aops.c
patching file include/acpi/platform/aclinux.h
patching file include/asm-generic/bug.h
patching file include/linux/blk-mq.h
patching file include/linux/blkdev.h
Hunk #2 succeeded at 134 (offset 44 lines).
Hunk #3 succeeded at 505 (offset 35 lines).
patching file include/linux/bottom_half.h
patching file include/linux/buffer_head.h
patching file include/linux/cgroup-defs.h
patching file include/linux/completion.h
patching file include/linux/cpu.h
Hunk #1 succeeded at 193 (offset 2 lines).
Hunk #2 succeeded at 212 (offset 2 lines).
patching file include/linux/dcache.h
patching file include/linux/delay.h
patching file include/linux/fs.h
Hunk #1 succeeded at 691 (offset 2 lines).
patching file include/linux/highmem.h
patching file include/linux/hrtimer.h
patching file include/linux/idr.h
patching file include/linux/init_task.h
patching file include/linux/interrupt.h
patching file include/linux/irq.h
patching file include/linux/irq_work.h
patching file include/linux/irqdesc.h
patching file include/linux/irqflags.h
patching file include/linux/jbd2.h
patching file include/linux/kdb.h
patching file include/linux/kernel.h
patching file include/linux/list_bl.h
patching file include/linux/locallock.h
patching file include/linux/mm_types.h
patching file include/linux/module.h
patching file include/linux/mutex.h
patching file include/linux/mutex_rt.h
patching file include/linux/netdevice.h
Hunk #3 succeeded at 2490 (offset 10 lines).
Hunk #4 succeeded at 2921 (offset 10 lines).
Hunk #5 succeeded at 3624 (offset 10 lines).
patching file include/linux/netfilter/x_tables.h
patching file include/linux/nfs_fs.h
patching file include/linux/nfs_xdr.h
patching file include/linux/notifier.h
patching file include/linux/percpu-rwsem.h
patching file include/linux/percpu.h
patching file include/linux/pid.h
patching file include/linux/posix-timers.h
patching file include/linux/preempt.h
patching file include/linux/printk.h
patching file include/linux/radix-tree.h
patching file include/linux/random.h
patching file include/linux/rbtree.h
patching file include/linux/rbtree_augmented.h
patching file include/linux/rcu_assign_pointer.h
patching file include/linux/rcupdate.h
patching file include/linux/rcutree.h
patching file include/linux/rtmutex.h
patching file include/linux/rwlock_rt.h
patching file include/linux/rwlock_types.h
patching file include/linux/rwlock_types_rt.h
patching file include/linux/rwsem.h
patching file include/linux/rwsem_rt.h
patching file include/linux/sched.h
Hunk #4 succeeded at 1025 (offset 1 line).
Hunk #5 succeeded at 1517 (offset 1 line).
Hunk #6 succeeded at 1557 (offset 1 line).
Hunk #7 succeeded at 1702 (offset 1 line).
Hunk #8 succeeded at 1736 (offset 1 line).
Hunk #9 succeeded at 1770 (offset 1 line).
Hunk #10 succeeded at 1976 (offset 1 line).
Hunk #11 succeeded at 2007 (offset 1 line).
Hunk #12 succeeded at 2063 (offset 1 line).
Hunk #13 succeeded at 2282 (offset 1 line).
Hunk #14 succeeded at 2298 (offset 1 line).
Hunk #15 succeeded at 2340 (offset 1 line).
Hunk #16 succeeded at 2518 (offset 1 line).
Hunk #17 succeeded at 2534 (offset 1 line).
Hunk #18 succeeded at 2775 (offset 1 line).
Hunk #19 succeeded at 2984 (offset 1 line).
Hunk #20 succeeded at 3391 (offset 5 lines).
Hunk #21 succeeded at 3459 (offset 5 lines).
Hunk #22 succeeded at 3529 (offset 5 lines).
Hunk #23 succeeded at 3713 (offset 5 lines).
patching file include/linux/sched/rt.h
patching file include/linux/seqlock.h
patching file include/linux/signal.h
patching file include/linux/skbuff.h
Hunk #2 succeeded at 1579 (offset 5 lines).
patching file include/linux/smp.h
patching file include/linux/spinlock.h
patching file include/linux/spinlock_api_smp.h
patching file include/linux/spinlock_rt.h
patching file include/linux/spinlock_types.h
patching file include/linux/spinlock_types_nort.h
patching file include/linux/spinlock_types_raw.h
patching file include/linux/spinlock_types_rt.h
patching file include/linux/srcu.h
patching file include/linux/suspend.h
patching file include/linux/swait.h
patching file include/linux/swap.h
patching file include/linux/swork.h
patching file include/linux/thread_info.h
Hunk #1 succeeded at 102 (offset -5 lines).
patching file include/linux/timer.h
patching file include/linux/trace_events.h
patching file include/linux/uaccess.h
Hunk #1 succeeded at 27 (offset 3 lines).
Hunk #2 succeeded at 44 (offset 3 lines).
patching file include/linux/uprobes.h
patching file include/linux/vmstat.h
patching file include/linux/wait.h
patching file include/net/dst.h
patching file include/net/gen_stats.h
patching file include/net/neighbour.h
Hunk #1 succeeded at 446 with fuzz 2.
Hunk #2 succeeded at 519 (offset 18 lines).
patching file include/net/net_seq_lock.h
patching file include/net/netns/ipv4.h
patching file include/net/sch_generic.h
patching file include/trace/events/hist.h
patching file include/trace/events/latency_hist.h
patching file include/trace/events/sched.h
patching file init/Kconfig
patching file init/Makefile
patching file init/main.c
patching file ipc/sem.c
patching file kernel/Kconfig.locks
patching file kernel/Kconfig.preempt
patching file kernel/cgroup.c
Hunk #1 succeeded at 5045 (offset 4 lines).
Hunk #2 succeeded at 5091 (offset 4 lines).
Hunk #3 succeeded at 5753 (offset 4 lines).
patching file kernel/cpu.c
patching file kernel/cpu_pm.c
patching file kernel/cpuset.c
patching file kernel/debug/kdb/kdb_io.c
Hunk #1 succeeded at 557 (offset 3 lines).
Hunk #2 succeeded at 567 (offset 3 lines).
Hunk #3 succeeded at 855 (offset 3 lines).
Hunk #4 succeeded at 864 (offset 3 lines).
patching file kernel/events/core.c
Hunk #2 succeeded at 8444 (offset 19 lines).
patching file kernel/exit.c
patching file kernel/fork.c
Hunk #2 succeeded at 382 (offset 3 lines).
Hunk #3 succeeded at 410 (offset 3 lines).
Hunk #4 succeeded at 567 (offset 3 lines).
Hunk #5 succeeded at 894 (offset 3 lines).
Hunk #6 succeeded at 1474 (offset 5 lines).
Hunk #7 succeeded at 1484 (offset 5 lines).
Hunk #8 succeeded at 1625 (offset 17 lines).
patching file kernel/futex.c
Hunk #23 succeeded at 1992 (offset 8 lines).
Hunk #24 succeeded at 2075 (offset 8 lines).
Hunk #25 succeeded at 2092 (offset 8 lines).
Hunk #26 succeeded at 2185 (offset 8 lines).
Hunk #27 succeeded at 2202 (offset 8 lines).
Hunk #28 succeeded at 2295 (offset 8 lines).
Hunk #29 succeeded at 2391 (offset 8 lines).
Hunk #30 succeeded at 2466 (offset 8 lines).
Hunk #31 succeeded at 2483 (offset 8 lines).
Hunk #32 succeeded at 2499 (offset 8 lines).
Hunk #33 succeeded at 2728 (offset 8 lines).
Hunk #34 succeeded at 2782 (offset 8 lines).
Hunk #35 succeeded at 2868 (offset 8 lines).
Hunk #36 succeeded at 2889 (offset 8 lines).
Hunk #37 succeeded at 2919 (offset 8 lines).
Hunk #38 succeeded at 2943 (offset 8 lines).
Hunk #39 succeeded at 2999 (offset 8 lines).
Hunk #40 succeeded at 3006 (offset 8 lines).
Hunk #41 succeeded at 3016 (offset 8 lines).
Hunk #42 succeeded at 3033 (offset 8 lines).
Hunk #43 succeeded at 3136 (offset 8 lines).
Hunk #44 succeeded at 3163 (offset 8 lines).
Hunk #45 succeeded at 3194 (offset 8 lines).
Hunk #46 succeeded at 3251 (offset 8 lines).
Hunk #47 FAILED at 3267.
Hunk #48 succeeded at 3299 (offset 11 lines).
1 out of 48 hunks FAILED -- rejects in file kernel/futex.c
patching file kernel/irq/handle.c
patching file kernel/irq/manage.c
Hunk #7 succeeded at 921 with fuzz 2 (offset 3 lines).
Hunk #8 succeeded at 1027 (offset 4 lines).
Hunk #9 succeeded at 1402 (offset 11 lines).
Hunk #10 succeeded at 2130 (offset 11 lines).
patching file kernel/irq/settings.h
patching file kernel/irq/spurious.c
patching file kernel/irq_work.c
patching file kernel/ksysfs.c
patching file kernel/locking/Makefile
patching file kernel/locking/lockdep.c
Hunk #6 succeeded at 3712 (offset 3 lines).
Hunk #7 succeeded at 3727 (offset 3 lines).
Hunk #8 succeeded at 4184 (offset 3 lines).
patching file kernel/locking/locktorture.c
patching file kernel/locking/percpu-rwsem.c
patching file kernel/locking/rt.c
patching file kernel/locking/rtmutex-debug.c
patching file kernel/locking/rtmutex-debug.h
patching file kernel/locking/rtmutex.c
Hunk #39 FAILED at 2400.
Hunk #40 FAILED at 2438.
2 out of 40 hunks FAILED -- rejects in file kernel/locking/rtmutex.c
patching file kernel/locking/rtmutex.h
patching file kernel/locking/rtmutex_common.h
Hunk #2 FAILED at 100.
1 out of 2 hunks FAILED -- rejects in file kernel/locking/rtmutex_common.h
patching file kernel/locking/rwsem-rt.c
patching file kernel/locking/spinlock.c
patching file kernel/locking/spinlock_debug.c
patching file kernel/module.c
patching file kernel/panic.c
Hunk #1 succeeded at 486 (offset 4 lines).
patching file kernel/power/hibernate.c
patching file kernel/power/suspend.c
patching file kernel/printk/printk.c
Hunk #2 succeeded at 1401 (offset 5 lines).
Hunk #3 succeeded at 1413 (offset 5 lines).
Hunk #4 succeeded at 1436 (offset 5 lines).
Hunk #5 succeeded at 1457 (offset 5 lines).
Hunk #6 succeeded at 1505 (offset 5 lines).
Hunk #7 succeeded at 1659 (offset 5 lines).
Hunk #8 succeeded at 1680 (offset 5 lines).
Hunk #9 succeeded at 1878 (offset 5 lines).
Hunk #10 succeeded at 1989 (offset 5 lines).
Hunk #11 succeeded at 2128 (offset 5 lines).
Hunk #12 succeeded at 2398 (offset 6 lines).
Hunk #13 succeeded at 2535 (offset 6 lines).
Hunk #14 succeeded at 2597 (offset 6 lines).
patching file kernel/ptrace.c
patching file kernel/rcu/rcutorture.c
patching file kernel/rcu/tree.c
Hunk #10 succeeded at 3067 (offset 8 lines).
Hunk #11 succeeded at 3089 (offset 8 lines).
Hunk #12 succeeded at 3332 (offset 8 lines).
Hunk #13 succeeded at 3341 (offset 8 lines).
Hunk #14 succeeded at 3433 (offset 8 lines).
Hunk #15 succeeded at 3460 (offset 8 lines).
Hunk #16 succeeded at 3839 (offset 8 lines).
Hunk #17 succeeded at 3848 (offset 8 lines).
Hunk #18 succeeded at 4370 (offset 8 lines).
patching file kernel/rcu/tree.h
patching file kernel/rcu/tree_plugin.h
patching file kernel/rcu/update.c
patching file kernel/sched/Makefile
patching file kernel/sched/completion.c
patching file kernel/sched/core.c
patching file kernel/sched/deadline.c
patching file kernel/sched/debug.c
patching file kernel/sched/fair.c
Hunk #5 succeeded at 4511 (offset 16 lines).
Hunk #6 succeeded at 5879 (offset 16 lines).
Hunk #7 succeeded at 8605 (offset 16 lines).
Hunk #8 succeeded at 8629 (offset 16 lines).
patching file kernel/sched/features.h
patching file kernel/sched/rt.c
patching file kernel/sched/sched.h
Hunk #1 succeeded at 1167 (offset 3 lines).
Hunk #2 succeeded at 1351 (offset 3 lines).
patching file kernel/sched/swait.c
Hunk #3 succeeded at 68 with fuzz 2 (offset -6 lines).
patching file kernel/sched/swork.c
patching file kernel/signal.c
Hunk #9 succeeded at 1268 (offset 42 lines).
Hunk #10 succeeded at 1294 (offset 42 lines).
Hunk #11 succeeded at 1361 (offset 42 lines).
Hunk #12 succeeded at 1387 (offset 42 lines).
Hunk #13 succeeded at 1634 (offset 42 lines).
Hunk #14 succeeded at 1996 (offset 42 lines).
patching file kernel/softirq.c
patching file kernel/stop_machine.c
patching file kernel/time/alarmtimer.c
patching file kernel/time/hrtimer.c
patching file kernel/time/itimer.c
patching file kernel/time/jiffies.c
patching file kernel/time/posix-cpu-timers.c
patching file kernel/time/posix-timers.c
Hunk #1 succeeded at 526 (offset 9 lines).
Hunk #2 succeeded at 577 (offset 9 lines).
Hunk #3 succeeded at 594 (offset 9 lines).
Hunk #4 succeeded at 842 (offset 9 lines).
Hunk #5 succeeded at 933 (offset 9 lines).
Hunk #6 succeeded at 942 (offset 9 lines).
Hunk #7 succeeded at 985 (offset 9 lines).
Hunk #8 succeeded at 1019 (offset 9 lines).
patching file kernel/time/tick-broadcast-hrtimer.c
patching file kernel/time/tick-common.c
patching file kernel/time/tick-sched.c
Hunk #6 succeeded at 881 (offset -17 lines).
Hunk #7 succeeded at 1190 (offset -17 lines).
patching file kernel/time/timekeeping.c
Hunk #1 succeeded at 2350 (offset 2 lines).
patching file kernel/time/timekeeping.h
patching file kernel/time/timer.c
Hunk #14 succeeded at 1680 with fuzz 2.
Hunk #15 succeeded at 1706 (offset 16 lines).
Hunk #16 succeeded at 1717 with fuzz 2 (offset 3 lines).
Hunk #17 succeeded at 1919 (offset 3 lines).
Hunk #18 succeeded at 1933 (offset 3 lines).
Hunk #19 succeeded at 1950 (offset 3 lines).
patching file kernel/trace/Kconfig
patching file kernel/trace/Makefile
patching file kernel/trace/latency_hist.c
patching file kernel/trace/trace.c
Hunk #1 succeeded at 1903 (offset 6 lines).
Hunk #2 succeeded at 1914 (offset 6 lines).
Hunk #3 succeeded at 2913 (offset 11 lines).
Hunk #4 succeeded at 2949 (offset 11 lines).
patching file kernel/trace/trace.h
patching file kernel/trace/trace_events.c
patching file kernel/trace/trace_irqsoff.c
patching file kernel/trace/trace_output.c
patching file kernel/user.c
patching file kernel/watchdog.c
patching file kernel/watchdog_hld.c
patching file kernel/workqueue.c
patching file kernel/workqueue_internal.h
patching file lib/Kconfig
patching file lib/debugobjects.c
Hunk #1 succeeded at 311 (offset 3 lines).
patching file lib/idr.c
patching file lib/irq_poll.c
patching file lib/locking-selftest.c
patching file lib/percpu_ida.c
patching file lib/radix-tree.c
patching file lib/scatterlist.c
patching file lib/smp_processor_id.c
patching file localversion-rt
patching file mm/Kconfig
patching file mm/backing-dev.c
patching file mm/compaction.c
patching file mm/filemap.c
patching file mm/highmem.c
patching file mm/memcontrol.c
Hunk #5 succeeded at 4568 (offset 7 lines).
Hunk #6 succeeded at 5448 (offset 7 lines).
Hunk #7 succeeded at 5507 (offset 7 lines).
Hunk #8 succeeded at 5669 (offset 7 lines).
Hunk #9 succeeded at 5863 (offset 7 lines).
Hunk #10 succeeded at 5904 (offset 7 lines).
patching file mm/mmu_context.c
patching file mm/page_alloc.c
Hunk #18 succeeded at 6607 (offset -10 lines).
Hunk #19 succeeded at 6635 (offset -10 lines).
Hunk #20 succeeded at 7471 (offset -10 lines).
Hunk #21 succeeded at 7480 (offset -10 lines).
patching file mm/percpu.c
patching file mm/slab.h
patching file mm/slub.c
patching file mm/swap.c
patching file mm/truncate.c
patching file mm/vmalloc.c
patching file mm/vmstat.c
patching file mm/workingset.c
patching file mm/zsmalloc.c
Hunk #7 succeeded at 943 (offset 3 lines).
Hunk #8 succeeded at 963 (offset 3 lines).
Hunk #9 succeeded at 1494 (offset 3 lines).
Hunk #10 succeeded at 1548 (offset 3 lines).
patching file net/bluetooth/hci_sock.c
patching file net/core/dev.c
Hunk #8 succeeded at 2322 (offset 22 lines).
Hunk #9 succeeded at 2407 (offset 22 lines).
Hunk #10 succeeded at 3160 (offset 22 lines).
Hunk #11 succeeded at 3235 (offset 22 lines).
Hunk #12 succeeded at 3471 (offset 22 lines).
Hunk #13 succeeded at 3486 (offset 22 lines).
Hunk #14 succeeded at 3862 (offset 22 lines).
Hunk #15 succeeded at 3881 (offset 22 lines).
Hunk #16 succeeded at 3891 (offset 22 lines).
Hunk #17 succeeded at 3931 (offset 22 lines).
Hunk #18 succeeded at 4412 (offset 22 lines).
Hunk #19 succeeded at 4422 (offset 22 lines).
Hunk #20 succeeded at 4924 (offset 26 lines).
Hunk #21 succeeded at 4938 (offset 26 lines).
Hunk #22 succeeded at 4968 (offset 26 lines).
Hunk #23 succeeded at 4978 (offset 26 lines).
Hunk #24 succeeded at 5018 (offset 26 lines).
Hunk #25 succeeded at 5034 (offset 26 lines).
Hunk #26 succeeded at 5324 (offset 26 lines).
Hunk #27 succeeded at 5369 (offset 26 lines).
Hunk #28 succeeded at 7200 (offset 28 lines).
Hunk #29 succeeded at 8133 (offset 28 lines).
Hunk #30 succeeded at 8451 (offset 28 lines).
patching file net/core/filter.c
patching file net/core/gen_estimator.c
patching file net/core/gen_stats.c
patching file net/core/skbuff.c
Hunk #4 succeeded at 394 (offset 2 lines).
Hunk #5 succeeded at 449 (offset 4 lines).
Hunk #6 succeeded at 496 (offset 4 lines).
Hunk #7 succeeded at 517 (offset 4 lines).
Hunk #8 succeeded at 531 (offset 4 lines).
Hunk #9 succeeded at 775 (offset 4 lines).
Hunk #10 succeeded at 809 (offset 4 lines).
patching file net/core/sock.c
Hunk #1 succeeded at 2497 (offset 4 lines).
patching file net/ipv4/icmp.c
Hunk #8 succeeded at 913 (offset 1 line).
Hunk #9 succeeded at 964 (offset 1 line).
patching file net/ipv4/sysctl_net_ipv4.c
patching file net/ipv4/tcp_ipv4.c
Hunk #2 succeeded at 570 (offset 1 line).
Hunk #3 succeeded at 698 (offset 1 line).
Hunk #4 succeeded at 708 (offset 1 line).
Hunk #5 succeeded at 786 (offset 1 line).
patching file net/mac80211/rx.c
Hunk #1 succeeded at 4235 (offset 4 lines).
patching file net/netfilter/core.c
patching file net/packet/af_packet.c
patching file net/rds/ib_rdma.c
patching file net/rxrpc/security.c
patching file net/sched/sch_api.c
patching file net/sched/sch_generic.c
patching file net/sunrpc/svc_xprt.c
patching file scripts/mkcompile_h
patching file sound/core/pcm_native.c
Hunk #1 succeeded at 136 (offset 1 line).
Hunk #2 succeeded at 151 (offset 1 line).
Hunk #3 succeeded at 159 (offset 1 line).
Hunk #4 succeeded at 177 (offset 1 line).
Patch patch-4.9.115-rt94.patch does not apply (enforce with -f)
ERROR: linux-toradex-rt-4.9-2.3.x+gitAUTOINC+d899927728-r0 do_patch: Function failed: patch_do_patch
ERROR: Logfile of failure stored in: /home/ubuntu/oe-core/build/tmp-glibc/work/cb20-angstrom-linux-gnueabi/linux-toradex-rt/4.9-2.3.x+gitAUTOINC+d899927728-r0/temp/log.do_patch.247929
ERROR: Task (/home/ubuntu/oe-core/build/../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex-rt_4.9-2.3.x.bb:do_patch) failed with exit code '1'

Kind regargs

Motiz

HI Moritz

Apologies for the delay. It turned out the cause of the problem was the FPGA not being configured correctly, the EIM bus works just fine. The article you linked was really helpful. Devmem2 finally led us down the right path.

That’s fine. Perfect that the issue is solved. Thanks for the feedback.

Regarding real-time patch, could you try to use the 4.9-2.3x.next branch?

Best regards,
Jaski

Hi @jaski.tx

I am assuming you mean changing the SRCBRANCH in linux-toradex-rt_4.9-2.3.x.bb?

I tried that and it still fails with what looks like the same error.

git diff of what I changed:

diff --git a/recipes-kernel/linux/linux-toradex-rt_4.9-2.3.x.bb b/recipes-kernel/linux/linux-toradex-rt_4.9-2.3.x.bb
index 30f8562..d7185f7 100644
--- a/recipes-kernel/linux/linux-toradex-rt_4.9-2.3.x.bb
+++ b/recipes-kernel/linux/linux-toradex-rt_4.9-2.3.x.bb
@@ -28,4 +28,4 @@ SRC_URI[rt-patch.md5sum] = "7c19c496fe4b1e268f5f185b1b266043"
 SRC_URI[rt-patch.sha256sum] = "5d6ac2e1fe94dfea1ac0353bf1907653413bcbf6b795b833e4edf9586b79d68a"

 SRCREV = "d899927728beca8357a5b4120b690cb3c1d80844"
-SRCBRANCH = "toradex_4.9-2.3.x-imx"
+SRCBRANCH = "toradex_4.9-2.3.x-imx-next"

Kind regards

Moritz