my version of coreboot (on Supermicro H8QME-2+) is working just fabulous but now I have a little issue. I have a HTX board with a FPGA on it which needs to boot with coreboot on the motherboard. The problem is that it fails to boot most of the time because it doesn't had time to initialize itself properly. I know that because at HT non coherent device initialization it marks bit 1(InitComplete) in the link type register of the device as 0. What I tried to do is to hard_reset() every time it fails but with no luck. I did that because after a power cycle the card seems to have enough time to initialize and the boot process completes successfully.
Doing a hard reset works for me here. I'm surprised that power cycling the machine works. That doesn't work for me. I always figured that it was because on a warm hard reset the power and clocks were already stable.
So is there any way how I could delay the whole initialization process to give the card more time?
By the time software gets control, it's too late. The HT links are already initialized.
From your FPGA, you should be able to delay it if your clock is stable and
you can have CAD driven high and CTL driven low. Initialization shouldn't start until you raise CTL.
Thanks, Myles