Hi Tim,<div><br></div><div>Thanks for your advice.</div><div><br></div><div>I&#39;ll have a closer look at the way gem5 boots the provided sample ARM fullsystem files. As for your second point, that&#39;s one purpose of the thesis to make Barrelfish support the ARMv7 gem5 simulates. I&#39;ll clearly first target a single core system, before moving on to more complex setups.</div>
<div><br></div><div>Best,</div><div><br></div><div>Samuel<br><br><div class="gmail_quote">
On Mon, Feb 27, 2012 at 2:55 PM, Tim Harris (RESEARCH) <span dir="ltr">&lt;<a href="mailto:tharris@microsoft.com" target="_blank">tharris@microsoft.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">







<div lang="EN-GB" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Hi Samuel,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">I remember talking about this with Matt Horsnell from ARM some time ago, though I’m not sure if they’ve had a chance to look at BF-on-ARM yet.<u></u><u></u></span></p>


<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">The “molly” tool is used to wrap up the kernel and modules into a single bootable image.  I wrote it because x64 gem5 was quite tailored to Linux, and expected
 to load a single kernel passed on the simulator’s command line.  I think that, for Linux, that kernel would proceed to load modules from a hard disk attached to the simulated machine. 
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">The two initial things I’d suggest investigating are:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p><u></u><span style="font-size:11.0pt;font-family:Symbol;color:#1f497d"><span>·<span style="font:7.0pt &quot;Times New Roman&quot;">        
</span></span></span><u></u><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Checking what methods gem5 supports for loading kernels and modules on ARM.  E.g., when booting Linux, then where do things come from?<br>


<br>
<u></u><u></u></span></p>
<p><u></u><span style="font-size:11.0pt;font-family:Symbol;color:#1f497d"><span>·<span style="font:7.0pt &quot;Times New Roman&quot;">        
</span></span></span><u></u><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Checking that the kinds of ARM system that gem5 can model fit with the kinds of ARM system supported by BF.<u></u><u></u></span></p>


<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">It may also be worth checking whether QEMU supports the same kind of ARM system that you wish to model.  If so, then you could start off using QEMU (for a faster
 debugging cycle), and then switch over to gem5 later.  Also, I’d suggest getting a simple non-heterogenous system booting and running first, before starting on the more complex big.LITTLE setting.<u></u><u></u></span></p>


<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Tim<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Samuel Hitz [mailto:<a href="mailto:samuel.hitz@gmail.com" target="_blank">samuel.hitz@gmail.com</a>]
<br>
<b>Sent:</b> 27 February 2012 13:01<br>
<b>To:</b> Tim Harris (RESEARCH)<br>
<b>Cc:</b> <a href="mailto:barrelfish-users@lists.inf.ethz.ch" target="_blank">barrelfish-users@lists.inf.ethz.ch</a><br>
<b>Subject:</b> Fwd: building an arm kernel of barrelfish for gem5<u></u><u></u></span></p><div><div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">CCing the public barrelfish list.<u></u><u></u></p>
<div>
<p class="MsoNormal">---------- Forwarded message ----------<br>
From: <b>Samuel Hitz</b> &lt;<a href="mailto:samuel.hitz@gmail.com" target="_blank">samuel.hitz@gmail.com</a>&gt;<br>
Date: Mon, Feb 27, 2012 at 9:21 AM<br>
Subject: building an arm kernel of barrelfish for gem5<br>
To: <a href="mailto:tharris@microsoft.com" target="_blank">tharris@microsoft.com</a><br>
<br>
<br>
Hi Tim,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I&#39;m a CS student at ETH Zurich and for my Bachelor Thesis, I try to port Barrelfish to a heterogeneous ARM multicore system (big.LITTLE) using the gem5 simulator. Now the first step is to build a Barrelfish kernel suitable for the use with
 gem5. I saw on the wiki, that you did this already for x86. Now my question is, what must be modified in the build process to get an ARM kernel for gem5?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">I saw you&#39;re using &#39;molly&#39; in order to build the kernel. How is this applicable to build an ARM kernel for gem5? What do I have to rewrite? Or is it just a matter of building an ARM Barrelfish tree and run &#39;make m5_kernel&#39;?<u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Thank you for your help.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Best,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Samuel<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div></div></div>
</div>

</blockquote></div><br></div>