On 10/11/18 11:29 AM, Christian Gmeiner wrote:
> During the last weeks I found the root cause of my problem - PCIe
> spread spectrum
>
> Our FPGAs need a stable 100MHz PCIE clock to work. The used FSP config
> thing looked
> like this:
>
> void mainboard_memory_init_params(FSPM_UPD *mupd)
> {
> FSP_M_CONFIG *mem_cfg;
> struct spd_block blk = {
> .addr_map = { 0x50 },
> };
>
> mem_cfg = &mupd->FspmConfig;
>
> mem_cfg->PegDisableSpreadSpectrumClocking = 1;
> mem_cfg->PchPmPciePllSsc = 0;
>
> ...
> }
>
> With this configuration the PCIe reference clock was off more then 8% which
> caused the system to hang during cold and warm boots.
>
> In the next step I removed assignment of PchPmPciePllSsc as it is documented
> as 'No BIOS override'. With this change I got more then 1000 soft and
> 2000 hard reboots
> without any problem. Keep in mind we started with only 10 successful reboots.
Please be more specific about the final setting of this UPD. `No BIOS
override` is the documentation for the default value of 0xff. But is
this set to the default in the binary? who knows...
>
> The big problem is that PegDisableSpreadSpectrumClocking has no effect
> at all. I measured
> the freq it is not the 100MHz as expected. And I need to have a stable
> 100MHz this clock source
> is used internally by the FPGA to drive internal clocks. The end
> results is that EtherCAT is not
> able to sync.
This setting is about a different clock, I guess. Can you please clarify
what is connected to which clock on your board.
Nico
--
coreboot mailing list: [email protected]
https://mail.coreboot.org/mailman/listinfo/coreboot