[Buildroot] [PATCH 2/3] uboot: separate out OMAP options and definitions
Ryan Barnett
rjbarnet at rockwellcollins.com
Thu May 1 19:32:10 UTC 2014
From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
In preparation for the introduction of Freescale PowerPC specific
U-Boot handling which is quite large, it makes sense to extract from
the main uboot.mk and the main U-Boot Config.in the highly
platform-specific options and definitions, and put them in separate
files.
Therefore, this commit starts to do so for the OMAP-specific bits. The
solution chosen for this split is:
boot/uboot/Config.in.<platform>
boot/uboot/uboot.mk.<platform>
The justifications for this choice are:
* Naming the files as Config.<platform>.in and uboot-<platform>.mk
and placing them directly in boot/uboot/ doesn't work, because
boot/common.mk is including all boot/*/*.mk, but we want
boot/uboot/uboot.mk to itself handle *when* its uboot-<platform>.mk
files are included, as they need to be included before the
$(generic-package) call.
* Placing the platform specific bits in a subdirectory as
boot/uboot/<platform>/uboot-<platform>.mk does not work because the
rule generation for uboot will not work when the call to
$(eval $(generic-package)) is made. This is because the rules names
are based on the _last_ Makefile that was parsed. The _last_ Makefile
parse will then be one of the last platform subdirectories. The rules
for uboot then become <platform> which is not what we want. For more
detailed information please see this email from the mailing list:
http://lists.busybox.net/pipermail/buildroot/2014-April/095476.html
* We need to have a different file extension than just .mk otherwise
the first point comes into effect and the easiest way around this is
to add the platform at the end for the extension.
[ryan: fixed the issues with including of the platform makefiles]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Signed-off-by: Ryan Barnett <rjbarnet at rockwellcollins.com>
CC: Yann E. MORIN <yann.morin.1998 at free.fr>
---
Please offer different suggestions for the naming of the platform
specific files. One other option that I thought of is to name the files
as uboot-<platform>.mak but I guess I preferred my name convention.
Regardless the best way to work around the problems I outlined below is
to have a different extentions than just .mk for moving the rules outside
of the main uboot.mk file.
---
boot/uboot/Config.in | 32 +-------------------------------
boot/uboot/Config.in.arm-omap | 31 +++++++++++++++++++++++++++++++
boot/uboot/uboot.mk | 26 ++------------------------
boot/uboot/uboot.mk.arm-omap | 29 +++++++++++++++++++++++++++++
4 files changed, 63 insertions(+), 55 deletions(-)
create mode 100644 boot/uboot/Config.in.arm-omap
create mode 100644 boot/uboot/uboot.mk.arm-omap
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index 90437b5..757ba8d 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -135,37 +135,7 @@ config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME
U-Boot, if it is not one of the default names. For example:
u-boot_magic.bin
-config BR2_TARGET_UBOOT_OMAP_IFT
- depends on BR2_TARGET_UBOOT_FORMAT_BIN
- depends on BR2_arm || BR2_armeb
- select BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS
- bool "produce a .ift signed image (OMAP)"
- help
- Use gpsign to produce an image of u-boot.bin signed with
- a Configuration Header for booting on OMAP processors.
- This allows U-Boot to boot without the need for an
- intermediate bootloader (e.g. x-loader) if it is written
- on the first sector of the boot medium.
- This only works for some media, such as NAND. Check your
- chip documentation for details. You might also want to
- read the documentation of gpsign, the tool that generates
- the .ift image, at:
- https://github.com/nmenon/omap-u-boot-utils/blob/master/README
-
-if BR2_TARGET_UBOOT_OMAP_IFT
-
-config BR2_TARGET_UBOOT_OMAP_IFT_CONFIG
- string "gpsign Configuration Header config file"
- help
- The Configuration Header (CH) config file defines the
- desired content of the CH for the signed image.
- It usually contains external RAM settings and
- possibly other external devices initialization.
- The omap-u-boot-utils software contains example
- configuration files for some boards:
- https://github.com/nmenon/omap-u-boot-utils/tree/master/configs
-
-endif
+source "boot/uboot/Config.in.arm-omap"
menuconfig BR2_TARGET_UBOOT_NETWORK
bool "Custom Network Settings"
diff --git a/boot/uboot/Config.in.arm-omap b/boot/uboot/Config.in.arm-omap
new file mode 100644
index 0000000..71bd514
--- /dev/null
+++ b/boot/uboot/Config.in.arm-omap
@@ -0,0 +1,31 @@
+config BR2_TARGET_UBOOT_OMAP_IFT
+ depends on BR2_TARGET_UBOOT_FORMAT_BIN
+ depends on BR2_arm || BR2_armeb
+ select BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS
+ bool "produce a .ift signed image (OMAP)"
+ help
+ Use gpsign to produce an image of u-boot.bin signed with
+ a Configuration Header for booting on OMAP processors.
+ This allows U-Boot to boot without the need for an
+ intermediate bootloader (e.g. x-loader) if it is written
+ on the first sector of the boot medium.
+ This only works for some media, such as NAND. Check your
+ chip documentation for details. You might also want to
+ read the documentation of gpsign, the tool that generates
+ the .ift image, at:
+ https://github.com/nmenon/omap-u-boot-utils/blob/master/README
+
+if BR2_TARGET_UBOOT_OMAP_IFT
+
+config BR2_TARGET_UBOOT_OMAP_IFT_CONFIG
+ string "gpsign Configuration Header config file"
+ help
+ The Configuration Header (CH) config file defines the
+ desired content of the CH for the signed image.
+ It usually contains external RAM settings and
+ possibly other external devices initialization.
+ The omap-u-boot-utils software contains example
+ configuration files for some boards:
+ https://github.com/nmenon/omap-u-boot-utils/tree/master/configs
+
+endif
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index da67706..49c9638 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -119,11 +119,6 @@ define UBOOT_BUILD_CMDS
$(UBOOT_MAKE_TARGET)
endef
-define UBOOT_BUILD_OMAP_IFT
- $(HOST_DIR)/usr/bin/gpsign -f $(@D)/u-boot.bin \
- -c $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))
-endef
-
define UBOOT_INSTALL_IMAGES_CMDS
cp -dpf $(@D)/$(UBOOT_BIN) $(BINARIES_DIR)/
$(if $(BR2_TARGET_UBOOT_SPL),
@@ -134,25 +129,6 @@ define UBOOT_INSTALL_IMAGES_CMDS
-o $(BINARIES_DIR)/uboot-env.bin $(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE))
endef
-define UBOOT_INSTALL_OMAP_IFT_IMAGE
- cp -dpf $(@D)/$(UBOOT_BIN_IFT) $(BINARIES_DIR)/
-endef
-
-ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y)
-# we NEED a config file unless we're at make source
-ifeq ($(filter source,$(MAKECMDGOALS)),)
-ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG)),)
-$(error No gpsign config file. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting)
-endif
-ifeq ($(wildcard $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))),)
-$(error gpsign config file $(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG) not found. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting)
-endif
-endif
-UBOOT_DEPENDENCIES += host-omap-u-boot-utils
-UBOOT_POST_BUILD_HOOKS += UBOOT_BUILD_OMAP_IFT
-UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_INSTALL_OMAP_IFT_IMAGE
-endif
-
ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y)
# we NEED a environment settings unless we're at make source
ifeq ($(filter source,$(MAKECMDGOALS)),)
@@ -166,6 +142,8 @@ endif
UBOOT_DEPENDENCIES += host-uboot-tools
endif
+include $(sort $(wildcard boot/uboot/uboot.mk.*))
+
$(eval $(generic-package))
ifeq ($(BR2_TARGET_UBOOT),y)
diff --git a/boot/uboot/uboot.mk.arm-omap b/boot/uboot/uboot.mk.arm-omap
new file mode 100644
index 0000000..7f0fb57
--- /dev/null
+++ b/boot/uboot/uboot.mk.arm-omap
@@ -0,0 +1,29 @@
+################################################################################
+#
+# uboot-arm-omap
+#
+################################################################################
+
+define UBOOT_BUILD_OMAP_IFT
+ $(HOST_DIR)/usr/bin/gpsign -f $(@D)/u-boot.bin \
+ -c $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))
+endef
+
+define UBOOT_INSTALL_OMAP_IFT_IMAGE
+ cp -dpf $(@D)/$(UBOOT_BIN_IFT) $(BINARIES_DIR)/
+endef
+
+ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y)
+# we NEED a config file unless we're at make source
+ifeq ($(filter source,$(MAKECMDGOALS)),)
+ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG)),)
+$(error No gpsign config file. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting)
+endif
+ifeq ($(wildcard $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))),)
+$(error gpsign config file $(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG) not found. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting)
+endif
+endif
+UBOOT_DEPENDENCIES += host-omap-u-boot-utils
+UBOOT_POST_BUILD_HOOKS += UBOOT_BUILD_OMAP_IFT
+UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_INSTALL_OMAP_IFT_IMAGE
+endif
--
1.9.0
More information about the buildroot
mailing list