i.mx6 Solo PCIe Endpoint device without DDR

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

i.mx6 Solo PCIe Endpoint device without DDR

Jump to solution
2,124 Views
azausatu
Contributor I

Hello!

I use a congatec conga-QEVAL debugging Board with the qseven conga-QMX6 module installed on it (NXP i. MX6 Solo ARM Cortex A9 1 x 1.0 GHz, 512kB L2 cache, 3W)
I have a task to use conga-QMX6 as a PCIe Endpoint device.


Questions:
1) is it Possible to implement a PCIe Endpoint device without using the DDR memory that is on my Board?
2) Without using DDR3, I can only use standalone mode, bare-metall programming style. I use the Platform-SDK. Is there a newer way?
3) do I Correctly assume that my application, with the PCIe Endpoint implementation of the device, will run u-boot?
4) the Platform SDK has an example of board_pci.c. Should I use this example as a starting point?

Thank you so much for any help!

Labels (2)
Tags (3)
0 Kudos
Reply
1 Solution
1,816 Views
igorpadykov
NXP Employee
NXP Employee

Hi Azamat

>1) is it Possible to implement a PCIe Endpoint device without using the DDR memory that is on my Board?

yes

>2) Without using DDR3, I can only use standalone mode, bare-metall programming style. I use the Platform-SDK.

>Is there a newer way?

no


>3) do I Correctly assume that my application, with the PCIe Endpoint implementation of the device,

>will run u-boot?

sdk does not use uboot. However seems in uboot pcie also can be used, please look at #define CONFIG_PCIE_IMX in

mx6sabresd.h\configs\include - uboot-imx - i.MX U-Boot 


>4) the Platform SDK has an example of board_pci.c. Should I use this example as a starting point?

one can start with rt-thread/pcie_test_rc.c at master · RT-Thread/rt-thread · GitHub 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

4 Replies
1,816 Views
scottkche
Contributor I

Freescale Semiconductor reserves the right to make changes without further notice to any products herein.

0 Kudos
Reply
1,817 Views
igorpadykov
NXP Employee
NXP Employee

Hi Azamat

>1) is it Possible to implement a PCIe Endpoint device without using the DDR memory that is on my Board?

yes

>2) Without using DDR3, I can only use standalone mode, bare-metall programming style. I use the Platform-SDK.

>Is there a newer way?

no


>3) do I Correctly assume that my application, with the PCIe Endpoint implementation of the device,

>will run u-boot?

sdk does not use uboot. However seems in uboot pcie also can be used, please look at #define CONFIG_PCIE_IMX in

mx6sabresd.h\configs\include - uboot-imx - i.MX U-Boot 


>4) the Platform SDK has an example of board_pci.c. Should I use this example as a starting point?

one can start with rt-thread/pcie_test_rc.c at master · RT-Thread/rt-thread · GitHub 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,816 Views
azausatu
Contributor I

Thank you for your support! Only two callouts:

"sdk does use uboot."

1) I thought that any application from the Platform SDK should be launched from u-boot (first I loaded the application over the serial interface using the "loadb" command, then with the "go" command to the desired address). Was it wrong?

When using examples from the Platform SDK, don't you need to use u-boot?

Used the following commands, for example for usb_hid_mouse:

E:\output\mx6sl\usb_hid_mouse\evk_rev_a>arm-none-eabi-objdump -f usb_hid_mouse.elf

      usb_hid_mouse.elf: file format elf32-littlearm
      architecture: armv7, flags 0x00000012:
      EXEC_P, HAS_SYMS
      start address 0x80000678

In u-boot, i downloaded it .bin file from the example, command line:
      CGT-QMX6 U-Boot > loadb
      ## Ready for binary (kermit) download to 0x12000000 at 115200 bps...
      ## Total Size = 0x0001e5d0 = 124368 Bytes
      ## Start Addr = 0x12000000

Now to launch the app, you need to go to the address (0x12000000 + 0x80000678) using the "go" command?

2) Do I understand correctly that my application (if not using u-boot) must initialize all the necessary peripherals, including PCI-e?

Thanks!

0 Kudos
Reply
1,816 Views
igorpadykov
NXP Employee
NXP Employee

sorry, correct:  sdk does not use uboot.

>2) Do I understand correctly that my application (if not using u-boot) must

>initialize all the necessary peripherals, including PCI-e?

right.

Best regards
igor