uboot: add support for patch files and URLs
PATCH v2 1/3 uboot: add support for patch files and URLs
The existing u-boot patch option only allowed directories to be specified. This adds support for URLs using similar code as found in linux/linux.mk. Local files are also handled now.
This change is useful for Intel Edison support, so that Intel's u-boot patch can be downloaded rather than stored in the Buildroot source tree.
---
Changes v1 -> v2:
- Switch to linux.mk approach to patches (suggested by Thomas Petazzoni)
boot/uboot/Config.in | 10 ++++++++++ boot/uboot/uboot.mk | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+)
boot/uboot/Config.in +10 -0
@@ -79,6 +79,16 @@ config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR Most users may leave this empty +config BR2_TARGET_UBOOT_PATCH + string "Custom U-Boot patches" + help + A space-separated list of patches to apply to U-Boot. + Each patch can be described as an URL, a local file path, + or a directory. In the case of a directory, all files + matching *.patch in the directory will be applied. + + Most users may leave this empty + choice prompt "U-Boot binary format" default BR2_TARGET_UBOOT_FORMAT_BIN
boot/uboot/uboot.mk +20 -0
@@ -93,6 +93,8 @@ endef UBOOT_POST_EXTRACT_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE +# Prior to Buildroot 2015.05, only patch directories were supported. New +# configurations use BR2_TARGET_UBOOT_PATCH instead. ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),) define UBOOT_APPLY_CUSTOM_PATCHES $(APPLY_PATCHES) $(@D) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) \*.patch
@@ -101,6 +103,24 @@ endef UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_CUSTOM_PATCHES endif +# Analogous code exists in linux/linux.mk. Basically, the generic +# package infrastructure handles downloading and applying remote +# patches. Local patches are handled depending on whether they are +# directories or files. +UBOOT_PATCHES = $(call qstrip,$(BR2_TARGET_UBOOT_PATCH)) +UBOOT_PATCH = $(filter ftp://% http://% https://%,$(UBOOT_PATCHES)) + +define UBOOT_APPLY_LOCAL_PATCHES + for p in $(filter-out ftp://% http://% https://%,$(UBOOT_PATCHES)) ; do \ + if test -d $$p ; then \ + $(APPLY_PATCHES) $(@D) $$p \*.patch || exit 1 ; \ + else \ + $(APPLY_PATCHES) $(@D) `dirname $$p` `basename $$p` || exit 1; \ + fi \ + done +endef +UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_LOCAL_PATCHES + define UBOOT_CONFIGURE_CMDS $(TARGET_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \
--
1.9.1
PATCH v2 2/3 uboot: deprecate BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR
Users should use BR2_TARGET_UBOOT_PATCH instead.
---
Changes v1 -> v2:
- Made BR2_TARGET_UBOOT_PATCH naming consistent with kernel naming, since using linux.mk patch strategy now
boot/uboot/Config.in | 3 +++ 1 file changed, 3 insertions(+)
boot/uboot/Config.in +3 -0
@@ -71,6 +71,7 @@ config BR2_TARGET_UBOOT_VERSION if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR + depends on BR2_DEPRECATED_SINCE_2015_05 string "custom patch dir" help If your board requires custom patches, add the path to the
@@ -79,6 +80,8 @@ config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR Most users may leave this empty + NOTE: Use BR2_TARGET_UBOOT_PATCH instead. + config BR2_TARGET_UBOOT_PATCH string "Custom U-Boot patches" help
--
1.9.1
PATCH v2 3/3 altera: update use of BR2_TARGET_UBOOT_PATCH_DIR
In reply to Frank HunlethUse BR2_TARGET_UBOOT_PATCH now that BR2_TARGET_UBOOT_PATCH_DIR is deprecated.
---
Changes v1 -> v2:
- After switch to linux.mk style, patch directories are supported again
- Actually tested this patch this time. It works - at least the patch applies and the altera_sockit configuration builds.
configs/altera_sockit_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
configs/altera_sockit_defconfig +1 -1
@@ -31,7 +31,7 @@ BR2_TARGET_UBOOT_BOARDNAME="socfpga_cyclone5" BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.rocketboards.org/u-boot-socfpga.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_acds13.0sp1" -BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR="board/altera/sockit" +BR2_TARGET_UBOOT_PATCH="board/altera/sockit" BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.bin"
--
1.9.1
PATCH v2 1/3 uboot: add support for patch files and URLs
In reply to Frank HunlethDear Frank Hunleth,
Quoted 11 lines · Frank Hunleth
The existing u-boot patch option only allowed directories to be specified. This adds support for URLs using similar code as found in
linux/linux.mk. Local files are also handled now.This change is useful for Intel Edison support, so that Intel's u-boot patch can be downloaded rather than stored in the Buildroot source tree.
Signed-off-by Frank Hunleth <[email protected]>---
Changes v1 -> v2:
- Switch to linux.mk approach to patches (suggested by Thomas Petazzoni)
All three patches applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com