Have anyone successfully reproduced i.MX6Q PCIe EP/RC Validation System on an i.MX6DL setup

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

Have anyone successfully reproduced i.MX6Q PCIe EP/RC Validation System on an i.MX6DL setup

2,722 Views
andreaskarlsson
Contributor III

Hi,

I'm trying to repeat the EP/RC Validation System on an i.MX6DL setup, basically imx6dlsabresd EP <-> RC imx6dlsabresd.

i.MX6Q PCIe EP/RC Validation System

1. I got 2 boards imx6dlsabresd

2. I'm using L3.0.35_4.1.0_130816 built for imx6q with board imx6dlsabresd ( I must choose iMX6Q (iMXQ6S don't) to enable to be able to select imx6dlsabresd)

- One image configured as EP, CONFIG_IMX_PCIE_EP_MODE_IN_EP_RC_SYS=y

- One image configured as RC, CONFIG_IMX_PCIE_RC_MODE_IN_EP_RC_SYS=y

When I start the EP it hangs/crashes when waiting for "link up..."

1. I modified the link up do/while to print what happens.

  pr_info("PCIe EP: waiting for link up...\n");
  /* link is debug bit 36 debug 1 start in bit 32 */

pcie.c

snippet...

  pr_info("PCIe EP: waiting for link up...\n");
  /* link is debug bit 36 debug 1 start in bit 32 */
  do {

   usleep_range(10, 20);  
   pr_info("PCIe EP: waiting for link up, iteration # %d\n",dbr1_cnt++);
   dbr1 = readl(dbi_base + DB_R1);
   pr_info("PCIe EP: DB_R1 0x%x\n",dbr1);  <--------------- Never printed
  } while ((dbr1 & 0x10) == 0);

2. This code produce the following prints showing that we hang/crash when trying to read DB_R1. Does any have a clue why?

PM driver module loaded

iMX6 PCIe PCIe EP mode imx_pcie_pltfm_probe entering.

PCIE: imx_pcie_pltfm_probe start link up.

PCIe EP: waiting for link up...

PCIe EP: waiting for link up, iteration # 0

<No more prints>

Regards

Andreas

0 Kudos
Reply
5 Replies

1,407 Views
andreyko
Contributor I

andreas,

You tried to reproduce EP/RC Validation System on an iMX6DL. Have you achieved success?

0 Kudos
Reply

1,407 Views
andreaskarlsson
Contributor III

I replaced the imx6dlsabresd EP with an imx6q SabreLite and it worked, RC imx6dlsabresd <-> EP imx6qsabrelite, result below.

Result imx6q SabreLite EP:

iMX6 PCIe PCIe EP mode imx_pcie_pltfm_probe entering..

PCIE: imx_pcie_pltfm_probe start link up.

PCIe EP: waiting for link up...

PCIe EP: waiting for link up, iteration # 0

PCIe EP: DB_R1 0x8000410

PCIe EP: link up.

PCIe EP: Starting data transfer...

PCIe EP: Data transfer is successful.tv_count1 111071us, tv_count2 238153us.

PCIe EP: Data write speed is 147MB/s.

PCIe EP: Data read speed is 68MB/s.

So why don't imx6dlsabresd work as an endpoint? Linux BSP or chip iMX6DL PCIe EP issues?

I'm sure it isn't the cable since the imx6dlsabresd crash/hang regardless if the cable is connected or not while the iMX6Q will loop and print it is waiting for link up.

Regards

Andreas

0 Kudos
Reply

1,407 Views
jamesbone
NXP TechSupport
NXP TechSupport

Why are you choosing i.MX6Q/D   if you are using the i.MX6DL/S?.

0 Kudos
Reply

1,407 Views
andreaskarlsson
Contributor III

I was referring to the choice when installing LTIB, only imx6s and imx6q is available.

If I go for imx6s it seems it implicitly mean imx6 SoloLite for U-boot, I can only select 2 i.MX6SL boards.
In Kernel configuration only  i.MX6Quad SABRESD is supported is regardless if I choose imx6s or imx6q.

Platform type -> imx6s
Choose board for u-boot
- boards mx6sl_arm2
- boards mx6sl_evk
Kernel Configuration
  System Type -> Freescale MXC Implementations
    Support i.MX6Quad SABRESD


On the other hand If I go for imx6q I can select mx6dlsabresd for U-boot but for Kernel Configuration only imx6q is avaliable

Platform type -> imx6q
Choose board for u-boot
    - boards mx6dlsabresd

Kernel Configuration
  System Type -> Freescale MXC Implementations
    Support i.MX6Quad SABRESD

So therefor I've went for imx6q to be able to build for imx6dlsabresd.

Are there any other way?

0 Kudos
Reply

1,407 Views
andreaskarlsson
Contributor III

The manual actually state:

"

For the kernel image, the current default kernel configuration builds a single image that works for all i.MX 6 boards except i.MX 6SoloLite boards.

"

So I don't think the issue is concering building imx6q for imx6dl?

0 Kudos
Reply