Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
46339731
Commit
46339731
authored
Aug 12, 2014
by
danh-arm
Browse files
Merge pull request #182 from soby-mathew/sm/stack_optimize
Reduce runtime stack size and add compilation macro for each BL stage
parents
e08098c2
aa442d34
Changes
3
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
46339731
...
...
@@ -300,7 +300,7 @@ $(eval PREREQUISITES := $(patsubst %.o,%.d,$(OBJ)))
$(OBJ)
:
$(2)
@
echo
" CC
$$
<"
$
$(Q)
$
$(CC)
$
$(CFLAGS)
-c
$$
<
-o
$$
@
$
$(Q)
$
$(CC)
$
$(CFLAGS)
-DIMAGE_BL
$(3)
-c
$$
<
-o
$$
@
$(PREREQUISITES)
:
$(2)
...
...
@@ -322,7 +322,7 @@ $(eval PREREQUISITES := $(patsubst %.o,%.d,$(OBJ)))
$(OBJ)
:
$(2)
@
echo
" AS
$$
<"
$
$(Q)
$
$(AS)
$
$(ASFLAGS)
-c
$$
<
-o
$$
@
$
$(Q)
$
$(AS)
$
$(ASFLAGS)
-DIMAGE_BL
$(3)
-c
$$
<
-o
$$
@
$(PREREQUISITES)
:
$(2)
@
echo
" DEPS
$$
@"
...
...
@@ -359,11 +359,11 @@ endef
define
MAKE_OBJS
$(eval C_OBJS
:
= $(filter %.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
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)))
endef
...
...
@@ -387,7 +387,7 @@ define MAKE_BL
$(
eval
DUMP :
=
$(BUILD_DIR)
/bl
$(1)
.dump
)
$(
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)))
$(BUILD_DIR)
:
...
...
docs/firmware-design.md
View file @
46339731
...
...
@@ -1226,6 +1226,11 @@ categories. Based upon the above, the code layout looks like this:
lib Yes Yes 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
boot stage have the extension
`.ld.S`
. These are processed by GCC to create the
linker scripts which have the extension
`.ld`
.
...
...
plat/fvp/include/platform_def.h
View file @
46339731
...
...
@@ -45,7 +45,17 @@
******************************************************************************/
/* 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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment