On Tue, Jun 16, 2009 at 4:07 AM, Maximilian ThuermerMaximilian.Thuermer@stud.uni-karlsruhe.de wrote:
its hard to tell by the logs. I am not familiar with the board topology. However, if I read the output correctly, the code seems to perform alright on the first but not on the second CPU. I went through our code patches and discovered that there may be an additional fix you might need to incorporate in order to get it working. The AMD_checkLinkType procedure only checks for gangend/unganged, HT1 vs. HT3 and so forth, but omitts a check as to whether the link was initialized correctly (i.e.present device, no CRC errors on the link, the like). We added a procedure checking bit no. 4 and 5 of the link control register whether the link was initialized correctly and didnt suffer a link failure. The procedure is called just before the HtSetPhyRegister function is executed. I attached the procedure to make it clear - not a diff file because this should normally be contained somewhere in the checkLinkType function (up until now, it was just a quick hack sort of). Check if this reports your link1 on cpu1 unconnnected. It should solve your problem then. Good luck,
Maximilian,
You found another bug. This one in checkLinkType. It checks the connect, init complete, and type but continues on regardless if the link is initialized. The caller expects the return value to be 0 is there was any problems with the link. Yeah, that is bad...
I don't think that you need the CRC errror checking at this point (but it wouldn't hurt). I think that should be handled in the HT init code and only the init
Here is an updated patch (untested as usual).
Signed-off-by: Marc Jones marcj303@yahoo.com
Marc