<div dir="ltr">Hi,<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">Do you have any executables from anywhere that run on the simulator in the configuration you intend for RTEMS to use?</blockquote><div><br></div><div>Sorry, I forgot to answer your question. Actually, my goal is just to make Rtems up and run in the Gem5 simulator. And then I will study the task preemption part of Rtems, try to record the preemption overhead time, and the task execution order. So, any configuration is ok, as long as it is Arm or Aarch64 arch, Cortex-A series.</div><div><br></div><div>I tried to wrap my head around the fvp BSP, since it is the closest one to the VExpress device I try to make. The bspcortexr52.yml config file looks like it does nothing specific to the BSP, only includes (common for ARM?) dependencies, doesn't it?</div><div><br></div><div>Best regards,</div><div>Duc Anh</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Vào Th 4, 21 thg 4, 2021 vào lúc 15:25 Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> đã viết:<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 dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 21, 2021, 5:32 AM Đức Anh <<a href="mailto:dauto98@gmail.com" target="_blank">dauto98@gmail.com</a>> wrote:<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 dir="ltr">Hi Gedare,<div><br></div><div>For the last few days, I am reading the rtems source code, trying to understand the build system, how a bsp is built. I just has a few questions:</div><div>- it seems like the <a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a> and Makefile.am for each BSP (c/src/lib/libbsp/) is separate from the BSP source code (bsps/). However not all BSP has <a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a> and Makefile.am, for example, the FVP BSP you said. What is the difference here?</div><div>- my speculation right now is to create a new folder in c/src/lib/libbsp/ for the VExpress device, put the <a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a> and Makefile.am in and put the source file in bsps/ ?</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">First, that's the old build system and separate so it will be easier to remove. It reflects an older organisation of the source tree.  The new build system is waf and under spec/ at the top of the tree. Please use that for new work.</div><div dir="auto"><br></div><div dir="auto">Next, the BSPs have families and variants within a family. The directory is the family and there are configuration files to build variants within the family. The Zynq bsp family has a handful of variants. Run rtems-bsps from the top of the tree for a list.</div><div dir="auto"><br></div><div dir="auto">Do you have any executables from anywhere that run on the simulator in the configuration you intend for RTEMS to use?</div><div dir="auto"><br></div><div dir="auto">Focus on uniprocessor and getting hello to run first. But the devel@ list is a better resource.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Best regards,</div><div>Duc Anh</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Vào Th 4, 14 thg 4, 2021 vào lúc 12:53 Gedare Bloom <<a href="mailto:gedare@rtems.org" rel="noreferrer" target="_blank">gedare@rtems.org</a>> đã viết:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Duc,<br>
<br>
On Tue, Apr 13, 2021 at 8:57 AM Đức Anh <<a href="mailto:dauto98@gmail.com" rel="noreferrer" target="_blank">dauto98@gmail.com</a>> wrote:<br>
><br>
> Dear all,<br>
><br>
> I want to develop a BSP for ARM Versatile Express platform. My final purpose is to run Gem5 simulation using RTEMS as the kernel. Now Gem5 only model Versatile Express device, and I can see RTEMS does not have a BSP for it yet.<br>
><br>
> More specifically, the machine type modelled in Gem5 is:<br>
> - Arm Motherboard Express uATX (V2M-P1)<br>
> - The memory map is based on Versatile Express RS1, with RS2 extension<br>
> - Arm CoreTile Express A15x2 (V2P-CA15) as daughterboard. It contains Cortex-A15 CPU.<br>
><br>
> In the past, the Realview-pbx-a9 BSP used to run successfully in Gem5, when they still supported realview machine type. It is not the case now. So I guess I can reuse the CPU related code in realview-pbx-a9 and just write new code for the BSP ?<br>
><br>
Well, the realview pbx a9 is a cortex-a9 device and not an a15. Plus,<br>
I guess the vexpress will have some differences in how it deals with<br>
interrupts and maybe messaging given its tiled architecture? I don't<br>
know too much about it. But, your best bet is probably to try to start<br>
with the FVP bsp, which was only added about 5 months ago and supports<br>
just a Cortex-R52 right now, but probably adding the vexpress RS1<br>
memory map with the V2P-CA15 is the right way for you to go.<br>
<br>
> I am new to RTEMS so I need some help. Which direction should I head for?<br>
><br>
Join the <a href="mailto:devel@rtems.org" rel="noreferrer" target="_blank">devel@rtems.org</a> mailing list for technical email discussions<br>
regarding hacking within RTEMS proper. (The "users" mailing list is a<br>
bit more for people trying to develop/maintain their application<br>
software using RTEMS mostly *fingers crossed* out of the box.) I would<br>
strongly recommend that you get started by following through our<br>
tutorials to get a feel for the tools and development environment:<br>
<a href="https://docs.rtems.org/branches/master/user/start/index.html" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/branches/master/user/start/index.html</a><br>
Read carefully and don't skip steps, or you probably miss something<br>
important that you won't figure out until a couple hours later and<br>
have to redo everything. Since you plan new development, you should<br>
use the `master` branch of RTEMS with the `master` branch of the<br>
rtems-source-builder to build your cross-compiler toolchain. This is<br>
referred to as version '6' although it is not yet a released version.<br>
<br>
Right now we have a lot of new faces on devel@ because of the Google<br>
Summer of Code, so you'll find a lot of other people with questions<br>
and answers about how to get started etc. I would recommend you also<br>
do our GSoC Getting Started part of the tutorial so that you can get<br>
some comfort with the developer workflow and how to make changes in<br>
RTEMS and see them in the recompiled version.<br>
<br>
Finally, for new BSP development, I guess you can start by having a<br>
look at <a href="https://docs.rtems.org/branches/master/bsp-howto/index.html" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/branches/master/bsp-howto/index.html</a><br>
This is an aging document, but still a good resource to understand the<br>
basic ideas about BSP implementation.<br>
<br>
-Gedare<br>
<br>
> Best regards,<br>
> Duc Anh<br>
> _______________________________________________<br>
> users mailing list<br>
> <a href="mailto:users@rtems.org" rel="noreferrer" target="_blank">users@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a><br>
</blockquote></div>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" rel="noreferrer" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div></div>
</blockquote></div>