]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: armv7-a: Compile and tune for armv7-a instead of armv5
authorAdam Ford <aford173@gmail.com>
Sat, 4 Aug 2018 21:34:54 +0000 (16:34 -0500)
committerTom Rini <trini@konsulko.com>
Tue, 11 Sep 2018 00:48:16 +0000 (20:48 -0400)
arch/arm/Makefile references armv5 for backwards compatibility with
older compilers.  This patch removes those references to armv5,
since by now newer compilers are required which should have armv7
support enabled.

The Makefile also also has a list of options for mtune, but the
entry for CONFIG_CPU_V7A is empty, so this patch tunes the
CPU_V7A architecture to generic-armv7-a.

The following size changed apply to omap3_logic using GCC.

Stock
text data bss dec hex filename
50910 429 67580 118919 1d087 spl/u-boot-spl
540713 22700 327072 890485   d9675 u-boot

Without Armv5
text data bss dec hex filename
50916 429 67580 118925   1d08d spl/u-boot-spl
540719 22700 327064 890483   d9673 u-boot

mtune=generic-armv7-a
text data bss dec hex filename
50932 429 67580 118941   1d09d spl/u-boot-spl
540519 22700 327080 890299   d95bb u-boot

Signed-off-by: Adam Ford <aford173@gmail.com>
arch/arm/Makefile
arch/arm/mach-omap2/omap3/lowlevel_init.S
doc/README.omap3

index cac58bdc4dc7d8fa35889b1d41f75dd09cfb5f32..4e1b8cfa3525f914285c56cb46efa71e3dd97743 100644 (file)
@@ -15,7 +15,7 @@ arch-$(CONFIG_CPU_PXA)                =
 arch-$(CONFIG_CPU_ARM1136)     =-march=armv5
 arch-$(CONFIG_CPU_ARM1176)     =-march=armv5t
 arch-$(CONFIG_CPU_V7A)         =$(call cc-option, -march=armv7-a, \
-                                $(call cc-option, -march=armv7, -march=armv5))
+                                $(call cc-option, -march=armv7))
 arch-$(CONFIG_CPU_V7M)         =-march=armv7-m
 arch-$(CONFIG_CPU_V7R)         =-march=armv7-r
 arch-$(CONFIG_ARM64)           =-march=armv8-a
@@ -40,7 +40,7 @@ tune-$(CONFIG_CPU_SA1100)     =-mtune=strongarm1100
 tune-$(CONFIG_CPU_PXA)         =-mcpu=xscale
 tune-$(CONFIG_CPU_ARM1136)     =
 tune-$(CONFIG_CPU_ARM1176)     =
-tune-$(CONFIG_CPU_V7A)         =
+tune-$(CONFIG_CPU_V7A)         =-mtune=generic-armv7-a
 tune-$(CONFIG_CPU_V7R)         =
 tune-$(CONFIG_ARM64)           =
 
index e6e907d11f6c9a401b1acc3778e92710e4747b80..2a05b5e5212dfbd0b7525d5c9300340db9622bb0 100644 (file)
@@ -21,6 +21,7 @@
  *     R0 - Service ID
  *     R1 - paramer list
  */
+/* TODO: Re-evaluate the comment at the end regarding armv5 vs armv7 */
 ENTRY(do_omap3_emu_romcode_call)
        PUSH {r4-r12, lr} @ Save all registers from ROM code!
        MOV r12, r0     @ Copy the Secure Service ID in R12
index e09ac032c0f5675930fa90fe9f00a47a8c1112b9..00bcbdba9ac1d22981d2e88f4225afb0940eb327 100644 (file)
@@ -23,13 +23,6 @@ Currently the following boards are supported:
 
 * CompuLab Ltd. CM-T35 [8]
 
-Toolchain
-=========
-
-While ARM Cortex-A8 support ARM v7 instruction set (-march=armv7a) we compile
-with -march=armv5 to allow more compilers to work. For U-Boot code this has
-no performance impact.
-
 Build
 =====