i.MX6 and Multi MSI Working

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

i.MX6 and Multi MSI Working

i.MX6 and Multi MSI Working

I have finally been able to get multi MSI (not MSI-X) working on the i.MX6 using the Linux kernel v4.1.15 release supported by Freescale/NXP. Attached are four patches which will need to be applied. This has been tested with two different end point FPGA devices with the i.MX6 running in root complex, I can confirm that multi MSI is now working.

 

Freescale/NXP: Please put these patches in your supported main line so others can have native multi MSI support.

 

You may have to contact your board manufacturer to find where within Yocto you will need to store these patches. If just building the kernel outside of Yocto then you can directly apply them.

 

The four kernel (v4.1.15) files which need to be patched are:

  1. <kernel source path>/include/linux/msi.h
  2. <kernel source path>/drivers/pci/msi.c
  3. <kernel source path>/drivers/pci/host/pcie-designware.h
  4. <kernel source path>/drivers/pci/host/pcie-designware.c

 

Once the above patches are applied and you create a new image/build you can start using the multi MSI APIs in your driver and pci_msi_vec_count() and pci_enable_msi_range() will work; this assumes your end point device on the PCIe link is working correctly.

 

Hopefully this is helpful to those who need multi MSI.

 

This document was generated from the following discussion: SOLVED: i.MX6 and Multi MSI Working

Labels (1)
Attachments
No ratings
Version history
Last update:
‎03-31-2018 03:53 AM
Updated by: