Why can't use more than 4G memory with PCIE

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

Why can't use more than 4G memory with PCIE

501 Views
Hanc
Contributor I

Hi,Expert

We are using toradex IMX8QM core board +QNX7.0 BSP with 4G RAM, 2G of which is located between 0x80000000 and 0xffffffff, and 2G of which is located above 4G address space, but there is the following comment in the BSP build file about using PCIE driver

## PCI Server
## Note:
## PCIe module driver works with under 4G memory limitation.
## To use PCI server, please comment out the line of
## "#define IMX_SDRAM1_SIZE 4096" in the startup header file
## $BSP_ROOT/src/hardware/startup/boards/imx8x/qm-cpu-card/board.h
#######################################################################

 

That is to say, if we want to use the PCIE driver, we cannot open more than 4G RAM, so we only have 2G RAM available, why use PCIE and use more than 4G RAM conflict

 

Thank you

Hanc

 

0 Kudos
Reply
2 Replies

455 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @Hanc 

 

This is pcie ip limitation, you can find information in i.MX8QM RM.The maximum PCIE DMA transfer size is 4Gbytes.

Zhiming_Liu_1-1712882924901.png

 

 

 

0 Kudos
Reply

423 Views
XiaoHan
Contributor I

Hi ,Expert

      But why does linux bsp support the use of pcie and more than 4G memory space at the same time, while qnx must give up more than 4G memory space to use pcie. I checked the qnx code, if you want to use pcie in BSP phase, you cannot add more than 4G memory to the system page table. As a result, the application can only use up to 2 gigabytes of memory
In addition, the imx8 has many peripherals with DMA capabilities, as long as dma can not be used to drive the application to more than 4G memory space

Thank you

Hanc

0 Kudos
Reply