Skip to contentSkip to conversation

u-boot additions for OMAP processors

PATCH Superseded Luca Ceresoli 2 participants 4 messages May 7, 2012 – May 8, 2012

v5 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

v5 cover u-boot additions for OMAP processors

Hi,

here's a resubmit (plus Arnout's Acked-by tag) of my previously-sent patches.

Changed in v5:
- Added Arnout's Acked-by tag.

Changed in v4:
- more verbose help text for config options;
- remove unneeded ifeq around the definition for UBOOT_BIN_IFT;
- produce an error message if the user-specified cfg file does not exist;
- use http URL, for helping people whose firewalls block git;
- do not skip installation if the files are already installed.

New in v3:
- update to the user-visible host packages policy discussed in mailing-list (Config.in.host etc) and listed in the Host Tools menu
- update to current GENTARGETS infrastructure
- bump to the latest git snapshot, which fixes compilation with host gcc 4.6

New in v2:
- xxx_SOURCE is useless with the git download method, remove it;
- OMAP_U_BOOT_UTILS_TARGETS is used only once, hardcoded it.

Luca

The following changes since commit 057c729c2438107b426576121bcf83f792734a6f:

external-toolchain: add support for Linaro 2012.04 (2012-05-07 17:08:37 +0200)

are available in the git repository at:
git://github.com/lucaceresoli/buildroot.git omap-u-boot-utils

Luca Ceresoli (2):
omap-u-boot-utils: add new host package
u-boot: build signed image for OMAP processors

 boot/uboot/Config.in                           |   32 ++++++++++++++++++++++++
 boot/uboot/uboot.mk                            |   25 ++++++++++++++++++
 package/Config.in.host                         |    1 +
 package/omap-u-boot-utils/Config.in.host       |    8 ++++++
 package/omap-u-boot-utils/omap-u-boot-utils.mk |   21 +++++++++++++++
 5 files changed, 87 insertions(+), 0 deletions(-)
 create mode 100644 package/omap-u-boot-utils/Config.in.host
 create mode 100644 package/omap-u-boot-utils/omap-u-boot-utils.mk
Signature · 1 line
1.7.5.4
#1 lore raw

PATCH v5 1/2 omap-u-boot-utils: add new host package

---
 package/Config.in.host                         |    1 +
 package/omap-u-boot-utils/Config.in.host       |    8 ++++++++
 package/omap-u-boot-utils/omap-u-boot-utils.mk |   21 +++++++++++++++++++++
 3 files changed, 30 insertions(+), 0 deletions(-)
 create mode 100644 package/omap-u-boot-utils/Config.in.host
 create mode 100644 package/omap-u-boot-utils/omap-u-boot-utils.mk
package/Config.in.host +1 -0
index 861b736..9fcfede 100644
@@ -1,6 +1,7 @@
 menu "Host utilities"
 
 source "package/lpc3250loader/Config.in.host"
+source "package/omap-u-boot-utils/Config.in.host"
 source "package/openocd/Config.in.host"
 source "package/sam-ba/Config.in.host"
 source "package/uboot-tools/Config.in.host"
package/omap-u-boot-utils/Config.in.host new file +8 -0
new file mode 100644
index 0000000..63fbdf5
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS
+	bool "host omap-u-boot-utils"
+	help
+	  U-Boot Utilities for Texas Instrument's OMAP platforms.
+	  This is a set of tools to control U-Boot from scripts, generate
+	  OMAP-specific signed image files and more.
+
+	  https://github.com/nmenon/omap-u-boot-utils
package/omap-u-boot-utils/omap-u-boot-utils.mk new file +21 -0
new file mode 100644
index 0000000..68ed17e
@@ -0,0 +1,21 @@
+#############################################################
+#
+# omap-u-boot-utils
+#
+#############################################################
+
+OMAP_U_BOOT_UTILS_VERSION = 8aff852322
+OMAP_U_BOOT_UTILS_SITE = http://github.com/nmenon/omap-u-boot-utils.git
+OMAP_U_BOOT_UTILS_SITE_METHOD = git
+
+define HOST_OMAP_U_BOOT_UTILS_BUILD_CMDS
+	$(MAKE) -C $(@D)
+endef
+
+define HOST_OMAP_U_BOOT_UTILS_INSTALL_CMDS
+	for f in gpsign pserial tagger ucmd ukermit ; do \
+		install -m 755 -D $(@D)/$$f ${HOST_DIR}/usr/bin/$$f ; \
+	done
+endef
+
+$(eval $(call GENTARGETS,host))
Signature · 1 line
1.7.5.4
#2 lore raw

PATCH v5 2/2 u-boot: build signed image for OMAP processors

In reply to Luca Ceresoli
---
 boot/uboot/Config.in |   32 ++++++++++++++++++++++++++++++++
 boot/uboot/uboot.mk  |   25 +++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 0 deletions(-)
boot/uboot/Config.in +32 -0
index f83cf4b..afc2f91 100644
@@ -99,6 +99,38 @@ config BR2_TARGET_UBOOT_FORMAT_LDR
 
 endchoice
 
+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
+
 menuconfig BR2_TARGET_UBOOT_NETWORK
 	bool "Custom Network Settings"
 	help
boot/uboot/uboot.mk +25 -0
index 3119092..9c85e69 100644
@@ -33,6 +33,7 @@ else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y)
 UBOOT_BIN          = u-boot.img
 else
 UBOOT_BIN          = u-boot.bin
+UBOOT_BIN_IFT      = ${UBOOT_BIN}.ift
 endif
 
 UBOOT_ARCH=$(KERNEL_ARCH)
@@ -88,12 +89,36 @@ 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),
 		cp -dpf $(@D)/$(BR2_TARGET_UBOOT_SPL_NAME) $(BINARIES_DIR)/)
 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
+
 $(eval $(call GENTARGETS))
 
 ifeq ($(BR2_TARGET_UBOOT),y)
Signature · 1 line
1.7.5.4
#3 lore raw

PATCH v5 2/2 u-boot: build signed image for OMAP processors

Hello,

Le Mon, 7 May 2012 22:32:04 +0200,
Luca Ceresoli <[email protected]> a ?crit :

Quoted 1 line

+UBOOT_BIN_IFT = ${UBOOT_BIN}.ift

This should be $(UBOOT_BIN).ift (i.e parenthesis instead of curly braces).

boot/uboot/uboot.mk define UBOOT_BUILD_CMDS · line 93

Quoted 2 lines
boot/uboot/uboot.mk +2 -0
+define UBOOT_BUILD_OMAP_IFT
+	${HOST_DIR}/usr/bin/gpsign -f $(@D)/u-boot.bin \

Ditto.

It of course works with {}, but we use () everywhere in BR, so let's keep it consistent.

I guess Peter can fix those minor comments when committing.

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com