Tyan S2885

YhLu YhLu at tyan.com
Fri Dec 5 12:28:01 CET 2003


I will try the code and use normal scan.

YH.

-----邮件原件-----
发件人: ebiederman at lnxi.com [mailto:ebiederman at lnxi.com] 
发送时间: 2003年12月4日 21:36
收件人: YhLu
抄送: ron minnich; Stefan Reinauer; linuxbios at clustermatic.org
主题: Re: Tyan S2885

YhLu <YhLu at tyan.com> writes:

> Eric,
> 
> I found in amdk8_scan_root_bus in northbridge/amd/amdk8/northbridge.c
> You put
>          /* Unmap all of the other pci busses */
>       for(reg = 0xe0; reg <= 0xec; reg += 4) {
>                 f1_write_config32(reg, 0);
>         }
> 
> Why you need to clear that? After you clear that, I can not see the 8151
and
> AGP in s2885.

Hmm.  This looks like a thinko. 

So right now the code says:
unsigned int amdk8_scan_root_bus(device_t root, unsigned int max)
{
	unsigned reg;
	max = pci_scan_bus(&root->link[0], PCI_DEVFN(0x18, 0), 0xff, max);
	/* Unmap all of the other pci busses */
	for(reg = 0xe0; reg <= 0xec; reg += 4) {
		f1_write_config32(reg, 0);
	}
	return max;
}

And I think what I meant was: 
unsigned int amdk8_scan_root_bus(device_t root, unsigned int max)
{
	unsigned reg;
	/* Unmap all of the other pci busses */
	for(reg = 0xe0; reg <= 0xec; reg += 4) {
		f1_write_config32(reg, 0);
	}
	max = pci_scan_bus(&root->link[0], PCI_DEVFN(0x18, 0), 0xff, max);
	return max;
}

I don't have a clue why it works at all with clearing those registers after
the pci bus scan.  

I wonder if that is the reason scan order matters because I don't
clear those registers out first and things are dual mapped.  

Anyway my intention was to be very careful and to clear the HT chain
mapping registers before we scanned them so we didn't have any old
configurations getting in the way.

Eric



More information about the coreboot mailing list