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.

AM3874: PCIe activation problem

Part Number: AM3874

Hi champs,

customer is currently fixing several issues on an industrial Control System (PLC), using an AM3874 chip.

At the moment, we´re trying to find a solution to a problem concerning PCIe activation on system boot up.

The problem can be described as following:

When a PCI card is connected to the device, the system stops at boot phase after the initialization of PCIe (clock activation sequence according to SPRUGZ7E) and during PCIe setup when we´re trying to read a register from the PCIESS (PL_GEN2 register).

The system behaves in 2 different ways:

-          If there´s an ethernet cable plugged into either (or both) of the 2 ethernet ports, the system SOMETIMES manages to fully boot into Windows CE 7.0 and is also able to detect the plugged PCIe expansion card.

-          If there´s no ethernet cable plugged in, the system continuously reboots via watchdog, as the boot procedure hangs at the reading of PL_GEN2 register.

We´re now trying to find a coherence between the plugged ethernet cable and the system stop on the reading of registers from PCIESS. Maybe you could provide us some information about the following questions:

-          Is there any mandatory sequence for the activation of Clocks?

  • Are there any preconditions that have to be met, before a Clock (PCIe clock in our case) can be activated?
  • Note: Activation of SERDES is working properly on each boot, according to debug logs

-          Is  there any possibility of Debugging Clock activation issues, e.g. debug Registers?

-          Do you have an example Project showing the activation of PCIe?

-          Following the Manual SPRUGZ7E (Revision July 2015), chapter 19.3.1.1: Is this example sufficient for the activation of PCIe, or are there any initialization steps (e.g. other Clocks etc.) that have to be done Prior to the activation of PCIe?

-          Are Clocks being activated automatically without explicit calls in the application?

-          Regarding the EMACSW Clock, a very high number of activation tries (greater than 5000 tries) are registered, but no activation tries are being made by the application. Any reason or ideas to this?

-          How can a Clock, being (or hanging) in state transitional, be reset back to the initial state? Toggling the Control bits from 0x02 to 0x00 does not change the state, according to debug logs

-          Is there any interaction between the Clock of EMACSW (Ethernet ports) and the clock for PCIe? Plugging in an Ethernet cable seems to increase the possibility of successfully bringing up the PCIe bus.

 -          Are there any known issues concerning the activation of PCIe?

We can follow up by private email, if needed!