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@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