<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le jeu. 18 avr. 2019 à 21:51, Dean Sanner <<a href="mailto:dsanner@us.ibm.com">dsanner@us.ibm.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p><tt><font size="2">Hi Alexandre,</font></tt><br><br><tt><font size="2">I'm suspecting not so much of a reset... but that the skiboot code is </font></tt><br><tt><font size="2">targeting the wrong unit within the chip.  Hostboot has a feature </font></tt><br><tt><font size="2">on scom addresses that do translation based on which target you are </font></tt><br><tt><font size="2">attempting to access.  The raw skiboot access will only return the </font></tt><br><tt><font size="2">zero'th unit (skiboot expects the user to do the scom translation).</font></tt><br><br><tt><font size="2">> > [   51.504955724,5] CHIP: Chip ID 0000 type: P9N<br>> > DD2.2^M<br>> > [   51.504992069,3] UPMEM: __xscom_read: gcid, read address gcid:0x0<br>> > 0x0x603fc38085050</font></tt><br><br><tt><font size="2">This is socket 0 (base Xscom address of 0x603fc00000000) and the scom address</font></tt><br><tt><font size="2">is </font></tt><tt><font size="2">0x7010A0A  (0x38085050>>3)</font></tt><br><br><tt><font size="2">> >  51.72614|FAPI|call_host_start_payload.C: UPMEM: 0x7010a0a value is :<br>> > *0x8890a23810800000*^M<br>> >  51.72616|FAPI|call_host_start_payload.C: UPMEM:* PIR: 0x80d*^M<br></font></tt><br><tt><font size="2">I'm guessing this is not on the zero'th instance of the memory controller</font></tt><br><tt><font size="2">in the chip (there are 8 per socket).  Can you also print out the HUID </font></tt><br><tt><font size="2">to be sure (TARGETING::get_huid(i_target))?</font></tt><br><br><tt><font size="2">The addresses of the 8 memory controllers in the chip are:</font></tt><br><tt><font size="2">07010A0A</font></tt><br><tt><font size="2">07010A4A</font></tt><br><tt><font size="2">07010A8A</font></tt><br><tt><font size="2">07010ACA</font></tt><br><tt><font size="2">08010A0A</font></tt><br><tt><font size="2">08010A4A</font></tt><br><tt><font size="2">08010A8A</font></tt><br><tt><font size="2">08010ACA</font></tt><br><br></p></div></blockquote><div><br></div><div>HUID gave me:  0x240005 and this is the output of ALL the memory controllers<br></div><div>from skiboot:<br><br>[   51.131975420,3] XXXXX: chip: 0 addr: 0000000007010a0a = 0a10603810800000<br>[   51.132051318,3] XXXXX: chip: 0 addr: 0000000007010a4a = 0a10603810800000<br>[   51.132107445,3] XXXXX: chip: 0 addr: 0000000007010a8a = 0a10603810800000<br>[   51.132164424,3] XXXXX: chip: 0 addr: 0000000007010aca = 0a10603810800000<br>[   51.132219694,3] XXXXX: chip: 0 addr: 0000000008010a0a = 0a10603810800000<br><b>[   51.132270030,3] XXXXX: chip: 0 addr: 0000000008010a4a = 8890a23810800000</b><br>[   51.132314136,3] XXXXX: chip: 0 addr: 0000000008010a8a = 0a10603810800000<br>[   51.132359437,3] XXXXX: chip: 0 addr: 0000000008010aca = 0a10603810800000<br>[   51.132408643,3] XXXXX: chip: 8 addr: 0000000007010a0a = 0a10603810800000<br>[   51.132472784,3] XXXXX: chip: 8 addr: 0000000007010a4a = 0a10603810800000<br>[   51.132529917,3] XXXXX: chip: 8 addr: 0000000007010a8a = 0a10603810800000<br>[   51.132595065,3] XXXXX: chip: 8 addr: 0000000007010aca = 0a10603810800000<br>[   51.132648960,3] XXXXX: chip: 8 addr: 0000000008010a0a = 0a10603810800000<br>[   51.132698377,3] XXXXX: chip: 8 addr: 0000000008010a4a = 0a10603810800000<br>[   51.132746432,3] XXXXX: chip: 8 addr: 0000000008010a8a = 0a10603810800000<br>[   51.132798168,3] XXXXX: chip: 8 addr: 0000000008010aca = 0a10603810800000<br><br><br></div><div>So I now understand what you mean: hostboot turned 0x7010a0a into 0x8010a4a when it<br></div><div>saw that p was the fifth MC.<br></div><div><br> FAPI_TRY(fapi2::getScom(p, 0x7010a0a, o_buffer), "UPMEM: Failed to read recr");<br> FAPI_INF("UPMEM: @0x7010a0a HUID = %u, value is : 0x%llx", TARGETING::get_huid(p), o_buffer);<br><br><br></div><div>Ok that's good to know, I'll take care of this address translation in the future !<br><br></div><div>Thank you everyone for your answers, very helpful.<br><br></div><div>Alex<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p><br><tt><font size="2">Please let me know if this doesn't help, and I'll dig into the code</font></tt><br><tt><font size="2">further.</font></tt><br><br><br><font size="2">Dean Sanner<br>Dept. DIH, IBM Rochester, MN<br>(507) 253-7523    t/l 553-7523<br><a href="mailto:dsanner@us.ibm.com" target="_blank">dsanner@us.ibm.com</a><br></font><br><br>
</p></div>
</blockquote></div></div></div></div></div></div></div></div></div>