summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2022-02-05Makefile: imx: Do not call arch/arm/mach-imx flash.bin generation if BINMAN ↵Marek Vasut1-1/+0
enabled Skip running arch/arm/mach-imx flash.bin generation in case BINMAN is enabled, otherwise the target in arch/arm/mach-imx/Makefile regenerates the flash.bin again and produces corrupted result. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Peng Fan <peng.fan@oss.nxp.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-02-01Prepare v2022.04-rc1Tom Rini1-2/+2
Signed-off-by: Tom Rini <trini@konsulko.com>
2022-01-31pylint: Adjust how the output is producedSimon Glass1-3/+4
The current Makefile rule requires there to be a 'Module' line in the pylint output, like this: ************* Module binman.fip_util This line only appears if pylint has some comments about the module. We cannot rely on it for naming. Update the code to instead use the filename as the identifier for each score, so rather than: multiplexed_log 7.49 we output: test_multiplexed_log.py 7.20 It is still easy to see which file the score relates to. In fact the new naming is nicer since the full subdirectories are shown. The avoids the problem where a module name is not produced, and the output gets out of sync. Regenerate pylint.base so we can start from the current baseline. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-01-29dm: serial: Add a migration deadline for serialSimon Glass1-0/+1
This probably should have been done a while back since it is a core system. Very few boards remain to be migrated. Addd a migration deadline for a year out. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-01-25Makefile: Fake external blobs by default with binmanSimon Glass1-1/+1
This behaviour is necessary with boards where the binman description requires processing external blobs, since these may be missing. Enable it by default, so that CI is happy. Warnings indicate that a valid image is not produced, as with the --allow-missing option. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-01-25Makefile: Add a pylint checker to the buildSimon Glass1-1/+44
At present the Python code in U-Boot is somewhat inconsistent, with some files passing pylint quite cleanly and others not. Add a way to track progress on this clean-up, by checking that no module has got any worse as a result of changes. This can be used with 'make pylint'. Signed-off-by: Simon Glass <sjg@chromium.org> [trini: Re-generate pylint.base]
2022-01-15efi: Build the 64-bit app properlySimon Glass1-2/+2
Now that the linker crash is resolved, build the 64-bit EFI app, including all the required code. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-01-13timer: Add a migration messageSimon Glass1-0/+4
Some boards still use the old timer mechanism. Set a deadline for them to update to driver model. Point to some examples as well. This needs a bit of a strange rule to avoid an error on some boards. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-01-13Makefile: Add more files to clean listAdam Ford1-1/+3
When building for i.mx8m boards with binman, a few more additional files are created which should be removed when running 'make clean' Signed-off-by: Adam Ford <aford173@gmail.com>
2022-01-10Merge branch 'next'Tom Rini1-5/+80
Signed-off-by: Tom Rini <trini@konsulko.com>
2022-01-10Prepare v2022.01Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2022-01-07binman: add support for creating dummy files for external blobsHeiko Thiery1-0/+1
While converting to binman for an imx8mq board, it has been found that building in the u-boot CI fails. This is because an imx8mq requires an external binary (signed_hdmi_imx8m.bin). If this file cannot be found mkimage fails. To be able to build this board in the u-boot CI a binman option (--fake-ext-blobs) is introduced that can be switched on via the u-boot makefile option BINMAN_FAKE_EXT_BLOBS. With that the needed dummy files are created. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-12-23fdt: Avoid emitting an device tree when not neededSimon Glass1-2/+4
U-Boot always needs some sort of a device tree in the build. Some boards never actually use this, at least in production systems, since a prior firmware stage sets one up and passes it to U-Boot. At present the only mechanism to do that is with custom function (OF_BOARD), but future work will include a standard way of doing this ('standard passage'). It can be confusing to see a device tree emitted from the U-Boot build in this situation. Add an option to drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-12-23fdt: Makefile: Ensure that OF_BOARD is used when neededSimon Glass1-0/+7
Boards which define OF_HAS_PRIOR_STAGE must define OF_BOARD at present, since a custom function is the only way to obtain the devicetree at runtime. Add a build error when this requirement is not met, to avoid accepting any patches which break this requirement. Add an allowlist for boards which use it, currently none. This allowlist can be updated for local development, if needed. Signed-off-by: Simon Glass <sjg@chromium.org> [trini: change of_whitelist to of_allowlist] Signed-off-by: Tom Rini <trini@konsulko.com>
2021-12-23fdt: Drop CONFIG_BINMAN_STANDALONE_FDTSimon Glass1-2/+1
This was added as a hack to work around not having an in-tree devicetree. Now that this is fixed it is not needed. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-12-21Merge tag 'v2022.01-rc4' into nextTom Rini1-1/+1
Prepare v2022.01-rc4
2021-12-20Prepare v2022.01-rc4Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-12-05keyboard: Add a migration messageSimon Glass1-0/+1
A few boards still use the old keyboard mechanism. Set a deadline for them to update to driver model. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-12-05binman: Allow providing tools and blob directoriesSimon Glass1-0/+2
At present it is necessary to symlink files containing external blobs into the U-Boot tree in order for binman to find them. This is not very convenient. Add two new environment/Makefile variables to help with this. Add documentation as well, fixing a related nit. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-11-29Merge tag 'v2022.01-rc3' into nextTom Rini1-2/+2
Prepare v2022.01-rc3 Signed-off-by: Tom Rini <trini@konsulko.com>
2021-11-29Prepare v2022.01-rc3Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-11-16env: Allow U-Boot scripts to be placed in a .env fileSimon Glass1-1/+65
At present U-Boot environment variables, and thus scripts, are defined by CONFIG_EXTRA_ENV_SETTINGS. It is painful to add large amounts of text to this file and dealing with quoting and newlines is harder than it should be. It would be better if we could just type the script into a text file and have it included by U-Boot. Add a feature that brings in a .env file associated with the board config, if present. To use it, create a file in a board/<vendor> directory, typically called <board>.env and controlled by the CONFIG_ENV_SOURCE_FILE option. The environment variables should be of the form "var=value". Values can extend to multiple lines. See the README under 'Environment Variables:' for more information and an example. In many cases environment variables need access to the U-Boot CONFIG variables to select different options. Enable this so that the environment scripts can be as useful as the ones currently in the board config files. This uses the C preprocessor, means that comments can be included in the environment using /* ... */ Also support += to allow variables to be appended to. This is needed when using the preprocessor. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Behún <marek.behun@nic.cz> Tested-by: Marek Behún <marek.behun@nic.cz>
2021-11-15makefile: add missing semicolonsAngelo Dureghello1-1/+1
On some distributions, as Debian GNU 11, this targets fails with errors. Signed-off-by: Angelo Dureghello <angelo.dureghello@timesys.com>
2021-11-15Prepare v2022.01-rc2Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-11-13Makefile: Correct TPL rule for OF_REALSimon Glass1-1/+1
Correct an error in the tpl-dtb parameter to binman. At present the TPL rule follows SPL but this is not correct, if TPL uses of-platdata, for example. Fixes: f99cbe4e867 ("fdt: Update Makefile rules with the new OF_REAL Kconfig") Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2021-11-12Create a new boot/ directorySimon Glass1-1/+2
Quite a lot of the code in common/relates to booting and images. Before adding more it seems like a good time to move the code into its own directory. Most files with 'boot' or 'image' in them are moved, except: - autoboot.c which relates to U-Boot automatically running a script - bootstage.c which relates to U-Boot timing Drop the removal of boot* files from the output directory, since this interfers with the symlinks created by tools and there does not appear to be any such file from my brief testing. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Artem Lapkin <email2tema@gmail.com> Tested-by: Artem Lapkin <email2tema@gmail.com>
2021-11-07efi: Create a 64-bit appSimon Glass1-2/+6
Most modern platforms use 64-bit EFI so it is useful to have a U-Boot app that runs under that. Add a (non-functional) build for this. Note that --whole-archive causes the gcc 9.2 linker to crash, so disable this for now. Once this is resolved, things should work. For now, avoid mentioning the documentation for the 64-bit app, since it does not work. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2021-11-07efi: Drop the OF_EMBED warning for EFISimon Glass1-1/+1
For the EFI app, we must embed the devicetree in the ELF file since that is the only thing that is run by UEFI. Drop the warning to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2021-11-01Prepare v2022.01-rc1Tom Rini1-3/+3
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-10-31x86: Fix linking u-boot with ld.lldAlistair Delva1-0/+3
When linking the final u-boot binary with LLD, the following link errors are seen: ld.lld: error: can't create dynamic relocation R_386_32 against local symbol in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output >>> defined in arch/x86/cpu/start.o >>> referenced by arch/x86/cpu/start.o:(.text.start+0x32) [...] >>> defined in arch/x86/cpu/start16.o >>> referenced by arch/x86/cpu/start16.o:(.start16+0x1C) According to Nick Desaulniers: "This is a known difference between GNU and LLVM linkers; the GNU linkers permit relocations in readonly segments (making them not read only), LLVM does not (by default)." Since U-Boot apparently seems to use relocations in readonly segments, change the global linker flags to permit them when linking with LLD by specifying '-z notext'. Signed-off-by: Alistair Delva <adelva@google.com> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Simon Glass <sjg@chromium.org> Cc: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-10-27sandbox: Remove OF_HOSTFILEIlias Apalodimas1-3/+3
OF_HOSTFILE is used on sandbox configs only. Although it's pretty unique and not causing any confusions, we are better of having simpler config options for the DTB. So let's replace that with the existing OF_BOARD. U-Boot would then have only three config options for the DTB origin. - OF_SEPARATE, build separately from U-Boot - OF_BOARD, board specific way of providing the DTB - OF_EMBED embedded in the u-boot binary(should not be used in production Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-10-20Merge tag 'u-boot-imx-20211020' of ↵Tom Rini1-3/+0
https://source.denx.de/u-boot/custodians/u-boot-imx u-boot-imx-20211020 ------------------- First PR from u-boot-imx for 2022.01 CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/9535 - new board: kontron-sl-mx8mm - imx8m: - fix secure boot - imx ESDHC: fixes - i.MX53: Support thum2, bmode and fixes for Menlo board usbarmory switch to Ethernet driver model - imx6 : - DDR calibration for Toradex boards - imx7: - Fixes - Updated gateworks boards (ventana / venice) # gpg verification failed.
2021-10-19tools: Stop re-defining -std= when building toolsTom Rini1-2/+0
While we intentionally set -std=gnu11 for building host tools, and have for quite some time, we never dropped -std=gnu99 from tools/Makefile. This resulted in passing -std=gnu11 ... -std=gnu99 when building, and gnu99 would win. This in turn would result now in warnings such as: tools/mkeficapsule.c:25:15: warning: redefinition of typedef 'u32' is a C11 feature [-Wtypedef-redefinition] typedef __u32 u32; ^ Signed-off-by: Tom Rini <trini@konsulko.com>
2021-10-19Makefile: Only build dtc if neededSimon Glass1-2/+28
At present U-Boot always builds dtc if CONFIG_OF_CONTROL is defined, even when DTC is provided. The built dtc is not actually used, so this is a waste of time. Update the Makefile logic to build dtc only if one is not provided to the build with the DTC variable. Add documentation to explain this. This saves about 3.5 seconds of elapsed time on a clean build of sandbox_spl for me. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-10-07tree: imx: remove old fit generator scriptAndrey Zhizhikin1-3/+0
Since derivatives are moving to binman from usage of the FIT generator script, and considering the warning introduced in f4a43d2925 ("Makefile: Warn against using CONFIG_SPL_FIT_GENERATOR"), usage of FIT generator is discouraged. Current FIT generator also generates broken output, since commit 3f04db891a ("image: Check for unit addresses in FITs") prohibits using '@' for unit addresses but the generator script still emits the old sematics. Remove the generator script and corresponding call in Makefile, all derivatives should be migrated to binman in order to provide binary images. Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2021-10-06acpi: Use U-Boot version for OEM_REVISIONPali Rohár1-2/+0
OEM_REVISION is 32-bit unsigned number. It should be increased only when changing software version. Therefore it should not depend on build time. Change calculation to use U-Boot version numbers and set this revision to date number. Prior this change OEM_REVISION was calculated from build date and stored in the same format. After this change macro U_BOOT_BUILD_DATE is not used in other files so remove it from global autogenerated files and also from Makefile. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-10-04Merge branch 'next'Tom Rini1-22/+5
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-10-04Prepare v2021.10Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-09-30WS cleanup: remove SPACE(s) followed by TABWolfgang Denk1-1/+1
Signed-off-by: Wolfgang Denk <wd@denx.de>
2021-09-30WS cleanup: remove trailing white spaceWolfgang Denk1-2/+2
Signed-off-by: Wolfgang Denk <wd@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-09-27Merge tag 'dm-pull-next-27sep21' of ↵Tom Rini1-5/+2
https://source.denx.de/u-boot/custodians/u-boot-dm into next Various of-platdata improvements, including CONFIG_OF_REAL
2021-09-27Merge tag 'v2021.10-rc5' into nextTom Rini1-1/+1
Prepare v2021.10-rc5
2021-09-27Prepare v2021.10-rc5Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-09-25fdt: Update Makefile rules with the new OF_REAL KconfigSimon Glass1-5/+2
Simplify some of the Makefile rules using this Kconfig. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-09-16Merge tag 'v2021.10-rc4' into nextTom Rini1-1/+1
Prepare v2021.10-rc4 Signed-off-by: Tom Rini <trini@konsulko.com> # gpg: Signature made Tue 14 Sep 2021 06:58:32 PM EDT # gpg: using RSA key 1A3C7F70E08FAB1707809BBF147C39FF9634B72C # gpg: Good signature from "Thomas Rini <trini@konsulko.com>" [ultimate] # Conflicts: # board/Arcturus/ucp1020/spl.c # cmd/mvebu/Kconfig # common/Kconfig.boot # common/image-fit.c # configs/UCP1020_defconfig # configs/sifive_unmatched_defconfig # drivers/pci/Kconfig # include/configs/UCP1020.h # include/configs/sifive-unmatched.h # lib/Makefile # scripts/config_whitelist.txt
2021-09-15Prepare v2021.10-rc4Tom Rini1-1/+1
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-09-04net: Move network rules to drivers/netSimon Glass1-3/+0
The code under drivers/net is related to ethernet networking drivers, in some fashion or another. Drop these from the top-level Makefile and also move the phy rule into drivers/net/Makefile which is where it belongs. Make the new rule for drivers/net check for the build-stage relevant ETH symbol. Fix up some Kconfig dependencies while we're here to mirror how the Makefile logic now works. Signed-off-by: Simon Glass <sjg@chromium.org> [trini: Introduce ETH, Kconfig dependency changes, am43xx fix] Signed-off-by: Tom Rini <trini@konsulko.com>
2021-09-04power: Refactor Makefile rulesSimon Glass1-7/+0
Move the power/ rules into drivers/power to avoid clutter in the Makefile and drivers/Makefile files. We must select SPL_POWER if SPL_POWER_DOMAIN is used, since the two are currently independent and boards do not necessarily enable SPL_POWER. Add a TPL_POWER as well, as that is used by one board. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2021-09-04gpio: Add a GPIO configSimon Glass1-1/+0
At present we have SPL_GPIO and TPL_GPIO but not piain GPIO. This works because there is a special build rule in Makefile that always includes the drivers/gpio directory. It is better to have all driver directories included by drivers/Makefile and there is already a rule in there for this purpose. It just needs a Kconfig for U-Boot proper, so add one. Enable the option always for now, since this mimics current behaviour. This can be updated once DM_GPIO is used everywhere. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-09-04Makefile: Move drivers/dma/ into drivers/MakefileSimon Glass1-1/+0
This rule should not be in the top-level Makefile. Move it, making use of the new LEGACY_DMA Kconfig. Signed-off-by: Simon Glass <sjg@chromium.org>