=?gb2312?b?tPC4tA==?=: ????: coherent_ht_mainboard()
Eric W. Biederman
ebiederman at lnxi.com
Wed Mar 24 13:55:00 CET 2004
YhLu <YhLu at tyan.com> writes:
> The optimize_link make
> The link CPU0 to CPU1: in CPU0 side(link0) is 16x800 and CPU1 side(link0)
> is 16x800
I don't know if 1Ghz is actually supported between cpus. AMD never
mentions it, at least I had not seen that it was supported when I
wrote that code. So I erred on the side of caution and limited things
to what is documented as supported.
> but the scan_ht_chain change CPU0 side(link0) is 16x600
An 8131 does not operate reliably at over 600Mhz. Read the errata.
The 8131 does advertise that it can go at 800Mhz though.
> it must think it is connected to 8111 or something.
I believe these cap come from ht_read_freq_cap. And they
are explicitly set:
Here is the general version in devices/hypertransport.c.
The amdk8 versions are a little more abbreviated.
static unsigned ht_read_freq_cap(device_t dev, unsigned pos)
{
/* Handle bugs in valid hypertransport frequency reporting */
unsigned freq_cap;
freq_cap = pci_read_config16(dev, pos);
freq_cap &= ~(1 << HT_FREQ_VENDOR); /* Ignore Vendor HT frequencies */
/* AMD 8131 Errata 48 */
if ((dev->vendor == PCI_VENDOR_ID_AMD) &&
(dev->device == PCI_DEVICE_ID_AMD_8131_PCIX)) {
freq_cap &= ~(1 << HT_FREQ_800Mhz);
}
/* AMD 8151 Errata 23 */
if ((dev->vendor == PCI_VENDOR_ID_AMD) &&
(dev->device == PCI_DEVICE_ID_AMD_8151_SYSCTRL)) {
freq_cap &= ~(1 << HT_FREQ_800Mhz);
}
/* AMD K8 Unsupported 1Ghz? */
if ((dev->vendor == PCI_VENDOR_ID_AMD) && (dev->device == 0x1100)) {
freq_cap &= ~(1 << HT_FREQ_1000Mhz);
}
return freq_cap;
}
I hope this helps,
Eric
More information about the coreboot
mailing list