mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 17:08:52 +09:00
![Igor Guryanov](/assets/img/avatar_default.png)
Even though existing implementation works fine in preparation to submission of ARCv2 architecture we need this change. In case of ARCv2 interrupt vector table consists of just addresses of corresponding handlers. And if those addresses will be in .text section then assembler will encode them as everything in .text section as middle-endian and then on real execution CPU will read swapped addresses and will jump into the wild. Once introduced new section is situated so .text section remains the first which allows us to use common linker option for linking everything to a specified CONFIG_SYS_TEXT_BASE. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Igor Guryanov <guryanov@synopsys.com>
22 lines
550 B
Makefile
22 lines
550 B
Makefile
#
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
|
|
libs-y += arch/arc/cpu/$(CPU)/
|
|
libs-y += arch/arc/lib/
|
|
|
|
# MetaWare debugger doesn't support PIE (position-independent executable)
|
|
# so the only way to load U-Boot in MDB is to fake it by:
|
|
# 1. Reset PIE flag in ELF header
|
|
# 2. Strip all debug information from elf
|
|
ifdef CONFIG_SYS_LITTLE_ENDIAN
|
|
EXEC_TYPE_OFFSET=16
|
|
else
|
|
EXEC_TYPE_OFFSET=17
|
|
endif
|
|
|
|
mdbtrick: u-boot
|
|
$(Q)printf '\x02' | dd of=u-boot bs=1 seek=$(EXEC_TYPE_OFFSET) count=1 \
|
|
conv=notrunc &> /dev/null
|
|
$(Q)$(CROSS_COMPILE)strip -g u-boot
|