<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial, helvetica, sans-serif;font-size:10pt"><DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">Hi,</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">I understand that before the node ids are being assigned, each AP node is considered as Node7. We will just go through the sequence of code in setup_smp2() in coherent_ht.c.</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">From the link type register 0x98, in Node0, it is seen that link1 is coherent and connected.</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><FONT color=#4040ff>setup_row_local(0, 0); /* it will update the broadcast RT*/ <FONT color=#000000>// value is 0x50101 in F0 register 0x40<BR></FONT> <BR> val = get_row(0,0);<BR> byte = (val>>16) & 0xfe; // byte = 0xf4<BR> if(byte<0x2) { /* no coherent connection so get out.*/<BR>  nodes = 1;<BR>  return nodes;<BR> }</FONT></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><FONT color=#4040ff> /* Setup and check a temporary connection to node 1 */<BR>#if TRY_HIGH_FIRST == 1<BR> byte = get_linkn_last(byte); /* Max Link to node1 */<BR>#else // <FONT color=#000000>TRY_HIGH_FIRST = 0 here<BR></FONT> byte = get_linkn_first(byte); /*Min Link to node1 --- according to AMD*/<BR>#endif // <FONT color=#000000>byte = 1</FONT></FONT></DIV><FONT color=#4040ff><FONT color=#000000>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><BR></FONT> print_linkn("(0,1) link=", byte);<BR> setup_row_direct(0,1, byte); <FONT color=#000000>//  ( We are modifying the routing register 0x44, which is for the connection between Node0 and Node1. So here itself we consider Node1 itself and node7, though we copy the value from register 0x44 to 0x5c in the next function.</FONT></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><BR> setup_temp_row(0, 1);  <FONT color=#000000>// As mentioned, we copy the value from 0x44 to 0x5c, ie setting up of routing register for connection between node0 and node7 --> which is actually AP<BR></FONT> <BR> verify_connection(7); </FONT><FONT color=#000000>// Here is where I get confused.See verify the connection tries to read the 0x0 register from Node7, which doesnt exist at all.ie in our case node0 has device address 0x18 and hence node7 will have 0x18+7 = 0x1f and such a device doesnt exist at all if you do lspci.</FONT></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)<BR>00:01.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01)<BR>00:02.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)<BR>00:02.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01)<BR>00:06.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8111 PCI (rev 07)<BR>00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05)<BR>00:07.1 IDE interface: Advanced Micro Devices [AMD] AMD-8111 IDE (rev 03)<BR>00:07.3 Bridge: Advanced Micro Devices [AMD] AMD-8111 ACPI (rev 05)<BR>00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration<BR>00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map<BR>00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM
 Controller<BR>00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control<BR>00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration<BR>00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map<BR>00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller<BR>00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control<BR>01:00.0 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b)<BR>01:00.1 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b)<BR>01:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)<BR></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">So then what value do we read..The same question arises for the next function also - </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><FONT color=#4040ff> /* We found 2 nodes so far */<BR> val = pci_read_config32(NODE_HT(7), 0x6c); <FONT color=#000000> // Here also the same issues arises<BR></FONT> byte = (val>>2) & 0x3; /*get default link on node7 to node0*/<BR> print_linkn("(1,0) link=", byte);<BR> setup_row_local(7,1);<BR> setup_remote_row_direct(1, 0, byte);<BR></FONT></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><FONT color=#000000>Viswesh</FONT></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><BR><BR> </DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"> </DIV></div><br>


      <!--1--><hr size=1></hr> Download prohibited? No problem. <a href="http://in.rd.yahoo.com/tagline_webmessenger_1/*http://in.messenger.yahoo.com/webmessengerpromo.php">CHAT</a> from any browser, without download.</body></html>