[coreboot] Hyper Transport init for M4A785T-M

Denis 'GNUtoo' Carikli GNUtoo at no-log.org
Thu Apr 12 13:45:20 CEST 2012


Hi,

I've still my screen flickering issues(screen flickers for resolutions which are 
superior to 832x624 ) on the M4A785T-M mainboard.

I've been investigating and here's what I found:

In src/southbridge/amd/rs780/early_setup.c there is:
        printk(BIOS_INFO, "rs780_htinit cpu_ht_freq=%x.\n", cpu_ht_freq);
In the rs780_htinit function, which prints 0 as cpu_ht_freq.

Then it assumes the CPU is k8 (I've a fam10h: model name	: AMD Athlon(tm) II 
X2 250 Processor) and it doesn't do the right init for my rs780.

Here is a call graph of the  initialization of the Hyper Transport:

amd_ht_init(src/northbridge/amd/amdht/ht_wrapper.c)
|->amdHtInitialize(northbridge/amd/amdht/h3finit.c)
   |->linkOptimization(northbridge/amd/amdht/h3finit.c)
      |->coherentInit(northbridge/amd/amdht/h3finit.c)
         |->htDiscoveryFloodFill(northbridge/amd/amdht/h3finit.c)
              \-> pDat->nb->verifyLinkIsCoherent always return false and so:
                     the for loop is executed 8 times, but each time the
                     follownig function returns false(and so it runs the
                     continue instruction):
                     if (!pDat->nb->verifyLinkIsCoherent(...)) 
                     and so it doesn't run what's next which prevent
                     TotalLinks from beeing incremented.
               |->verifyLinkIsCoherent(northbridge/amd/amdht/h3ncmn.c)
                     \->max_nodes=8,link goes from 0 to 7,and node is always 0
      |-> selectOptimalWidthAndFrequency(northbridge/amd/amdht/h3finit.c)
             \-> pDat->TotalLinks is 0, so the for loop isn't run

The big problem here is that I don't know why verifyLinkIsCoherent always 
return false, and that seem to be the cause of my problem.

Denis.





More information about the coreboot mailing list