Specify image entry in linker script

At present, the entry point for each BL image is specified via the
Makefiles and provided on the command line to the linker. When using a
link script the entry point should rather be specified via the ENTRY()
directive in the link script.

This patch updates linker scripts of all BL images to specify the entry
point using the ENTRY() directive. It also removes the --entry flag
passed to the linker through Makefile.

Fixes issue ARM-software/tf-issues#66

Change-Id: I1369493ebbacea31885b51185441f6b628cf8da0
This commit is contained in:
Jeenu Viswambharan 2014-03-11 11:06:45 +00:00 committed by Dan Handley
parent 52538b9b3e
commit 9f98aa1a7e
10 changed files with 9 additions and 9 deletions

View File

@ -345,8 +345,7 @@ $(ELF) : $(OBJS) $(LINKERFILE)
@echo 'const char build_message[] = "Built : "__TIME__", "__DATE__;' | \
$$(CC) $$(CFLAGS) -xc - -o $(BUILD_DIR)/build_message.o
$$(Q)$$(LD) -o $$@ $$(LDFLAGS) -Map=$(MAPFILE) --script $(LINKERFILE) \
--entry=$(BL$(1)_ENTRY_POINT) $(OBJS) \
$(BUILD_DIR)/build_message.o
$(BUILD_DIR)/build_message.o $(OBJS)
$(DUMP) : $(ELF)
@echo " OD $$@"

View File

@ -30,19 +30,19 @@
#include <arch.h>
.globl reset_handler
.globl bl1_entrypoint
.section .text, "ax"; .align 3
/* -----------------------------------------------------
* reset_handler() is the entry point into the trusted
* bl1_entrypoint() is the entry point into the trusted
* firmware code when a cpu is released from warm or
* cold reset.
* -----------------------------------------------------
*/
reset_handler: ; .type reset_handler, %function
bl1_entrypoint: ; .type bl1_entrypoint, %function
/* ---------------------------------------------
* Perform any processor specific actions upon
* reset e.g. cache, tlb invalidations etc.

View File

@ -32,6 +32,7 @@
OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT)
OUTPUT_ARCH(PLATFORM_LINKER_ARCH)
ENTRY(bl1_entrypoint)
MEMORY {
ROM (rx): ORIGIN = TZROM_BASE, LENGTH = TZROM_SIZE

View File

@ -49,5 +49,4 @@ BL1_SOURCES += bl1_arch_setup.c \
bl1_main.c \
cpu_helpers.S
BL1_ENTRY_POINT := reset_handler
BL1_LINKERFILE := bl1.ld.S

View File

@ -32,6 +32,7 @@
OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT)
OUTPUT_ARCH(PLATFORM_LINKER_ARCH)
ENTRY(bl2_entrypoint)
MEMORY {
RAM (rwx): ORIGIN = TZRAM_BASE, LENGTH = TZRAM_SIZE

View File

@ -46,7 +46,6 @@ BL2_SOURCES += bl2_entrypoint.S \
spinlock.S \
early_exceptions.S
BL2_ENTRY_POINT := bl2_entrypoint
BL2_LINKERFILE := bl2.ld.S
CFLAGS += $(DEFINES)

View File

@ -32,6 +32,7 @@
OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT)
OUTPUT_ARCH(PLATFORM_LINKER_ARCH)
ENTRY(bl31_entrypoint)
MEMORY {

View File

@ -69,5 +69,4 @@ BL31_SOURCES += bl31_arch_setup.c \
context_mgmt.c \
context.S
BL31_ENTRY_POINT := bl31_entrypoint
BL31_LINKERFILE := bl31.ld.S

View File

@ -32,6 +32,8 @@
OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT)
OUTPUT_ARCH(PLATFORM_LINKER_ARCH)
ENTRY(tsp_entrypoint)
MEMORY {
RAM (rwx): ORIGIN = TZDRAM_BASE, LENGTH = TZDRAM_SIZE

View File

@ -44,7 +44,6 @@ BL32_SOURCES += tsp_entrypoint.S \
spinlock.S \
early_exceptions.S
BL32_ENTRY_POINT := tsp_entrypoint
BL32_LINKERFILE := tsp.ld.S
vpath %.ld.S ${BL32_ROOT}