Can you let us know the incoherent device in CPU 0....CPU3..?
Some device unit id can not be changed? For examples, you set it from 0 to
1, it will still be 0. So it hang there....
Regards
YH
-----Original Message-----
From: YhLu
Sent: Tuesday, November 02, 2004 4:07 PM
To: 'Stefan Reinauer'
Cc: linuxbios(a)clustermatic.org
Subject: RE: Weird K8 output
Yes,
You are right,
You can change to
// upos = ht_c[i].upos;
upos = ((reg & 0xf00)>>8) * 0x20 + 0x80;
last time, I remember because it will use up regs. But this time seems OK.
regards
Yinghai Lu
-----Original Message-----
From: Stefan Reinauer [mailto:stepan@openbios.org]
Sent: Tuesday, November 02, 2004 3:31 PM
To: YhLu
Subject: Re: Weird K8 output
* YhLu <YhLu(a)tyan.com> [041102 21:27]:
> MB Model?
> HT routing table?
It was too loud (LOGLEVEL 9)
BUT:
> coherent_ht_finalize
> done
> PCI_DEV=(0,0x18,0) 0xb4=00030000
> bus=00 id =74501022
> bus=00 id =74601022
> PCI_DEV=(0,0x19,0) 0xd4=000a0400
<HANGS HERE>
static int ht_setup_chains(const struct ht_chain *ht_c, int ht_c_num)
takes:
[...]
{ /* Link 1 of CPU0 */
.udev = PCI_DEV(0, 0x18, 0),
.upos = 0xa0,
.devreg = 0xe0,
},
{ /* Link 2 of CPU1 */
.udev = PCI_DEV(0, 0x19, 0),
.upos = 0xc0,
.devreg = 0xe4,
},
[...]
and resourcemap.c:
PCI_ADDR(0, 0x18, 1, 0xE0), 0x0000FC88, 0x03000103,
PCI_ADDR(0, 0x18, 1, 0xE4), 0x0000FC88, 0x0a040213,
PCI_ADDR(0, 0x18, 1, 0xE8), 0x0000FC88, 0x0f0b0223,
PCI_ADDR(0, 0x18, 1, 0xEC), 0x0000FC88, 0x14100133,
Question1:
I took the bus numbers above from the running machine. is this wrong?
How would I calculate them correctly?
Question2:
isn't .upos duplicate?
ht_setup_chains reads the link to choose from .devreg. It could
determine .upos from there as well, no?
Stefan