- 25 5月, 2021 40 次提交
-
-
由 Heinrich Schuchardt 提交于
Use efi_get_variable_int() instead of EFI_CALL(RT->get_variable()). Use efi_set_variable_int() instead of EFI_CALL(efi_set_variable()). Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de> Tested-by: NIlias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: NIlias Apalodimas <ilias.apalodimas@linaro.org>
-
由 Heinrich Schuchardt 提交于
Simplify the creation of indexed variable names like 'Boot0000' by using function efi_create_indexed_name(). Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: NIlias Apalodimas <ilias.apalodimas@linaro.org>
-
由 Heinrich Schuchardt 提交于
To print a UTF-16 string use %ls instead of converting string to UTF-8. Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: NIlias Apalodimas <ilias.apalodimas@linaro.org>
-
由 Heinrich Schuchardt 提交于
To print a UTF-16 string use %ls instead of converting string to UTF-8. Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: NIlias Apalodimas <ilias.apalodimas@linaro.org>
-
由 Heinrich Schuchardt 提交于
Before this patch efi_dp_from_name() only accommodated a maximum file path length of 31 characters. This leads to boot failures due to file name truncation. Allow arbitrary path lengths. Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-
由 Masahisa Kojima 提交于
This is preparation for PE/COFF measurement support. PE/COFF image hash calculation is same in both UEFI Secure Boot image verification and measurement in measured boot. PE/COFF image parsing functions are gathered into efi_image_loader.c, and exposed even if UEFI Secure Boot is not enabled. This commit also adds the EFI_SIGNATURE_SUPPORT option to decide if efi_signature.c shall be compiled. Signed-off-by: NMasahisa Kojima <masahisa.kojima@linaro.org> Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-
由 Heinrich Schuchardt 提交于
Configuring a system with CONFIG_EFI_CAPSULE_AUTHENTICATE=y but without a method to retrieve the public key data is a misconfiguration. We should get a build failure for it. Therefore remove the weak efi_get_public_key_data() implementation. Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-
由 Jaehoon Chung 提交于
Modify mmc man-page. - Change a description about mmc erase command. - Add whitespace to distinguish. Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Tom Rini 提交于
Signed-off-by: NTom Rini <trini@konsulko.com>
-
由 Tom Rini 提交于
- Add LTO (link time optimization) support to the build system and enable it on a few boards. This is an alternative to using -ffunction-sections/-fdata-sections and --gc-sections at link time to remove unused code. This can result in notable savings, but needs testing on each platform before use as it can expose problems by optimizing away various functionally necessary calls.
-
由 Tom Rini 提交于
With better compiler optimizations available, a compiler may see we do nothing with our buffer after calling memset and omit the call, thus causing us to not smash the stack. Add a comment to explain why we now also have a printf call, so that the test will pass as the memset will not be omitted. Reported-by: NMarek Behún <marek.behun@nic.cz> Signed-off-by: NTom Rini <trini@konsulko.com>
-
由 Marek Behún 提交于
Enable LTO for some boards that were tested by people on U-Boot Mailing List. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Tested-by: NAdam Ford <aford173@gmail.com> Tested-by: NPali Rohár <pali@kernel.org> Tested-by: NTim Harvey <tharvey@gateworks.com>
-
由 Marek Behún 提交于
When using LTO, we can throw away the --gc-sections flag, but only if using private libgcc. When using system's libgcc, --gc-sections is still needed, otherwise linking will fail due to undefined references to libc's symbols. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
When building with LTO, using -ffunction-sections/-fdata-sections is not useful anymore. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Make LTO available for ARM architecture. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
When building highbank_defconfig with LTO, the compiler complains about type mismatch of function ahci_link_up(). The third parameter of this function is of type u8 in drivers/ata/ahci.c, but of type int in board/highbank/ahci.c. There is no reason in using u8, and the code using this function actually passes an int variable into the function (so it is implicitly converted to u8). Change the type of this parameter to int in drivers/ata/ahci.c. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
For some reason when building SPL for ARMv8 with LTO, the relocation information is not discarded. Discard it explicitly in the linker script. This fixes LTO build for imx8mm_venice_defconfig. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Adam Ford says that DM3730 needs board.c compiled without LTO flags. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Tested-by: NAdam Ford <aford173@gmail.com>
-
由 Marek Behún 提交于
When building with LTO, the compiler complains about type mismatch of function usb_gadget_handle_interrupts(). This function is defined without parameters in files arch/arm/mach-rockchip/board.c board/samsung/common/exynos5-dt.c but it should have one parameter, int index. Fix this. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NKever Yang <kever.yang@rock-chips.com>
-
由 Marek Behún 提交于
When seaboard_defconfig is compiled with LTO, the compiler complains about some instructions not being supported in ARM mode. This is caused by arch/arm/mach-tegra/tegra20/warmboot_avp.c having different CFLAGS declared in Makefile. This file needs to be compiled without LTO. Fix this by removing -flto for this file. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
When building imx8mp_evk_defconfig with LTO, the compiler complains about type mismatch of function imx_eqos_txclk_set_rate() in file drivers/net/dwc_eth_qos.c:845:12 which contains a weak definition of this function, vs file arch/arm/mach-imx/imx8m/clock_imx8mm.c which contains an implementation. Change the type of this function in the implementation to fix this. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
When building with LTO, the compiler complains about type mismatch of function clk_bsc_enable() in file: arch/arm/cpu/armv7/kona-common/clk-stubs.c vs other files that define or use this function: warning: type of ‘clk_bsc_enable’ does not match original declaration. Change the type of this function to that of the other usages. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
When building keystone with LTO the compiler complains: Error: selected processor does not support `smc #0' in Thumb mode Fix this by removing -flto for the file implementing these SMC calls. Signed-off-by: NMarek Behún <marek.behun@nic.cz>
-
由 Marek Behún 提交于
When apf27_defconfig is built with LTO, linking complains about undefined reference to `nand_boot`. This is because it is referenced from inline assembly. Make it visible. Signed-off-by: NMarek Behún <marek.behun@nic.cz>
-
由 Marek Behún 提交于
When imx28_xea_defconfig is built with LTO, the compiler complains about the two different declarations of _start: include/asm-generic/sections.h as extern void _start(void); arch/arm/cpu/arm926ejs/mxs/mxs.c as extern uint32_t _start; Fix this. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
Fix LTO build for some thumb-interwork usecases (such as for da850evm_defconfig), where inline assmebly such as mrc p15,0,r2,c1,c0,0 causes the compiler to fail during LTO linking with Error: selected processor does not support `mrc p15,0,r2,c1,c0,0' in Thumb mode Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
On ARM, the gd pointer is stored in registers r9 / x18. For this the -ffixed-r9 / -ffixed-x18 flag is used when compiling, but using global register variables causes errors when building with LTO, and these errors are very difficult to overcome. Richard Biener says [1]: Note that global register vars shouldn't be used with LTO and if they are restricted to just a few compilation units the recommended fix is to build those CUs without -flto. We cannot do this for U-Boot since all CUs use -ffixed-reg flag. It seems that with LTO we could in fact store the gd pointer differently and gain performance or size benefit by allowing the compiler to use r9 / x18. But this would need more work. So for now, when building with LTO, go the clang way, and instead of declaring gd a global register variable, we make it a function call via macro. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68384Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
The Thumb instruction `ldr` is able to move high registers only from armv7. For armv5 and armv6 we have to use `mov`. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Build sandbox targets with LTO by default. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
Make LTO available for sandbox architecture. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
In style of linked lists, instead of declaring symbols for boundaries of getopt options array in the linker script, declare corresponding sections and retrieve the boundaries via static inline functions. Without this clang's LTO produces binary without any getopt options, because for some reason it thinks that array is empty (start and end symbols are at the same address). Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
When building with LTO, the system libc's `errno` variable used in arch/sandbox/cpu/os.c conflicts with U-Boot's `errno` (defined in lib/errno.c) with the following error: .../ld: errno@@GLIBC_PRIVATE: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/u-boot.EQlEXz.ltrans0.ltrans.o To avoid this conflict use different asm label for this variable when CONFIG_SANDBOX is enabled. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Some toolchains are compiled so that they pass a --build-id=something parameter to the linker implicitly. This causes U-Boot LTO linking to fail with something like: ld: section .note.gnu.build-id LMA ... overlaps section .text LMA ... because U-Boot's link scripts do not currently handle .note.gnu.build-id section. Fix this by explicitly disabling build-id. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Add plumbing for building U-Boot with Link Time Optimizations. When building with LTO, $(PLATFORM_LIBS) has to be in --whole-archive / --no-whole-archive group, otherwise some functions declared in assembly may not be resolved and linking may fail. Note: clang may throw away linker list symbols it thinks are unused when compiling with LTO. To force these symbols to be included, we refer to them via the __ADDRESSABLE macro in a C file generated from compiled built-in.o files before linking. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Currently we use incremental linking (ld -r) to link several object files from one directory into one built-in.o object file containing the linked code from that directory (and its subdirectories). Linux has, some time ago, moved to thin archives instead. Thin archives are archives (.a) that do not really contain the object files, only references to them. Using thin archives instead of incremental linking - saves disk space - apparently works better with dead code elimination - makes things easier for LTO The third point is the important one for us. With incremental linking there are several options how to do LTO, and that would unnecessarily complicate things. We have to use the --whole-archive/--no-whole-archive linking option instead of --start-group/--end-group, otherwise linking may fail because of unresolved symbols, or the resulting binary will be unusable. We also need to use the P flag for ar, otherwise final linking may fail. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Marek Behún 提交于
Indent the linking commands so that they look cosmetically better. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Marek Behún 提交于
When compiling with LTO, the compiler fails with an error saying that `crc_table` causes a section type conflict with `efi_var_buf`. This is because both are declared to be in the same section (via macro `__efi_runtime_data`), but one is const while the other is not. Put this variable into the section .rodata.efi_runtime, instead of .data.efi_runtime, via macro __efi_runtime_rodata. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NMarek Vasut <marex@denx.de> Reviewed-by: NHeinrich Schuchardt <xypron.gpk@gmx.de>
-
由 Marek Behún 提交于
Add $(CFLAGS_EFI) and remove $(CFLAGS_NON_EFI) for efi_selftest_miniapp_exception.o. The removal is needed when compiling with LTO - this object file needs to be compiled without -flto. The adding is for consistency with other miniapps. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-
由 Marek Behún 提交于
Add macro __efi_runtime_rodata, for const variables with similar purpose as those using __efi_runtime_data. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-
由 Marek Behún 提交于
Document the macros __efi_runtime and __efi_runtime_data in Sphinx style. Signed-off-by: NMarek Behún <marek.behun@nic.cz> Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-