mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 19:14:28 +00:00
Merge pull request #182 from soby-mathew/sm/stack_optimize
Reduce runtime stack size and add compilation macro for each BL stage
This commit is contained in:
commit
4633973147
3 changed files with 21 additions and 6 deletions
10
Makefile
10
Makefile
|
@ -300,7 +300,7 @@ $(eval PREREQUISITES := $(patsubst %.o,%.d,$(OBJ)))
|
||||||
|
|
||||||
$(OBJ) : $(2)
|
$(OBJ) : $(2)
|
||||||
@echo " CC $$<"
|
@echo " CC $$<"
|
||||||
$$(Q)$$(CC) $$(CFLAGS) -c $$< -o $$@
|
$$(Q)$$(CC) $$(CFLAGS) -DIMAGE_BL$(3) -c $$< -o $$@
|
||||||
|
|
||||||
|
|
||||||
$(PREREQUISITES) : $(2)
|
$(PREREQUISITES) : $(2)
|
||||||
|
@ -322,7 +322,7 @@ $(eval PREREQUISITES := $(patsubst %.o,%.d,$(OBJ)))
|
||||||
|
|
||||||
$(OBJ) : $(2)
|
$(OBJ) : $(2)
|
||||||
@echo " AS $$<"
|
@echo " AS $$<"
|
||||||
$$(Q)$$(AS) $$(ASFLAGS) -c $$< -o $$@
|
$$(Q)$$(AS) $$(ASFLAGS) -DIMAGE_BL$(3) -c $$< -o $$@
|
||||||
|
|
||||||
$(PREREQUISITES) : $(2)
|
$(PREREQUISITES) : $(2)
|
||||||
@echo " DEPS $$@"
|
@echo " DEPS $$@"
|
||||||
|
@ -359,11 +359,11 @@ endef
|
||||||
define MAKE_OBJS
|
define MAKE_OBJS
|
||||||
$(eval C_OBJS := $(filter %.c,$(2)))
|
$(eval C_OBJS := $(filter %.c,$(2)))
|
||||||
$(eval REMAIN := $(filter-out %.c,$(2)))
|
$(eval REMAIN := $(filter-out %.c,$(2)))
|
||||||
$(eval $(foreach obj,$(C_OBJS),$(call MAKE_C,$(1),$(obj))))
|
$(eval $(foreach obj,$(C_OBJS),$(call MAKE_C,$(1),$(obj),$(3))))
|
||||||
|
|
||||||
$(eval S_OBJS := $(filter %.S,$(REMAIN)))
|
$(eval S_OBJS := $(filter %.S,$(REMAIN)))
|
||||||
$(eval REMAIN := $(filter-out %.S,$(REMAIN)))
|
$(eval REMAIN := $(filter-out %.S,$(REMAIN)))
|
||||||
$(eval $(foreach obj,$(S_OBJS),$(call MAKE_S,$(1),$(obj))))
|
$(eval $(foreach obj,$(S_OBJS),$(call MAKE_S,$(1),$(obj),$(3))))
|
||||||
|
|
||||||
$(and $(REMAIN),$(error Unexpected source files present: $(REMAIN)))
|
$(and $(REMAIN),$(error Unexpected source files present: $(REMAIN)))
|
||||||
endef
|
endef
|
||||||
|
@ -387,7 +387,7 @@ define MAKE_BL
|
||||||
$(eval DUMP := $(BUILD_DIR)/bl$(1).dump)
|
$(eval DUMP := $(BUILD_DIR)/bl$(1).dump)
|
||||||
$(eval BIN := $(BUILD_PLAT)/bl$(1).bin)
|
$(eval BIN := $(BUILD_PLAT)/bl$(1).bin)
|
||||||
|
|
||||||
$(eval $(call MAKE_OBJS,$(BUILD_DIR),$(SOURCES)))
|
$(eval $(call MAKE_OBJS,$(BUILD_DIR),$(SOURCES),$(1)))
|
||||||
$(eval $(call MAKE_LD,$(LINKERFILE),$(BL$(1)_LINKERFILE)))
|
$(eval $(call MAKE_LD,$(LINKERFILE),$(BL$(1)_LINKERFILE)))
|
||||||
|
|
||||||
$(BUILD_DIR) :
|
$(BUILD_DIR) :
|
||||||
|
|
|
@ -1226,6 +1226,11 @@ categories. Based upon the above, the code layout looks like this:
|
||||||
lib Yes Yes Yes
|
lib Yes Yes Yes
|
||||||
services No No Yes
|
services No No Yes
|
||||||
|
|
||||||
|
The build system provides a non configurable build option IMAGE_BLx for each
|
||||||
|
boot loader stage (where x = BL stage). e.g. for BL1 , IMAGE_BL1 will be
|
||||||
|
defined by the build system. This enables the Trusted Firmware to compile
|
||||||
|
certain code only for specific boot loader stages
|
||||||
|
|
||||||
All assembler files have the `.S` extension. The linker source files for each
|
All assembler files have the `.S` extension. The linker source files for each
|
||||||
boot stage have the extension `.ld.S`. These are processed by GCC to create the
|
boot stage have the extension `.ld.S`. These are processed by GCC to create the
|
||||||
linker scripts which have the extension `.ld`.
|
linker scripts which have the extension `.ld`.
|
||||||
|
|
|
@ -45,7 +45,17 @@
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
/* Size of cacheable stacks */
|
/* Size of cacheable stacks */
|
||||||
#define PLATFORM_STACK_SIZE 0x800
|
#if DEBUG_XLAT_TABLE
|
||||||
|
#define PLATFORM_STACK_SIZE 0x800
|
||||||
|
#elif IMAGE_BL1
|
||||||
|
#define PLATFORM_STACK_SIZE 0x440
|
||||||
|
#elif IMAGE_BL2
|
||||||
|
#define PLATFORM_STACK_SIZE 0x400
|
||||||
|
#elif IMAGE_BL31
|
||||||
|
#define PLATFORM_STACK_SIZE 0x400
|
||||||
|
#elif IMAGE_BL32
|
||||||
|
#define PLATFORM_STACK_SIZE 0x440
|
||||||
|
#endif
|
||||||
|
|
||||||
#define FIRMWARE_WELCOME_STR "Booting trusted firmware boot loader stage 1\n\r"
|
#define FIRMWARE_WELCOME_STR "Booting trusted firmware boot loader stage 1\n\r"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue