where I have select pcie as host or agent in I.MX8QM

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

where I have select pcie as host or agent in I.MX8QM

1,050 Views
mallibeerala
Contributor III
where I have select pcie as host or agent in I.MX8QM, at u-boot level.
0 Kudos
10 Replies

1,018 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport
 
I hope you are doing well
 

Please find the answer below.

To configure PCI at u-boot level, One needs to configure the drivers accordingly.

Please refer to the u-boot/drivers/pci/Kconfig file for details of the same.
For more information regarding pci as a root complex or endpoint please refer below document.
 
Thanks & Regards
Sanket Parekh

0 Kudos

1,009 Views
mallibeerala
Contributor III

Hi Sanket Parekh,

I am building Image by using yocto build(5.15.32) for I.MX8QM board.

Here in u-boot configuration file, below configurable parameters are not available.

CONFIG_IMX_PCIE=y

# CONFIG_IMX_PCIE_EP_MODE_IN_EP_RC_SYS is not set

CONFIG_IMX_PCIE_RC_MODE_IN_EP_RC_SYS=y

and while typing pci command in u-boot i am getting following errors

=> pci
imx_pcie pcie@0x5f000000: -2 unable to get power-on-gpio.
PCI: pcie phy link never came up
=> pci
imx_pcie pcie@0x5f000000: -16 unable to get clkreq.
imx_pcie pcie@0x5f000000: -16 unable to get disable-gpio.
imx_pcie pcie@0x5f000000: -2 unable to get power-on-gpio.
imx_pcie pcie@0x5f000000: -16 unable to get power-on-gpio.
PCI: pcie phy link never came up

Please help us to resolve this Issue.

Thanks,
Mallikarjuna

 

0 Kudos

966 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hi @mallibeerala 

I hope you are doing well.
 
When we connect two devices through PCI, We can configure either of them as a root complex(host) or end point(agent).
Normally the board works as a Root complexFor the endpoint device, one can use the configuration mentioned in u-boot/drivers/pci_endpoint/Kconfig in Uboot.
The reference link is for kernel(not uboot) configuration and was only for better understanding of PCI.
 
Regarding the error of pci command in uboot, requested to raise the new ticket for the same.
 
Thanks & Regards
Sanket Parekh

0 Kudos

955 Views
mallibeerala
Contributor III

Hi Sanket Parekh,

The configuration mentioned in u-boot/drivers/pci_endpoint/Kconfig in Uboot, I found endpoint configuration for sandbox and cadence architecture but for arm architecture configuration is not available.

Thanks & Regards,
Mallikarjuna B.

0 Kudos

921 Views
mallibeerala
Contributor III

Hi Sanket Parekh,

Is there any update regarding above query, please provide some information regarding this.

Thanks & Regards,
Mallikarjuna

0 Kudos

915 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport
 
I hope you are doing well.
 
My apology for the delayed answer.
 
In U-boot, there is just the host controller driver. To support the endpoint device one needs to make a driver by ourselves.
Whereas there is configuration in kernel side in the linux-imx/drivers/pci/endpoint to support end point devices and in linux-imx/drivers/pci/endpoint/functions for test driver of endpoint device.
 
Thanks & Regards
Sanket Parekh

0 Kudos

904 Views
mallibeerala
Contributor III

Hi Sanket Parekh,

I hope you are doing well.

I am asking about where I have to configure PCI as endpoint, but not for PCI endpoint driver in u-boot.

Thanks & Regards,
Mallikarjuna

0 Kudos

890 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hi @mallibeerala 

I hope you are doing well.
 
where I have to configure PCI as endpoint,
=> One needs to configure PCI in Kernel as the endpoint.
To configure PCI as an endpoint, one can use menuconfig for configuration using the below command.
$ bitbake -c menuconfig linux-imx
And enable these drivers as given below and build the EP image.
 
CONFIG_PCI=y 
[-> Device Drivers]

CONFIG_PCI_ENDPOINT=y
 -> Device Drivers                                                      
  │       -> PCI support (PCI [=y])                                              
  │ (1)     -> PCI Endpoint

CONFIG_PCI_ENDPOINT_CONFIGFS=y
-> Device Drivers                                                      
  │       -> PCI support (PCI [=y])                                            
  │         -> PCI Endpoint                                                    
  │ (2)       -> PCI Endpoint Support (PCI_ENDPOINT [=y])


CONFIG_PCI_EPF_TEST=y
-> Device Drivers                                                      
  │       -> PCI support (PCI [=y])                                              
  │         -> PCI Endpoint                                                    
  │ (1)       -> PCI Endpoint Support (PCI_ENDPOINT [=y])            
 
 
CONFIG_PCI_ENDPOINT_TEST=y
-> Device Drivers                                                      
  │ (1)   -> Misc devices 
 
If two boards are connected using PCI, One can flash an image with the endpoint configuration to the device which we want to make works as the endpoint. 
 
Thanks & Regards
Sanket Parekh

0 Kudos

880 Views
mallibeerala
Contributor III

Hi Sanket Parekh,

I hope you are doing well.

Can I connect PCI0 as root complex and PCI1 as end point.

If yes how can I configure.

Thanks & regards,
Mallikarjuna

0 Kudos

848 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hi @mallibeerala 

Can I connect PCI0 as root complex and PCI1 as end point.

-> Yes, One needs to connect both of the PCIE interfaces with each other.

If yes how can I configure.

-> This seems a another query, Please raise a new case for the same.

Thanks & Regards

Sanket Parekh

0 Kudos