Hi Tim,<div><br></div><div>Thanks for your advice.</div><div><br></div><div>I'll have a closer look at the way gem5 boots the provided sample ARM fullsystem files. As for your second point, that's one purpose of the thesis to make Barrelfish support the ARMv7 gem5 simulates. I'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"><<a href="mailto:tharris@microsoft.com" target="_blank">tharris@microsoft.com</a>></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:"Calibri","sans-serif";color:#1f497d">Hi Samuel,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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:"Calibri","sans-serif";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 "Times New Roman"">
</span></span></span><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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 "Times New Roman"">
</span></span></span><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Tim<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> 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> <<a href="mailto:samuel.hitz@gmail.com" target="_blank">samuel.hitz@gmail.com</a>><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'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're using 'molly' 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 'make m5_kernel'?<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>