<div class="gmail_extra">I removed the assert as you said, but it didn'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 '/scc/sbin/cpu'</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 '/scc/sbin/cpu'</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's spawnd report that "coreid 0 is arch id 2", so when it says "booting scc core 0 as ...", it'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 '/scc/sbin/cpu'</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 "coreid 0 is arch id 1", 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's "coreid to arch id" 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"><<a href="mailto:laurentiu.dascalu@epfl.ch" target="_blank">laurentiu.dascalu@epfl.ch</a>></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 '/scc/sbin/cpu'<br>
kernel 1: Allocating RAM at 0x84020000 uninitialized<br>
kernel 1 PANIC! kernel assertion "rck_get_coreid() == 0" 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't have experience with Barrelfish, but after looking here[0], it seems that Barrelfish doesn'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'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>