mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 18:09:03 +09:00
![Andre Przywara](/assets/img/avatar_default.png)
Even though the exception vector table is a fundamental part of the ARM architecture, U-Boot mostly does not make real use of it, except when crash dumping. But having it in takes up quite some space, partly due to the architectural alignment requirement of 2KB. Since we don't take special care of that, the compiler adds a more or less random amount of padding space, which increases the image size quite a bit, especially for the SPL. On a typical Allwinner build this is around 1.5KB of padding, plus 1KB for the vector table (mostly padding space again), then some extra code to do the actual handling. This amounts to almost 10% of the maximum image size, which is quite a lot for a pure debugging feature. Add a Kconfig symbol to allow the exception vector table to be left out of the build for the SPL. For now this is "default y" for everyone, but specific defconfigs, platforms or .config files can opt out here at will, to mitigate the code size pressure we see for some SPLs. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
36 lines
925 B
Makefile
36 lines
925 B
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# (C) Copyright 2000-2003
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
|
|
extra-y := start.o
|
|
|
|
obj-y += cpu.o
|
|
ifndef CONFIG_$(SPL_TPL_)TIMER
|
|
obj-$(CONFIG_SYS_ARCH_TIMER) += generic_timer.o
|
|
endif
|
|
obj-y += cache_v8.o
|
|
ifdef CONFIG_SPL_BUILD
|
|
obj-$(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) += exceptions.o
|
|
else
|
|
obj-y += exceptions.o
|
|
endif
|
|
obj-y += cache.o
|
|
obj-y += tlb.o
|
|
obj-y += transition.o
|
|
obj-y += fwcall.o
|
|
obj-y += cpu-dt.o
|
|
obj-$(CONFIG_ARM_SMCCC) += smccc-call.o
|
|
|
|
ifndef CONFIG_SPL_BUILD
|
|
obj-$(CONFIG_ARMV8_SPIN_TABLE) += spin_table.o spin_table_v8.o
|
|
endif
|
|
obj-$(CONFIG_$(SPL_)ARMV8_SEC_FIRMWARE_SUPPORT) += sec_firmware.o sec_firmware_asm.o
|
|
|
|
obj-$(CONFIG_FSL_LAYERSCAPE) += fsl-layerscape/
|
|
obj-$(CONFIG_S32V234) += s32v234/
|
|
obj-$(CONFIG_ARCH_ZYNQMP) += zynqmp/
|
|
obj-$(CONFIG_TARGET_HIKEY) += hisilicon/
|
|
obj-$(CONFIG_ARMV8_PSCI) += psci.o
|
|
obj-$(CONFIG_ARCH_SUNXI) += lowlevel_init.o
|