summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2025-09-23Prepare v2025.10-rc5v2025.10-rc5Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-09-17imx95_evk: Restore support for i.MX95 A0 siliconAlice Guo
This patch is used to restore support for i.MX95 A0 silicon. To avoid duplicating defconfig, imx95.config is added and can be shared between imx95_a0_19x19_evk_defconfig and imx95_19x19_evk_defconfig. container.cfg and imximage.cfg are used to created .cfgout files that are be passed to mkimage with -n to build flash.bin. Now they have been deleted and replaced by adding their content to properties of node which type is nxp-imx9image under binman node. Fixes: 9936724aa9b ("imx95_evk: Add i.MX95 B0 support") Signed-off-by: Alice Guo <[email protected]> Tested-By: Tim Harvey <[email protected]> # imx95-19x19-evk (rA0)
2025-09-08Prepare v2025.10-rc4v2025.10-rc4Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-08-25Prepare v2025.10-rc3v2025.10-rc3Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-08-11Prepare v2025.10-rc2v2025.10-rc2Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-08-04Makefile: Remove expansion of undefined variablePhilip Molloy
The U-Boot environment was previously stored in the boot loader stream using ldr, but it has been replaced by the default environment built into the U-Boot executable or an environment on external storage Fixes: ea3310e8aafa ("Blackfin: Remove") Signed-off-by: Philip Molloy <[email protected]> Reviewed-by: Greg Malysa <[email protected]>
2025-08-01Makefile: add dependency from lib to arch/$(ARCH)/libMikko Rapeli
Top level Makefile starts separate "make" processes for each each subdirectory. lib/efi_loader apps now depend on lib.a from arch/$(ARCH)/lib if CONFIG_USE_PRIVATE_LIBGCC is enabled which creates a race conditions since dependency from lib/efi_loader EFI apps to arch/$(ARCH)/lib/lib.a is not explicit: arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/testapp_efi.so] Error 1 This error was seen on yocto/OE-core CI builds after u-boot 2025.07 update: https://lists.openembedded.org/g/openembedded-core/message/220004 https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2914600/raw_inline | rm -f lib/efi_loader/built-in.o; arm-poky-linux-gnueabi-ar cDPrsT lib/efi_loader/built-in.o lib/efi_loader/efi_bootmgr.o lib/efi_loader/efi_bootbin.o lib/efi_loader /efi_boottime.o lib/efi_loader/efi_helper.o lib/efi_loader/efi_console.o lib/efi_loader/efi_device_path.o lib/efi_loader/efi_device_path_to_text.o lib/efi_loader/efi_device_ path_utilities.o lib/efi_loader/efi_dt_fixup.o lib/efi_loader/efi_fdt.o lib/efi_loader/efi_file.o lib/efi_loader/efi_hii.o lib/efi_loader/efi_hii_config.o lib/efi_loader/efi _image_loader.o lib/efi_loader/efi_load_options.o lib/efi_loader/efi_memory.o lib/efi_loader/efi_root_node.o lib/efi_loader/efi_runtime.o lib/efi_loader/efi_setup.o lib/efi_ loader/efi_string.o lib/efi_loader/efi_unicode_collation.o lib/efi_loader/efi_var_common.o lib/efi_loader/efi_var_mem.o lib/efi_loader/efi_variable.o lib/efi_loader/efi_var_ file.o lib/efi_loader/efi_watchdog.o lib/efi_loader/efi_disk.o lib/efi_loader/efi_net.o lib/efi_loader/efi_smbios.o lib/efi_loader/efi_load_initrd.o lib/efi_loader/efi_confo rmance.o | arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st- 3119200/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so | arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory | make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1 The different "make" processes share common scripts/Makefile.build and scripts/Makefile.libs but since they are separate processes the Makefile rules can't add a dependency from lib/uefi_loader targets to arch/$(ARCH)/lib/lib.a. Or the file level dependency can be added but then "make" produces a too sparse error message which does not mention that one of the dependencies like arch/$(ARCH)/lib/lib.a was not found: make[3]: *** No rule to make target 'lib/efi_loader/helloworld.efi', needed by '__build'. Stop. Fix this dependency problem by building arch/$(ARCH)/lib before lib if CONFIG_USE_PRIVATE_LIBGCC was enabled. To reproduce the race condition more reliably, add a "sleep 10" delay before linker command cmd_link_l_target with 2025.07 or to $(lib-target): target in scripts/Makefile.build with master branch after Kbuild update. Fixes: 43d43241d1c9 ("scripts/Makefile.lib: add PLATFORM_LIBGCC to efi linking") Cc: Adriano Cordova <[email protected]> Cc: Fabio Estevam <[email protected]> Signed-off-by: Mikko Rapeli <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2025-07-28Prepare v2025.10-rc1v2025.10-rc1Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-07-26efi: Rename the lib/efi directorySimon Glass
This directory was created when U-Boot gained the ability to run as an EFI app in 2015. Since then the EFI-loader feature has been added. The code in lib/efi is not actually used by the loader, so the name is confusing. Rename the directory to efi_client to indicate that it includes files just for U-Boot being a client of EFI, i.e. the EFI app and stub. Signed-off-by: Simon Glass <[email protected]>
2025-07-18kbuild: Don't mandate gcc as the host compilerMark Kettenis
Systems that use clang may not have gcc installed. Set HOSTCC to cc and HOSTCXX to c++ like we did before to make those systems work again. Fixes: 5f520875bdf0 ("kbuild: Bump the build system to 5.1") Signed-off-by: Mark Kettenis <[email protected]>
2025-07-12kbuild: Avoid including architecture-specific Makefile twiceYao Zi
Stranges errors are observed when building U-Boot master for almost any RISC-V board, the messages are in two types, one is about duplicated symbols, u-boot/arch/riscv/cpu//mtrap.S:32: multiple definition of `trap_entry'; arch/riscv/cpu/mtrap.o: u-boot/arch/riscv/cpu//mtrap.S:32: first defined here and the other is fixdep's complaint about missing dependency files, fixdep: error opening file: arch/riscv/cpu/.mtrap.o.d: No such file or directory fixdep: error opening file: arch/riscv/cpu//.start.o.d: No such file or directory where the latter could only be reproduced when building parallelly. Both the two types of errors are about files in arch/riscv/cpu, and there's a suspicious slash character in the reported path. Looking through RISC-V-specific Makefiles, there's only one place that may expand to such a path, libs-y += arch/riscv/cpu/$(CPU)/ The right hand expands to "arch/riscv/cpu//" if $(CPU) isn't defined at the time of including. With some debug statement added to arch/riscv/Makefile, the output proves that arch/riscv/Makefile is included twice, once with $(CPU) undefined and once defined correctly according to CONFIG_SYS_CPU. Futher bisecting shows an extra include statement against arch/$(SRCARCH)/Makefile is added in earlier bump of Kbuild system. But the statement is evaluated before config.mk is included and definition of $(CPU), causing objects in arch/riscv/cpu/ are built and linked twice (once as "arch/riscv/cpu/*", and once as "arch/riscv/cpu//*"), resulting in the error. Let's simply remove the extra include to fix these nasty errors. For config targets, bumping Kbuild also introduced a new include to arch/$(SRCARCH)/Makefile, which is removed as well for consistency. Fixes: 5f520875bdf ("kbuild: Bump the build system to 5.1") Signed-off-by: Yao Zi <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Fabio Estevam <[email protected]> Tested-by: Bryan Brattlof <[email protected]>
2025-07-10makefile: Adjust distclean to remove .binman_stamp fileMagnus Damm
Remove the .binman_stamp file during distclean Signed-off-by: Magnus Damm <[email protected]>
2025-07-08fit-dtb.blob.gz: Pass "-n" to gzipTom Rini
Sometimes when building a platform such as imx28_btt3 we can get an error such as: gzip: fit-dtb.blob: warning: file timestamp out of range for gzip format make[1]: *** [Makefile:1219: fit-dtb.blob.gz] Error 2 make[1]: *** Deleting file 'fit-dtb.blob.gz' make: *** [Makefile:186: sub-make] Error 2 This is typically resolved by telling gzip to ignore the timestamp. Signed-off-by: Tom Rini <[email protected]>
2025-07-08Makefile: Fix of_list_dirs with EXT_DTBManorit Chawdhry
EXT_DTB overrides the of_list_dirs that is passed to binman during builds. This causes binman to not find the normal DTB paths and instead it just is able to use the path for EXT_DTB only. Add the default of_list_dirs that is used for normal binman builds to EXT_DTB usecase as well. Signed-off-by: Manorit Chawdhry <[email protected]> Reviewed-by: Aniket Limaye <[email protected]>
2025-07-08Merge patch series "kbuild: Update Makefile.extrawarn to 5.1"Tom Rini
This series from Ilias Apalodimas <[email protected]> largely finishes the re-sync with the Linux Kernel v5.1 kbuild system. Link: https://lore.kernel.org/r/[email protected]
2025-07-08kbuild: Bump the build system to 5.1Ilias Apalodimas
Our last sync with the kernel was 5.1. Even that was a partial one as some patches from 4.x kernels were already missing making the transition to a modern kbuild infeasible. We are so out of sync now, that tracking the patches and backporting them one by one makes little sense and it's going to take ages. This is an attempt to sync up Makefile[.lib/.kbuild]. Unfortunately due to sheer amount of patches this is not easy to review, but that's what we decided during a community call. One of the biggest changes is get rid of partial linking entirely and build .a archives isntead of .o. We diaviate from the kernel on that. Instead of calling a custom script to create the archive symbol table, we call ar with rcTP (isntead of rcSTP) since we want a resulting archive that's sauble with the linker. The only affected platforms are PPC ones. Unfortunately I don't have any of them around to test, but the objdump of the resulting files -- arch/powerpc/lib/built-in.[oa] looks identical. Signed-off-by: Ilias Apalodimas <[email protected]>
2025-07-07Merge branch 'next'Tom Rini
2025-07-07Prepare v2025.07v2025.07Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-06-23Merge tag 'v2025.07-rc5' into nextTom Rini
Prepare v2025.07-rc5 With this merge, tighten up the LTO_FLAGS removal we added to not trigger on ARMv7 (which is Thumb-2 and should be fine).
2025-06-23Prepare v2025.07-rc5v2025.07-rc5Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-06-20Merge patch series "Consistent Kconfig environment options CONFIG_ENV_ prefix"Tom Rini
Marek Vasut <[email protected]> says: Rename the environment related variables and add ENV_ prefix, so that all configuration options which are related to environment would have an CONFIG_ENV_ prefix. No functional change. Link: https://lore.kernel.org/r/[email protected]
2025-06-20env: Rename DEFAULT_ENV_FILE to ENV_DEFAULT_ENV_TEXT_FILEMarek Vasut
Rename the variable and add ENV_ prefix, so that all configuration options which are related to environment would have an CONFIG_ENV_ prefix. No functional change. Also rename USE_DEFAULT_ENV_FILE to USE_ENV_DEFAULT_ENV_TEXT_FILE . Signed-off-by: Marek Vasut <[email protected]>
2025-06-12binman: add atf-bl1 to etypesBryan Brattlof
Some SoCs require a Trusted Firmware-A (TF-A) AP Trusted ROM (BL1) to initialize the SoC before U-Boot can run properly. Add an atf-bl1 etype so we can properly package BL1 into a final binary Signed-off-by: Bryan Brattlof <[email protected]> Acked-by: Simon Glass <[email protected]>
2025-06-11kbuild: fix single target build for external moduleIlias Apalodimas
Backported from kernel commit e07db28eea38 ("kbuild: fix single target build for external module") It's worth noting that crmodverdir is empty for U-Boot. Just backport it to make diffing easier Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: make 'archprepare' depend on 'scripts'Ilias Apalodimas
Backported from kernel commit 059bc9fc375e ("kbuild: make 'archprepare' depend on 'scripts'") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: mark prepare0 as PHONY to fix external module buildIlias Apalodimas
Backported from kernel commit e00d88804814 ("kbuild: mark prepare0 as PHONY to fix external module build") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: skip parsing pre sub-make code for recursionIlias Apalodimas
Backported from kernel commit 221cc2d27ddc ("kbuild: skip parsing pre sub-make code for recursion") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: do not overwrite .gitignore in output directoryIlias Apalodimas
Backported from kernel commit 156e7cbb3ef5 ("kbuild: do not overwrite .gitignore in output directory") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11gcc-9: silence 'address-of-packed-member' warningIlias Apalodimas
Backported from kernel commit 6f303d60534c ("gcc-9: silence 'address-of-packed-member' warning") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: remove meaningless prepare2 targetIlias Apalodimas
Backported from kernel commit 4f1c1008e786 ("kbuild: remove meaningless prepare2 target") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: gitignore output directoryIlias Apalodimas
Backported from kernel commit 3a51ff344204 ("kbuild: gitignore output directory" Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: use -Werror=implicit-... instead of -Werror-implicit-...Ilias Apalodimas
Backported from kernel commit b89f25ea7892 ("kbuild: use -Werror=implicit-... instead of -Werror-implicit-..." Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: clang: choose GCC_TOOLCHAIN_DIR not on LDIlias Apalodimas
Backported from kernel commit ad15006cc784 ("kbuild: clang: choose GCC_TOOLCHAIN_DIR not on LD") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: add -Werror=implicit-int flag unconditionallyIlias Apalodimas
Backported from kernel commit 61a0902a06d6a ("kbuild: add -Werror=implicit-int flag unconditionally") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-11kbuild: add -fno-PIE flag unconditionallyIlias Apalodimas
Backport from kernel commit 42a92bccd213 ("kbuild: add -fno-PIE flag unconditionally") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-09Merge tag 'v2025.07-rc4' into nextTom Rini
Prepare v2025.07-rc4
2025-06-09Prepare v2025.07-rc4v2025.07-rc4Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-05-29Merge patch series "Update kbuild"Tom Rini
Ilias Apalodimas <[email protected]> says: Last time the kbuild scripts were synced with the Linux kernel was on the 4.20 release. Updating directly to 6.x makes the diff difficult to read, so let's do the changes incrementally and bump to 5.1 first. Since the number of commits is big, I am splitting this in multiple series. This one includes most of the commits for Makefile.build, Makefile.lib and some from Makefile. commit eeb5687a7139649e ("kbuild: add -Werror=strict-prototypes flag unconditionally") commit 3812b8c5c5d5 ("kbuild: make -r/-R effective in top Makefile for old Make versions") commit b421b8a6cb87 ("kbuild: remove unused archmrproper") commit 1a49b2fd8f58 ("kbuild: strip whitespace in cmd_record_mcount findstring") commit 88110713ca9dfb ("kbuild: hardcode genksyms path and remove GENKSYMS variable") commit 1d8001ef358 ("kbuild: generate modules.order only when CONFIG_MODULES=y") commit 45c4372d00 ("kbuild: refactor quiet_modtag") commit b39a691617e4 commit ("kbuild: remove redundant quiet_modtag for $(obj-m)") commit 5439f09f488f ("kbuild: remove redundant 'set -e' from cmd_* defines") commit e5d289100d3a ("kbuild: remove trailing semicolon from cmd_* passed to if_changed_rule") commit 3a2429e1faf4 ("kbuild: change if_changed_rule for multi-line recipe") commit ee3e46b7efd2 ("kbuild: refactor modversions build rules") commit 4317ee3b6a5e ("kbuild: remove redundant 'set -e' from sub_cmd_record_mcount") commit 392885ee82d3 ("kbuild: let fixdep directly write to .*.cmd files") commit 898f5a009f22 ("kbuild: move archive command to scripts/Makefile.lib") commit b79c6aa6a1f1 ("kbuild: remove unnecessary in-subshell execution") commit afa974b77128 ("kbuild: add real-prereqs shorthand for $(filter-out FORCE,$^)") commit ecbd10d90e94 ("kbuild: simplify rules of data compression with size appending") commit 58156ba4468f ("kbuild: skip 'addtree' and 'flags' magic for external module build") commit 172caf1993b7 ("kbuild: remove redundant target cleaning on failure") commit f3fd4a3f3a38 ("kbuild: remove redundant 'set -e' from filechk_offsets") commit a2237fec1e06 ("kbuild: Enable dtc graph_port warning by default") commit 70523a3ce5ff ("kbuild: disable dtc simple_bus_reg warnings by default") commit e4aca4595005 ("kbuild: de-duplicate fixdep usage") Link: https://lore.kernel.org/r/[email protected]
2025-05-29kbuild: add -Werror=strict-prototypes flag unconditionallyIlias Apalodimas
Backported from kernel commit eeb5687a7139649e ("kbuild: add -Werror=strict-prototypes flag unconditionally") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: make -r/-R effective in top Makefile for old Make versionsIlias Apalodimas
Backported from kernel commit 3812b8c5c5d5 ("kbuild: make -r/-R effective in top Makefile for old Make versions") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove unused archmrproperIlias Apalodimas
Backported from kernel commit b421b8a6cb87 ("kbuild: remove unused archmrproper") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: let fixdep directly write to .*.cmd filesIlias Apalodimas
Backport from kernel commit 392885ee82d3 ("kbuild: let fixdep directly write to .*.cmd files") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-26Prepare v2025.07-rc3v2025.07-rc3Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-05-12Prepare v2025.07-rc2v2025.07-rc2Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-05-11doc: pytest: Framework for documenting tests and document test_000_versionTom Rini
In order to easily document pytests, we need to include the autodoc extension. We also need to make sure that for building the docs, CI includes pytest and that we have PYTHONPATH configured such that it will find all of the tests and related files. Finally, we need to have our comments in the test file by in proper pydoc format in order to be included in the output. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-05Add HOST_ARCH detection for armv5tel and armv6lBen Wolsieffer
Since 7506c15, HOST_ARCH is now used by the EFI loader even when CONFIG_SANDBOX is disabled. When cross-compiling, the Makefile defines HOST_ARCH based on the cross-compiler prefix, but this definition fails to cover some common compiler prefixes. When cross-compiling U-Boot in nixpkgs, we use CROSS_COMPILE=armv6l-unknown-linux-gnueabihf-, which results in HOST_ARCH being undefined and causes a build failure. Fix this by adding armv6l to the match for ARM. Also add armv5tel, as this is another possible ARM compiler prefix. Signed-off-by: ZHANG Yuntian <[email protected]> Signed-off-by: Ben Wolsieffer <[email protected]>
2025-05-03Makefile: add some files to CLEAN_FILESAlice Guo
When building the flash.bin of i.MX95 with binman, mkimage.imx-boot.spl, mkimage.imx-boot.u-boot, mkimage-out.imx-boot.spl and mkimage-out.imx-boot.u-boot are created. Add these files to CLEAN_FILES so that they can be removed when running "make clean". Signed-off-by: Alice Guo <[email protected]>
2025-04-28Prepare v2025.07-rc1v2025.07-rc1Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-04-13efi_loader: Moved the generated ESL file to objtreeIlias Apalodimas
Tom reports that generating the ESL file we need for authenticated capsule updates fails to work on azure which expects a RO git tree. Move it to $(objtree) Reported-by: Tom Rini <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-04-11Merge patch series "Switch to using $(PHASE_) in Makefiles"Tom Rini
Tom Rini <[email protected]> says: This series switches to always using $(PHASE_) in Makefiles when building rather than $(PHASE_) or $(XPL_). It also starts on documenting this part of the build, but as a follow-up we need to rename doc/develop/spl.rst and expand on explaining things a bit. Link: https://lore.kernel.org/r/[email protected]