Dear Ufedor,
I've done some measurements.
3) The SD1_REF_CLK1_P/N waveform is reported in figs. below and has V_pkpk=1.24V. The Vpkpk is obtained from a AC-LVPECL waveform with V_pkpk=1.8V further reduced of 70% with a series resistor 22ohm to be compliant with CPU requirements (V_pkpk < 0.8V).

4) the PORESET_B assertion duration after all supplies are stable is 213ms (both if the system starts up normally, see fig. 1, or if the systems fails to startup, see fig. 2).
5) the PORESET_B related logic is:
if [(EN_HRESET_REQ_B = 0 and HRESET_REQ_B=0) or FPGA_HRESET_REQ_B=0] then:
CPU_HRESET_B=0 for 200ms;
If PS_RESET_B=0 then:
CPU_HRESET_B=0;
if CPU_HRESET_B=0 or COP_HRESET_3.3V_B=0 then:
PORESET_B=0;
As explained below we identified the exact conditions that activated the PORESET_B=0 in case of failing startup: see bold condition above.
What’s happen during normal startup (see fig. 1):
It takes about 213ms from the time all supplies are stable (in the picture I put only VDD_DDR3=1.35V [trace C1, fig.1,2] supply because it’s the last supply to stabilize) to the first PORESET_B: 0->1 [trace C2, fig.1,2] POR transition. This 213ms delay is originated by voltage monitor U31 (STM6905) which, during this time, keeps its output PS_RESET_B=0; moreover DS2 keeps CPU_HRESET=0 [trace C4, fig. 1,2] causing U37 to keep PORESET_B=0 after initial stabilization.
Until this moment HRESET_REQ_B [trace C3, fig. 1,2] was not asserted.
Now, 213ms after all supplies are stable, voltage monitor U31 releases PS_RESET_B, then DS2 releases CPU_HRESET_B(*) [trace C4, fig. 1,2], so they both have a transition 0->1; at the same time U37 releases PORESET_B [trace C2, fig. 1,2].
(*) at this moment CPU_HRESET_B is already been released by supervisor U39 (STM6322) which has a lower timeout, 200ms.
At 948ms since supplies are stable we see a EN_HRESET_REQ_B=1->0 transition (as in fig. 6): it’s the GPIO used to enable the CPU reset request.
From this moment there aren’t any other transitions on CPU_HRESET_B, PORESET_B, HRESET_REQ_B signals. In this case the system works normally.
What’s happen during system startup fail event (see fig. 2,3):
It takes about 213ms from the time all supplies are stable (in the picture I put only VDD_DDR3=1.35V [trace C1, fig.1,2] supply because it’s the last supply to stabilize) to the first PORESET_B: 0->1 [trace C2, fig.1,2] POR transition. This 213ms delay is originated by voltage monitor U31 (STM6905) which, during this time, keeps its output PS_RESET_B=0; moreover DS2 keeps CPU_HRESET=0 [trace C4, fig. 1,2] causing U37 to keep PORESET_B=0 after initial stabilization.
Until this moment HRESET_REQ_B [trace C3, fig. 1,2] was not asserted.
(#)
Now, 213ms after all supplies are stable, voltage monitor U31 releases PS_RESET_B, then DS2 releases CPU_HRESET_B(*) [trace C4, fig. 1,2], so they both have a transition 0->1; at the same time U37 releases PORESET_B [trace C2, fig. 1,2].
(*) at this moment CPU_HRESET_B is already been released by supervisor U39 (STM6322) which has a lower timeout, 200ms.
The first difference of fig.2 (compared to fig. 1) is that, after 213+3ms since supplies are stable (only for first event) or 3ms since this PORESET_B: 0->1 transition the CPU(**), yet out of POR state, drives the first HRESET_REQ_B: 1->0 [trace C3, fig. 2,3] transition.
(**) we suppose that’s the CPU that drives the HRESET_REQ_B transition because HRESET_REQ_B is connected to:
- CPU -> we suppose that drives this transition;
- FPGA -> the FPGA doesn’t drive the signal as it’s not programmed at this moment;
- U41 -> U41 doesn’t drive the signal because - after we cut its input EN_HRESET_REQ_B and added there a pullup - we could still measure the same transition on HRESET_REQ_B CPU side.
After 948ms since supplies are stable (only for first event) or 734ms since this PORESET_B: 0->1 transition there is the EN_HRESET_REQ_B=1->0 transition (as in fig. 4), as in the normal startup case: as HRESET_REQ_B=0 (as told above) then U41-U40-U39-U37 logic chain lead to a PORESET_B: 1->0 transition and the CPU goes for the first time in a unwanted POR state (see fig. 2,3).
Side note: we excluded that the PORESET_B: 1->0 transition is unstable voltage supply (because PS_RESET_B = 1 is stable for all time).
After 948ms+0.3ms since supplies are stable (only for first event) or 734ms+0.3ms since this PORESET_B: 0->1 transition we see a EN_HRESET_REQ_B=1->0 transition as in fig. 4, probably due to CPU POR state.
The waveforms explanation continues at fig. 5:
after further 190ms in other words after 948+190ms since supplies are stable (only for first event) or 734ms+190ms since this PORESET_B: 0->1 transition, as in fig. 5, we see the first PORESET_B: 0->1 transition and the CPU exits for the first time from the unwanted POR state.
(#)
From this moment the waveforms repeat periodically between the (#) marks with T=926m.
NOTE: if we artificially shutdown SD1_REF_CLK1 the system fails EVERY startup exactly in the same way of above description.
Do you have all information useful to reply? We are in a hurry because we need to proceed with new production batch.
One question we need fast reply is: is it ok to supply AVDD_SD1_PLL1 from our board-level +VDD_DDR3=1.35V rail (like actual board) or should we supply it from X1VDD CPU balls (e.g. AC12)? It's not clear from manual.
Thank you,
Giacomo.
------------------------
Figures:
Normal startup:

FIG.1: Normal startup (C1=VDD_DDR3, C2=PORESET_B, C3=HRESET_REQ_B, C4=CPU_HRESET_B)

FIG. 6: Normal startup (C1=VDD_DDR3, C2=PORESET_B, C3=EN_HRESET_REQ_B, C4=U41_OUT)
Wrong startup – first unwanted POR event (“CPU reset”):

FIG. 2: Wrong startup - first unwanted POR event (C1=VDD_DDR3, C2=PORESET_B, C3=HRESET_REQ_B, C4=CPU_HRESET_B)

FIG. 3: Wrong startup - first unwanted POR event (C1=VDD_DDR3, C2=PORESET_B, C3=HRESET_REQ_B, C4=CPU_HRESET_B)

FIG. 4: Wrong startup - first unwanted POR event (C1=VDD_DDR3, C2=PORESET_B, C3=EN_HRESET_REQ_B, C4=U41_OUT)
Wrong startup – following unwanted POR events (“CPU reset”):

FIG. 5: Wrong startup - further unwanted POR periodical events (C1=VDD_DDR3, C2=PORESET_B, C3=HRESET_REQ_B, C4=CPU_HRESET_B)