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