Commit Graph

9 Commits

Author SHA1 Message Date
Alex Coplan via Newlib 63a901705e 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.
2020-09-30 11:08:46 +01:00
Tamar Christina 61ddc7a436 Fix crt0 overwriting.
On AArch64 we currently always link in crt0 regardless of if another
one is being provided by something else, like rdimon.a. This was never
an issue before as nosys was not supported on AArch64.

This updates the specs to supply a different crt0 when a semihosting
call is required.

Signed-off-by: Tamar Christina <tamar.christina@arm.com>
2017-08-09 14:50:13 +02:00
Tamar Christina cd26662dc5 Previous patch to support nosys.specs accidentally broke validation specs because ARM_RDI_MONITOR was never passed to the build rule for crt0.
This fixed the compile for nosys and validation specs
but nosys won't run because of existing limitations to
aarch64's syscalls.c, it requires semihosting to get
commandline arguments and heap info without having a
fallback method as ARM does.

Signed-off-by: Tamar Christina <tamar.christina@arm.com>
2017-07-21 10:41:37 +02:00
Tamar Christina bfa3bbcf33 Adds the needed build system changes in order to compile and create the new libraries for Semihosting v2.
This uses the new recursive build target in multi-build.in

For AArch64 no new spec files are needed but the makefiles
are modified to keep them in sync with the ARM ones.

Signed-off-by: Tamar Christina <tamar.christina@arm.com>
2017-07-05 14:41:27 +02:00
Richard Earnshaw 75d1027ccd * aarch64/Makefile.in (RDIMON_SCRIPTS): Rule to build in-tree copies
of scripts.
	(all): Build the in-tree copies of the scripts.
	(clean): Also delete the in-tree copies of the scripts.
2014-02-03 10:30:34 +00:00
Marcus Shawcroft 7c62befe16 [AArch64] Provide ftruncate() and truncate() stubs. 2013-11-18 10:04:56 +00:00
Marcus Shawcroft 289a9a6d9b [AArch64] Honour CFLAGS.
2013-04-19  Yufeng Zhang  <yufeng.zhang@arm.com>

	* aarch64/Makefile.in (rdimon-crt0.o, rdimon-trap.o)
	(rdimon-_exit.o, rdimon-_kill.o, rdimon-syscalls.o)
	(rdimon-libcfunc.o): Add $(CFLAGS) to the compiler command line.
	* aarch64/cpu-init/Makefile.in (${CPU_INIT_OBJS}): Add $(CFLAGS)
	to the compiler command line.
2013-04-19 14:24:45 +00:00
Marcus Shawcroft 085461c3ec 2013-01-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
* aarch64/Machine.in (RDIMON_SCRIPTS):
        Add aem-ve.specs and aem-validation.specs.
        * aarch64/elf-aem-validation.specs: New file.
        * aarch64/elf-aem-ve.specs: New file.
2013-01-18 15:52:32 +00:00
Jeff Johnston cdf81c0c4c 2012-09-26 Ian Bolton <ian.bolton@arm.com>
Jim MacArthur  <jim.macarthur@arm.com>
        Marcus Shawcroft  <marcus.shawcroft@arm.com>
        Nigel Stephens  <nigel.stephens@arm.com>
        Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
        Richard Earnshaw  <rearnsha@arm.com>
        Sofiane Naci  <sofiane.naci@arm.com>
        Tejas Belagod  <tejas.belagod@arm.com>
        Yufeng Zhang  <yufeng.zhang@arm.com>

        * aarch64/Makefile.in: New file.
        * aarch64/_exit.c: New file.
        * aarch64/_kill.c: New file.
        * aarch64/aclocal.m4: Generated.
        * aarch64/configure: Generated.
        * aarch64/configure.in: New file.
        * aarch64/cpu-init/Makefile.in: New file.
        * aarch64/cpu-init/rdimon-aem-el3.S: New file.
        * aarch64/crt0.S: New file.
        * aarch64/elf-rdimon.specs: New file.
        * aarch64/libcfunc.c: New file.
        * aarch64/svc.h: New file.
        * aarch64/syscalls.c: New file.
        * configure.in: Add AArch64.
        * configure: Re-generated.
2012-09-26 20:11:54 +00:00