<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 1, 2019 at 7:54 AM Jeff Kubascik <<a href="mailto:Jeff.Kubascik@dornerworks.com">Jeff.Kubascik@dornerworks.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">On 3/28/2019 8:00 AM, Sebastian Huber wrote:<br>
> Hello Jeff,<br>
> <br>
> On 27/03/2019 19:11, Jeff Kubascik wrote:<br>
>> Hello,<br>
>><br>
>> I am interested in porting RTEMS to run as a Xen guest on our distro for the<br>
>> Xilinx Zynq UltraScale+ MPSoC. The MPSoC has an ARM Cortex-A53 processor, which<br>
>> is based on the ARMv8 architecture.<br>
>><br>
>> I have noticed that RTEMS already runs on a few Zynq 7000 boards. However, those<br>
>> are using the Cortex-A9 processor, which is based on the ARMv7 architecture.<br>
>> Looking at the source code, I didn't see any ARMv8 cpu code.<br>
>><br>
>> I was curious if there has been any work done to port RTEMS to an ARMv8 based<br>
>> platform?<br>
> <br>
> AArch64 is a completely new architecture port. I think nobody is working<br>
> on that. We may work on AArch32 support for the Zynq UltraScale+ this year:<br>
> <br>
> <a href="http://devel.rtems.org/ticket/3682" rel="noreferrer" target="_blank">http://devel.rtems.org/ticket/3682</a><br>
> <br>
> --<br>
> Sebastian Huber, embedded brains GmbH<br>
> <br>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
> Phone   : +49 89 189 47 41-16<br>
> Fax     : +49 89 189 47 41-09<br>
> E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
> PGP     : Public key available on request.<br>
> <br>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
> <br>
<br>
Sebastian,<br>
<br>
We were able to hack up the xilinx-zynq BSP to get it running on the Ultra96 in<br>
AArch32 mode. Surprisingly, it didn't require too many code changes. Our key<br>
findings were<br>
<br>
- Set the CP15BEN bit in the SCTLR register to enable legacy memory barrier<br>
system instructions. This is used in the arm-cp15 cache operations.<br>
- Clear the TRE bit in the SCTLR register to disable TEX remap. This was causing<br>
the page table attributes to show up as strongly ordered, resulting in an<br>
unaligned memory exceptions in the newlib memcpy.<br>
- Update peripheral addresses, IRQs, clock rates to match the MPSoC.<br>
- Update the MMU peripheral region mappings.<br>
- Change the system clock source to clock-generic-timer.<br>
- Change the cache implementation to cache-cp15.<br>
<br>
With the above changes, we are able to run all the applications under the<br>
testsuites/samples directory on the Ultra96 via JTAG boot.<br>
<br>
Over the weekend, I started putting together a new xilinx-zynqmp BSP layer to<br>
support the Xilinx UltraScale+ MPSoC platform, including the Ultra96 development<br>
board. If the RTEMS community is interested in these patches, we are looking to<br>
submit them later in the week.<br></blockquote><div><br></div><div>Cool! Sounds of interest.</div><div><br></div><div>This sounds like it would be a variant on the existing xilinx 32-bit BSP. Right?</div><div>Most of the code is unchanged but some conditionals.</div><div><br></div><div>Were there changes outside the BSP?</div><div><br></div><div>If strictly BSP, then it needs a name and then could be a variant of the existing </div><div>BSP. That basically boils down to a config/*.cfg file with the BSP variant name, </div><div>some mods to <a href="http://configure.ac">configure.ac</a> to give you an automake variable to switch the timer </div><div>to clock-generic-time in the Makefile.am, and something to trip the various ifdef's</div><div>on. </div><div><br></div><div>Then some instructions in the Users Guide on how you ran it.</div><div><br></div><div>Of course, that's if I am understanding the magnitude of the change.</div><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">
<br>
-Jeff Kubascik<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div>