this is a problem I ran into multiple times since
I've been working with FPGA based HTX boards now and
it appears to me there is - as always - no general
way to fix that issue.
It all depends greatly on the mobo setup. Hard reset isnt
always behaving as you would expect. An HT link reinitialization
only takes place if either pwrkok goes down (the cold reset case),
or ldtstop forces the link into idle state (which most Opterons
out there dont seem to support yet).
Additionally, almost every mainboard vendor ignores the fact that
powerok and reset_n on every HT link is defined as bidirectional.
I am working with a Tyan S2912 with fam10 cpus, and its MCP55 seems
to control abovementioned signals unidirectionally.
If this should be the case with your board, too, there are two possible
ways to fix your issue.
If you have the southbridge documentation and it truly controls all HT sideband
signals, implement your own, real hard reset.
Another thing that works on some boards (e.g. on Tyan) is pressing and holding the reset button
before pressing the power button and letting it go sometimes afterwards.
This holds the southbridge in init state
and leaves your card all the time you need to have it program itself.
Good luck and best regards,
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
I read in the maillist
(http://email@example.com/msg01089.html) of a
similar problem but with no solution published at the end :(.
So is there any way how I could delay the whole initialization process
to give the card more time?
Thanks in advanced,