<div class="gmail_extra">I removed the assert as you said, but it didn&#39;t work. Here is each cores output in terms of spawnd:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">spawnd.0: coreid 0 is arch id 0</div>


<div class="gmail_extra">spawnd.0: coreid 1 is arch id 1</div><div class="gmail_extra">spawnd.0: coreid 2 is arch id 2</div><div class="gmail_extra">spawnd.0: coreid 3 is arch id 3</div><div class="gmail_extra">0 chips: client waiting for all_spawnds_up</div>


<div class="gmail_extra">Monitor 0: booting scc core 1 as &#39;/scc/sbin/cpu&#39;</div><div class="gmail_extra">kernel 0: Allocating RAM at 0x80020000 uninitialized</div><div class="gmail_extra"><br></div><div class="gmail_extra">


<div class="gmail_extra">spawnd.1: coreid 0 is arch id 2</div><div class="gmail_extra">spawnd.1: coreid 1 is arch id 1</div><div class="gmail_extra">spawnd.1: coreid 2 is arch id 3</div><div class="gmail_extra">0 chips: client waiting for all_spawnds_up</div>


<div class="gmail_extra">Monitor 1: booting scc core 0 as &#39;/scc/sbin/cpu&#39;</div><div class="gmail_extra">kernel 1: Allocating RAM at 0x84020000 uninitialized</div><div class="gmail_extra"><br></div><div class="gmail_extra">


** I can understand that since core 1&#39;s spawnd report that &quot;coreid 0 is arch id 2&quot;, so when it says &quot;booting scc core 0 as ...&quot;, it&#39;s actually</div><div class="gmail_extra">about to boot core 2. So core 2 is up.</div>


<div><br></div><div><div>spawnd.2: coreid 0 is arch id 1</div><div>spawnd.2: coreid 1 is arch id 3</div><div>spawnd.2: coreid 2 is arch id 2</div><div>0 chips: client waiting for all_spawnds_up</div><div>Monitor 2: booting scc core 0 as &#39;/scc/sbin/cpu&#39;</div>


<div>kernel 2: Allocating RAM at 0x88020000 uninitialized</div></div></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">** but core 2 report that &quot;coreid 0 is arch id 1&quot;, so it then starts to boot core 1. After this, system stalls.</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">Should each core&#39;s &quot;coreid to arch id&quot; map identical? Things get totally messed up here....</div><div class="gmail_extra">
<br><div class="gmail_quote">On Sun, Apr 22, 2012 at 6:31 PM, Laurențiu Dascălu <span dir="ltr">&lt;<a href="mailto:laurentiu.dascalu@epfl.ch" target="_blank">laurentiu.dascalu@epfl.ch</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>On 04/22/2012 03:18 AM, Shi Jinghao (史经浩) wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Monitor 1: booting scc core 0 as &#39;/scc/sbin/cpu&#39;<br>
kernel 1: Allocating RAM at 0x84020000 uninitialized<br>
kernel 1 PANIC! kernel assertion &quot;rck_get_coreid() == 0&quot; failed at<br>
../kernel/arch/scc/rck.c:876<br>
kernel 1: exception 3 (error code 0x0): breakpoint<br>
On behalf of: monitor<br>
Faulting instruction pointer (or following instruction): 0x8010a7bf (0x<br>
10a7bf in binary)<br>
</blockquote>
<br></div>
Hello,<br>
<br>
I don&#39;t have experience with Barrelfish, but after looking here[0], it seems that Barrelfish doesn&#39;t boot on another CPU than the first one (cpuid == 0):<br>
<br>
875    // XXX: Only works from core 0 for now<br>
876    assert(rck_get_coreid() == 0);<br>
<br>
I think that your boot processor is not core 0 and that&#39;s why it crashes. I guess that you can remove this assert and then see what happens (i.e. make the OS boot).<br>
<br>
[0] <a href="http://www.lingrok.org/xref/barrelfish/kernel/arch/scc/rck.c" target="_blank">http://www.lingrok.org/xref/<u></u>barrelfish/kernel/arch/scc/<u></u>rck.c</a><br>
<br>
Thanks,<span><font color="#888888"><br>
-- <br>
Laurențiu Dascălu<br>
<br>
</font></span></blockquote></div><br></div>