]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
armv7: Mark the default lowlevel_init function as weak
authorTom Rini <trini@konsulko.com>
Tue, 16 May 2017 18:46:34 +0000 (14:46 -0400)
committerTom Rini <trini@konsulko.com>
Mon, 5 Jun 2017 15:02:23 +0000 (11:02 -0400)
Rather than have a long and if check in the Makefile, mark the default
lowlevel_init function as weak (as we do on armv8) so that SoCs can
override it if needed, and it will still be discarded if unused.
Provide a weak s_init as well to allow for this to link and be
discarded.

Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/cpu/armv7/Makefile
arch/arm/cpu/armv7/lowlevel_init.S

index 5fac252c0e008a497f06627a3c40903bb7b0ecb1..45dd3caec6b316b801afd6810e277b1b7932b1d4 100644 (file)
@@ -12,11 +12,9 @@ obj-y        += cache_v7.o cache_v7_asm.o
 obj-y  += cpu.o cp15.o
 obj-y  += syslib.o
 
-ifneq ($(CONFIG_AM43XX)$(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TEGRA)$(CONFIG_MX6)$(CONFIG_MX7)$(CONFIG_TI81XX)$(CONFIG_AT91FAMILY)$(CONFIG_ARCH_SUNXI)$(CONFIG_ARCH_SOCFPGA)$(CONFIG_ARCH_MX7ULP)$(CONFIG_ARCH_LS1021A),)
 ifneq ($(CONFIG_SKIP_LOWLEVEL_INIT),y)
 obj-y  += lowlevel_init.o
 endif
-endif
 
 obj-$(CONFIG_ARM_SMCCC)                += smccc-call.o
 obj-$(CONFIG_ARMV7_NONSEC)     += nonsec_virt.o virt-v7.o virt-dt.o
index 658934d664a4ab5827169da13aa2728a395bc171..64f105864f874080b669a4dd96f5837c01c3a407 100644 (file)
 #include <config.h>
 #include <linux/linkage.h>
 
-ENTRY(lowlevel_init)
+.pushsection .text.s_init, "ax"
+WEAK(s_init)
+       bx      lr
+ENDPROC(s_init)
+.popsection
+
+.pushsection .text.lowlevel_init, "ax"
+WEAK(lowlevel_init)
        /*
         * Setup a temporary stack. Global data is not available yet.
         */
@@ -61,3 +68,4 @@ ENTRY(lowlevel_init)
        bl      s_init
        pop     {ip, pc}
 ENDPROC(lowlevel_init)
+.popsection