We are designing a board based on the LS1020 and are trying to stay without a CPLD. Can someone explain what are the limitations?
I noticed e.g. the RCW source should be hard wired with pull ups on the IFC_ADn signals or made somehow switchable via jumpers to load RCW from NOR flash, QSPI flash or SD card. With CPLD this can be made sw programmable. Any other more or less significant difference?
Thanks.
Many thanks. This was the missing bridge for a CPLD newbie. I now also know, for which purpose are these EVT signals (just a GPIO for controlling the CPLD).
The evt9_board_iso and evt2_dsm_en signals are not present in my schematics file. Can you point to the right schematics, please? I would like to think about applying PHY's ints directly to the LS102x.
evt9_board_iso = EVT9_B
evt2_dsm_en = EVT2_B
Refer to the CPLD source:
\TWR-LS1021A-PB_V2.0\TWR_LS1021A_CPLD\TWR_LS1021A_CPLD_TWR_LS1021A_CPLD.pad
Thanks for the link. But it raised more questions :-).
New files are named V2.0 and the CPLD code states it is intended for PB Rev.B, but the accompanied schematics and brd files from the zip file exactly equal to those ones in the zip file with cpld V1.1 code, which I have (CPLD-TWR-LS1021A-PB_V1.1.zip). I have the TWR-LS1021A_Schematic_SPF-28673_B.pdf document.
I checked ints for ethernet interfaces and in the v1.1 CPLD code, these are even unused in the code, i.e. they are not handled. Does it mean the Linux driver for ethernet PHYs worked in a polled mode?
With CPLD V2.0, there is some handling with sleep mode and these ints are blocked by the evt9_board_iso signal (see CPLD code snippet below). But I am unable to find this signal in the ..._B board schematics.
Also the gate_3_3V signal was not handled in the V1.1 CPLD code. Is my schematics file the most recent one?
However browsing through schematics and CPLD code gives results, my question is: Is there a document, describing CPLD goals, maybe also IC consumption and individual power source requirements for the Tower board?
assign soc_irq0 = (deep_sleep_en && (~evt9_board_iso))? 1'b1 : sgmii1_phy_int_n_18 && sgmii2_phy_int_n_18 && rgmii_phy_int_n_18; assign soc_irq1 = (deep_sleep_en && (~evt9_board_iso))? 1'b1 : pmic_int_b && hdmi_det;
> Is there a document, describing CPLD goals,
There is no such document.
Implementing switches for the RCW source gives the same functionality as CPLD.
Thanks for your comment. Is there anything else in the CPLD regarding reset logic? Why is it so sophisticated?
I understand advantage of having a separate reset for a particular peripheral ICs. IMHO, separate reset for DDR RAM does not make sense, parallel flash (I never coped with a problem with these chips, QSPI same), ethernet. Ok we had a problem with SMSC controller with longer reset, but here with Atheros PHY which has 1 ms reset, I think there will not be a problem.
Can you please confirm my thoughts?
I agree with your reasoning.
Also it is possible to inspect the TWR-LS1021A CPLD source code to ensure that all need functionality is implemented: