From 6baf85b3e01a6c8295a53798bd92e26d517a4196 Mon Sep 17 00:00:00 2001 From: Sathees Balya <sathees.balya@arm.com> Date: Thu, 18 Oct 2018 19:14:21 +0100 Subject: [PATCH] romlib: Allow patching of romlib functions This change allows patching of functions in the romlib. This can be done by adding "patch" at the end of the jump table entry for the function that needs to be patched in the file jmptbl.i. Functions patched in the jump table list will be built as part of the BL image and the romlib version will not be used Change-Id: Iefb200cb86e2a4b61ad3ee6180d3ecc39bad537f Signed-off-by: Sathees Balya <sathees.balya@arm.com> --- lib/romlib/genwrappers.sh | 2 +- lib/romlib/jmptbl.i | 6 +++++- make_helpers/build_macros.mk | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/romlib/genwrappers.sh b/lib/romlib/genwrappers.sh index bcf670b98..48ee5a43b 100755 --- a/lib/romlib/genwrappers.sh +++ b/lib/romlib/genwrappers.sh @@ -31,7 +31,7 @@ do done awk '{sub(/[:blank:]*#.*/,"")} -!/^$/ {print $1*4, $2, $3}' "$@" | +!/^$/ && !/\\tpatch$/ {print $1*4, $2, $3}' "$@" | while read idx lib sym do file=$build/${lib}_$sym diff --git a/lib/romlib/jmptbl.i b/lib/romlib/jmptbl.i index 338cd8a71..5e33e0e1b 100644 --- a/lib/romlib/jmptbl.i +++ b/lib/romlib/jmptbl.i @@ -3,6 +3,10 @@ # # SPDX-License-Identifier: BSD-3-Clause # +# Format: +# index lib function [patch] +# Add "patch" at the end of the line to patch a function. For example: +# 14 mbedtls mbedtls_memory_buffer_alloc_init patch 0 rom rom_lib_init 1 fdt fdt_getprop_namelen @@ -32,4 +36,4 @@ 25 mbedtls mbedtls_x509_get_sig_alg 26 mbedtls mbedtls_md_info_from_type 27 c exit -28 c atexit +28 c atexit \ No newline at end of file diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk index e186fc100..d60a5bf0e 100644 --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -338,7 +338,7 @@ LDPATHS = -L${LIB_DIR} LDLIBS += -l$(1) ifeq ($(USE_ROMLIB),1) -LDLIBS := -lwrappers -lc +LIBWRAPPER = -lwrappers endif all: ${LIB_DIR}/lib$(1).a @@ -402,7 +402,7 @@ else endif $$(Q)$$(LD) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) -Map=$(MAPFILE) \ --script $(LINKERFILE) $(BUILD_DIR)/build_message.o \ - $(OBJS) $(LDPATHS) $(LDLIBS) $(BL_LIBS) + $(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) $(DUMP): $(ELF) $${ECHO} " OD $$@" -- GitLab