This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCIe BAR mask, out of range!

Hi,

 in PCIe user Guide, with the BAR we can specify the range [memory address] within the EP(Shannon) receive or reject  the data from RC (shannon),

so says that I want send a data from RC to EP[ range 0x6000 0000 to 0x6ff0 0000]

 but by mistake, I specify an address out of range so what will happen in this cases:

case 1: 0x6fe0 0000 (included in PCIe memory space, but with the data size accros that will accros the range)

case 2: 0x6ffc 0000 (included in PCIe memory space, but out of EP range)

case3:  0x7000 0002 (EMIF16 CS2 data space, supports NAND, NOR or SRAM memory)

so means  that can produce a mistake config. In some register that I would not touch them or there are some protections expected (in compilation, building…)?

  • Delared,

    Case 1: The part of the data within the EP BAR window range will be accepted. The other part out of the range will be rejected by EP

    Case 2: The data are out of EP BAR window. They will be rejected by EP

    Case 3: Same case as Case 2. They are out of the range and will not be accepted by EP.

    The user/programmer should take care of the correct PCIe configuration including BAR setup and PCIe address. The CCS or compiler does not need to know if the data range is valid or not.

  • Steven,

    So in this case especcially (case 3), what is going to happened to the rejected data?


    1- RC will start the transfer and the data will be lost?

    2- the RC know in advance and it will not start the transfer?

  • Actually In case 3, it is the other master (CPU/EDMA) push data to 0x7000_0000, the data will not be pushed to PCIe slave port (ended at 0x6fff_ffff), instead, the data is transferred to EMIF, not related to PCIe at all.

    In case 2, I think the out-of-range data will be lost (no EP accepts it), RC will not know it in advance. It is the user responsibility to make sure RC and EP configuration are aligned for the transactions. You can add sanity check in your software to double check the address range meet your configuration.