Re: [PATCH] libgloss/aarch64: Add support for Armv8-R AArch64

"Richard Earnshaw \(lists\) via Newlib" <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On 29/09/2020 17:27, Alex Coplan via Newlib wrote:
> Hi Richard,
> 
> On 29/09/2020 15:06, Richard Earnshaw (lists) wrote:
>> On 18/09/2020 15:43, Alex Coplan wrote:
>>> Hello,
>>>
>>> This patch adds support for Armv8-R AArch64. We update the AArch64 CPU
>>> boot code to work on Armv8-R if __ARM_ARCH_PROFILE is set to 'R'.
>>> Armv8-R AArch64 has no EL3, so we don't set vbar_el3, and adjust the
>>> code to set up the MPU for Armv8-R.
>>>
>>> We also add a specs file for use with Armv8-R AArch64 models.
>>>
>>> Testing:
>>>  * Ran AArch64 GCC testsuite using --with-arch=armv8-r together with the
>>>    new specs file and boot code in an Armv8-R AArch64 model.
>>>  * Ran newlib testsuite, no regressions.
>>>
>>> OK for master?
>>>
>>> Thanks,
>>> Alex
>>>
>>> ---
>>>
>>> 2020-09-18  Alex Coplan  <[email protected]>
>>>
>>> libgloss/ChangeLog:
>>>
>>> 	* aarch64/Makefile.in: Install new specs file.
>>> 	* aarch64/cpu-init/Makefile.in: Also build boot code for Armv8-R.
>>> 	* aarch64/cpu-init/rdimon-aem-el3.S: Add support for Armv8-R.
>>> 	* aarch64/elf-aem-v8-r.specs: New.
>>>
>>
>> The main problem I see with this is that it assumes that the compiler
>> being used is *not* configured for a default CPU architecture of
>> ARMv8-r.  If it is, then the normal rdimon-aem-el3.o file will in fact
>> become the same as the v8-r version, which is not really what we want.
> 
> Good catch. Thanks for the review.
> 
>>
>> Perhaps, rather than hacking around the __ARM_ARCH_PROFILE setting you
>> should just set things up to build the file twice, but with a different
>> conventional pre-define set each time.
>>
>> R.
> 
> Sounds sensible. Is the revised patch (attached) OK?
> 
> Thanks,
> Alex
> 

Pushed.  I've used the following as the commit message (note that newlib
doesn't use ChangeLog files anymore).

    libgloss: aarch64: Add support for Armv8-R AArch64

    This patch adds support for Armv8-R AArch64.

    Armv8-R AArch64 has no EL3, so we don't set vbar_el3, and adjust the
    code to set up the MPU for Armv8-R.  So build a different flavour of the
    startup code to support that.

    We also add a specs file that uses this alternative startup code which
    can be used with Armv8-R AArch64 models.

R.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.