Commit 9f98aa1a authored by Jeenu Viswambharan's avatar Jeenu Viswambharan Committed by Dan Handley
Browse files

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
parent 52538b9b
......@@ -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 $$@"
......
......@@ -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.
......
......@@ -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
......
......@@ -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
......@@ -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
......
......@@ -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)
......@@ -32,6 +32,7 @@
OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT)
OUTPUT_ARCH(PLATFORM_LINKER_ARCH)
ENTRY(bl31_entrypoint)
MEMORY {
......
......@@ -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
......@@ -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
......
......@@ -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}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment