Relaying PCIe data between two endpoints via RC on iMX95 FRDM PRO

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Relaying PCIe data between two endpoints via RC on iMX95 FRDM PRO

Relaying PCIe data between two endpoints via RC on iMX95 FRDM PRO

As part of the patches attached with this blog, we will relay the pcie write transaction from Endpoint-A to Endpoint-B connected to iMX95FRDM PRO.
 
1.png1.png

Linux-imx used - lf-6.18.2-1.0.0

Attached are the following files:-
 

imx95-19x19-frdm-pro-pcie0-ep-dtbs - EP A shall use the dtb built with this dtbs
imx95-19x19-frdm-pro-pcie1-ep-dtbs - EP B shall use the dtb built with this dtbs
rc_pcie_dma_relay.c - driver used on RC to relay pcie write from EP-A to EP-B

conf_pcie0.sh - script to be executed on Endpoints A and B to configure the EPF driver


//To build the dtb and relay kernel driver

1. git clone  git clone https://github.com/nxp-imx/linux-imx.git
git checkout origin/lf-6.18.y

2. Copy the dtbs to arch/arm64/boot/dts/freescale/
Copy rc_pcie_dma_relay.c to drivers/pci/
 
3. Make the following changes as per this diff


 

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile

index aa3cfdf1aafc..56e3db653208 100644

--- a/arch/arm64/boot/dts/freescale/Makefile

+++ b/arch/arm64/boot/dts/freescale/Makefile

@@@ -1205,6 +1205,16 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm-8mic-reve.dt

 

 dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro.dtb imx95-19x19-frdm-pro-aud-hat.dtb

 

+

+dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro-pcie0-ep.dtb

+dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro-pcie1-ep.dtb

+

+imx95-19x19-frdm-pro-pcie0-ep-dtbs := imx95-19x19-frdm-pro.dtb \

+                      imx95-19x19-frdm-pro-pcie0-ep.dtbo

+

+imx95-19x19-frdm-pro-pcie1-ep-dtbs := imx95-19x19-frdm-pro.dtb \

+                      imx95-19x19-frdm-pro-pcie1-ep.dtbo

+

 imx95-19x19-frdm-pro-os08a20-isp-dtbs := imx95-19x19-frdm-pro.dtb \

                                         imx95-19x19-frdm-pro-os08a20.dtbo

 dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro-os08a20-isp.dtb
 

 

4. Add the following to drivers/pci/Makefile

+obj-m      += rc_pcie_dma_relay.o

 


5. Trigger the kernel build. You will obtain rc_pcie_dma_relay.ko, imx95-19x19-frdm-pro-pcie0-ep.dtb and imx95-19x19-frdm-pro-pcie1-ep.dtb.

6. We are only using pcie0 M.2 Key M slots of Endpoint A and Endpoint B so you only need to upload this dtb to both the endpoint boards - imx95-19x19-frdm-pro-pcie0-ep.dtb and boot linux with it after passing 'iommu.passthrough=1' at uboot mmcargs. This is to disable smmu for our tests.

RC will boot with the default dtb - imx95-19x19-frdm-pro.dtb

7. Connect the Endpoint-A to RC's K1 via M.2 Key M to Key M cable. Similarly connect the other Endpoint-B to other RC's K2 M.2 slot via Key M to Key M cable.

8. Execute this script on both the endpoints - ./conf_pcie0.sh


2.png2.png

9. Then reboot the RC iMX95 FRDM Pro and ensure that you see both the endpoints:-
 

3.png3.png

0000:01:00.0 and 0001:01:00.0 are the enumerated endpoints.
4.png4.png5.png5.png

10. Upload rc_pcie_dma_relay.ko to the RC board and insert it like this:-

 insmod rc_pcie_dma_relay.ko src_phys=0x910100000 dst_phys=0xa10100000 relay_len=0x100000 chunk_len=0x10000

you will observe similar logs on dmesg:-

 

[ 4949.082087] rc_pcie_dma_relay: init src=0x910100000 dst=0xa10100000 len=1048576 chunk=65536

[ 4949.082150] rc_pcie_dma_relay src_before: [0]=0xdeadbeef [1]=0xdeadbeef [2]=0xdeadbeef [3]=0xdeadbeef

[ 4949.082171] rc_pcie_dma_relay dst_before: [0]=0x00000000 [1]=0x00000000 [2]=0x00000000 [3]=0x00000000

[ 4949.125779] rc_pcie_dma_relay dst_zeroed: [0]=0x00000000 [1]=0x00000000 [2]=0x00000000 [3]=0x00000000

[ 4949.141380] rc_pcie_dma_relay src_after: [0]=0xdeadbeef [1]=0xdeadbeef [2]=0xdeadbeef [3]=0xdeadbeef

[ 4949.141427] rc_pcie_dma_relay dst_after: [0]=0xdeadbeef [1]=0xdeadbeef [2]=0xdeadbeef [3]=0xdeadbeef

[ 4954.272981] rc_pcie_dma_relay: verify OK for 1048576 bytes

[ 4954.273000] rc_pcie_dma_relay: DMA relay verify PASSED

 
11. Finally, via devmem5 on RC, you can verify the data of EP-A transferred to EP-B

 ./devmem5 r 0xa10100000 w
 

Labels (1)
Attachments
%3CLINGO-SUB%20id%3D%22lingo-sub-2373189%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERelaying%20PCIe%20data%20between%20two%20endpoints%20via%20RC%20on%20iMX95%20FRDM%20PRO%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2373189%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3EAs%20part%20of%20the%20patches%20attached%20with%20this%20blog%2C%20we%20will%20relay%20the%20pcie%20write%20transaction%20from%20Endpoint-A%20to%20Endpoint-B%20connected%20to%20iMX95FRDM%20PRO.%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%221.png%22%20style%3D%22width%3A%20436px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%221.png%22%20style%3D%22width%3A%20436px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F387325i7BABB3F0D9CD393D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%221.png%22%20alt%3D%221.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3E1.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3ELinux-imx%20used%20-%20lf-6.18.2-1.0.0%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3EAttached%20are%20the%20following%20files%3A-%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Eimx95-19x19-frdm-pro-pcie0-ep-dtbs%20-%20EP%20A%20shall%20use%20the%20dtb%20built%20with%20this%20dtbs%20%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Eimx95-19x19-frdm-pro-pcie1-ep-dtbs%20-%20EP%20B%20shall%20use%20the%20dtb%20built%20with%20this%20dtbs%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Erc_pcie_dma_relay.c%20-%20driver%20used%20on%20RC%20to%20relay%20pcie%20write%20from%20EP-A%20to%20EP-B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Econf_pcie0.sh%20-%20script%20to%20be%20executed%20on%20Endpoints%20A%20and%20B%20to%20configure%20the%20EPF%20driver%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2F%2FTo%20build%20the%20dtb%20and%20relay%20kernel%20driver%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E1.%20git%20clone%26nbsp%3B%20git%20clone%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx.git%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx.git%3C%2FA%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Egit%20checkout%20origin%2Flf-6.18.y%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E2.%20Copy%20the%20dtbs%20to%20arch%2Farm64%2Fboot%2Fdts%2Ffreescale%2F%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3ECopy%20rc_pcie_dma_relay.c%20to%20drivers%2Fpci%2F%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E3.%20Make%20the%20following%20changes%20as%20per%20this%20diff%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Ediff%20--git%20a%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2FMakefile%20b%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2FMakefile%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Eindex%20aa3cfdf1aafc..56e3db653208%20100644%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E---%20a%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2FMakefile%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%2B%2B%20b%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2FMakefile%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%40%40%40%20-1205%2C6%20%2B1205%2C16%20%40%40%20dtb-%24(CONFIG_ARCH_MXC)%20%2B%3D%20imx95-15x15-frdm-8mic-reve.dt%3C%2FFONT%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3Bdtb-%24(CONFIG_ARCH_MXC)%20%2B%3D%20imx95-19x19-frdm-pro.dtb%20imx95-19x19-frdm-pro-aud-hat.dtb%3C%2FFONT%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2Bdtb-%24(CONFIG_ARCH_MXC)%20%2B%3D%20imx95-19x19-frdm-pro-pcie0-ep.dtb%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2Bdtb-%24(CONFIG_ARCH_MXC)%20%2B%3D%20imx95-19x19-frdm-pro-pcie1-ep.dtb%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2Bimx95-19x19-frdm-pro-pcie0-ep-dtbs%20%3A%3D%20imx95-19x19-frdm-pro.dtb%20%5C%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20imx95-19x19-frdm-pro-pcie0-ep.dtbo%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2Bimx95-19x19-frdm-pro-pcie1-ep-dtbs%20%3A%3D%20imx95-19x19-frdm-pro.dtb%20%5C%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20imx95-19x19-frdm-pro-pcie1-ep.dtbo%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3Bimx95-19x19-frdm-pro-os08a20-isp-dtbs%20%3A%3D%20imx95-19x19-frdm-pro.dtb%20%5C%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20imx95-19x19-frdm-pro-os08a20.dtbo%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3Bdtb-%24(CONFIG_ARCH_MXC)%20%2B%3D%20imx95-19x19-frdm-pro-os08a20-isp.dtb%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E4.%20Add%20the%20following%20to%20drivers%2Fpci%2FMakefile%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%2Bobj-m%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2B%3D%20rc_pcie_dma_relay.o%3C%2FFONT%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E5.%20Trigger%20the%20kernel%20build.%20You%20will%20obtain%20rc_pcie_dma_relay.ko%2C%20imx95-19x19-frdm-pro-pcie0-ep.dtb%20and%20imx95-19x19-frdm-pro-pcie1-ep.dtb.%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E6.%20We%20are%20only%20using%20pcie0%20M.2%20Key%20M%20slots%20of%20Endpoint%20A%20and%20Endpoint%20B%20so%20you%20only%20need%20to%20upload%20this%20dtb%20to%20both%20the%20endpoint%20boards%20-%20imx95-19x19-frdm-pro-pcie0-ep.dtb%20and%20boot%20linux%20with%20it%20after%20passing%20'iommu.passthrough%3D1'%20at%20uboot%20mmcargs.%20This%20is%20to%20disable%20smmu%20for%20our%20tests.%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3ERC%20will%20boot%20with%20the%20default%20dtb%20-%20imx95-19x19-frdm-pro.dtb%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E7.%20Connect%20the%20Endpoint-A%20to%20RC's%20K1%20via%20M.2%20Key%20M%20to%20Key%20M%20cable.%20Similarly%20connect%20the%20other%20Endpoint-B%20to%20other%20RC's%20K2%20M.2%20slot%20via%20Key%20M%20to%20Key%20M%20cable.%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E8.%20Execute%20this%20script%20on%20both%20the%20endpoints%20-%20.%2Fconf_pcie0.sh%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%222.png%22%20style%3D%22width%3A%20714px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222.png%22%20style%3D%22width%3A%20714px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F387326i51EDEF9E4A6FFF41%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%222.png%22%20alt%3D%222.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3E2.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E9.%20Then%20reboot%20the%20RC%20iMX95%20FRDM%20Pro%20and%20ensure%20that%20you%20see%20both%20the%20endpoints%3A-%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%223.png%22%20style%3D%22width%3A%20763px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%223.png%22%20style%3D%22width%3A%20763px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F387327i28C42218E5CE0F89%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%223.png%22%20alt%3D%223.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3E3.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E0000%3A01%3A00.0%20and%200001%3A01%3A00.0%20are%20the%20enumerated%20endpoints.%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%224.png%22%20style%3D%22width%3A%20982px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%224.png%22%20style%3D%22width%3A%20982px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F387328iFB27A046601C9CE8%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%224.png%22%20alt%3D%224.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3E4.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%225.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%225.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F387329i69D30C182EBF8C6C%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%225.png%22%20alt%3D%225.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3E5.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E10.%20Upload%20rc_pcie_dma_relay.ko%20to%20the%20RC%20board%20and%20insert%20it%20like%20this%3A-%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3Binsmod%20rc_pcie_dma_relay.ko%20src_phys%3D0x910100000%20dst_phys%3D0xa10100000%20relay_len%3D0x100000%20chunk_len%3D0x10000%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3Eyou%20will%20observe%20similar%20logs%20on%20dmesg%3A-%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204949.082087%5D%20rc_pcie_dma_relay%3A%20init%20src%3D0x910100000%20dst%3D0xa10100000%20len%3D1048576%20chunk%3D65536%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204949.082150%5D%20rc_pcie_dma_relay%20src_before%3A%20%5B0%5D%3D0xdeadbeef%20%5B1%5D%3D0xdeadbeef%20%5B2%5D%3D0xdeadbeef%20%5B3%5D%3D0xdeadbeef%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204949.082171%5D%20rc_pcie_dma_relay%20dst_before%3A%20%5B0%5D%3D0x00000000%20%5B1%5D%3D0x00000000%20%5B2%5D%3D0x00000000%20%5B3%5D%3D0x00000000%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204949.125779%5D%20rc_pcie_dma_relay%20dst_zeroed%3A%20%5B0%5D%3D0x00000000%20%5B1%5D%3D0x00000000%20%5B2%5D%3D0x00000000%20%5B3%5D%3D0x00000000%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204949.141380%5D%20rc_pcie_dma_relay%20src_after%3A%20%5B0%5D%3D0xdeadbeef%20%5B1%5D%3D0xdeadbeef%20%5B2%5D%3D0xdeadbeef%20%5B3%5D%3D0xdeadbeef%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204949.141427%5D%20rc_pcie_dma_relay%20dst_after%3A%20%5B0%5D%3D0xdeadbeef%20%5B1%5D%3D0xdeadbeef%20%5B2%5D%3D0xdeadbeef%20%5B3%5D%3D0xdeadbeef%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204954.272981%5D%20rc_pcie_dma_relay%3A%20verify%20OK%20for%201048576%20bytes%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%5B%204954.273000%5D%20rc_pcie_dma_relay%3A%20DMA%20relay%20verify%20PASSED%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E11.%20Finally%2C%20via%20devmem5%20on%20RC%2C%20you%20can%20verify%20the%20data%20of%20EP-A%20transferred%20to%20EP-B%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B.%2Fdevmem5%20r%200xa10100000%20w%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22arial%2Chelvetica%2Csans-serif%22%20size%3D%223%22%3E%26nbsp%3B%3C%2FFONT%3E%3C%2FP%3E%0A%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2373189%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EIMX95EVK%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
No ratings
Version history
Last update:
‎05-29-2026 10:04 AM
Updated by: