Skip to contentSkip to conversation

ARM Trusted Firmware packages

PATCH New Thomas Petazzoni 3 participants 12 messages Oct 15, 2016 – Oct 17, 2016 1 message not in the archive Arm/versatile express platform

lore
Share & tools
lore
#0 lore raw

v4 cover ARM Trusted Firmware packages

Hello,

Here is a new iteration of Joao Pinto's patches to add packages for the ARM Trusted Firmware bootloader, and the SCP Firmware used on the ARM Juno platform.

The vexpress-firmware that contains the SCP Firmware is specific to the ARM Juno.

The ARM Trusted Firmware package however can be used for other
platforms: lots of ARM64 platforms use ATF.

This new iteration improves a number of things compared to Joao's proposal, the detailed changes are visible in the packages commit log themselves.

Thomas

Joao Pinto (3):
vexpress-firmware: new package
arm-trusted-firmware: new package
configs/arm_juno: add the bootloader build

 board/arm/juno/readme.txt                          | 21 ++++++-
 boot/Config.in                                     |  2 +
 boot/arm-trusted-firmware/Config.in                | 65 ++++++++++++++++++++
 .../arm-trusted-firmware/arm-trusted-firmware.hash |  3 +
 boot/arm-trusted-firmware/arm-trusted-firmware.mk  | 69 ++++++++++++++++++++++
 boot/vexpress-firmware/Config.in                   |  6 ++
 boot/vexpress-firmware/vexpress-firmware.mk        | 20 +++++++
 configs/arm_juno_defconfig                         | 10 ++++
 8 files changed, 193 insertions(+), 3 deletions(-)
 create mode 100644 boot/arm-trusted-firmware/Config.in
 create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.hash
 create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.mk
 create mode 100644 boot/vexpress-firmware/Config.in
 create mode 100644 boot/vexpress-firmware/vexpress-firmware.mk
Signature · 1 line
2.7.4
#1 lore raw

PATCH v4 1/3 vexpress-firmware: new package

From: Joao Pinto <[email protected]>

This commit adds a new package for the SCP (System Control Processor) firmware for the ARM reference platforms. There will most likely be other SCP firmware provided by other vendors, but they might be provided in a different form, so we for now create a vendor-specific package named vexpress-firmware.

Since this firmware is used for booting, we create the package in boot/ and not in package/.

The package simply installs a single pre-built binary file into the images directory.

[Thomas:
- Rename the package from scpfirmware to vexpress-firmware.
- Add a Config.in prompt for the package.
- Remove the prompt-less Config.in options to select the Git repo and version. Since we only support the Vexpress firmware, there's no need for configurability here, so we just use the right Git repo/version in the .mk file.
- Use $(INSTALL) -D to install the firmware file.
- Add license information.]

---
 boot/Config.in                              |  1 +
 boot/vexpress-firmware/Config.in            |  6 ++++++
 boot/vexpress-firmware/vexpress-firmware.mk | 20 ++++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 boot/vexpress-firmware/Config.in
 create mode 100644 boot/vexpress-firmware/vexpress-firmware.mk
boot/Config.in +1 -0
index 677e5f0..6ffacc6 100644
@@ -15,6 +15,7 @@ source "boot/s500-bootloader/Config.in"
 source "boot/syslinux/Config.in"
 source "boot/ts4800-mbrboot/Config.in"
 source "boot/uboot/Config.in"
+source "boot/vexpress-firmware/Config.in"
 source "boot/xloader/Config.in"
 
 endmenu
boot/vexpress-firmware/Config.in new file +6 -0
new file mode 100644
index 0000000..8479df3
@@ -0,0 +1,6 @@
+config BR2_TARGET_VEXPRESS_FIRMWARE
+	bool "vexpress-firmware"
+	depends on BR2_aarch64
+	help
+	  Versatile Express firmware from ARM, with Linaro mods last
+	  change.
boot/vexpress-firmware/vexpress-firmware.mk new file +20 -0
new file mode 100644
index 0000000..693a9cb
@@ -0,0 +1,20 @@
+################################################################################
+#
+# vexpress-firmware
+#
+################################################################################
+
+VEXPRESS_FIRMWARE_VERSION = 901f81977c3b367a2e0bf3d6444be302822d97a3
+VEXPRESS_FIRMWARE_SITE = https://git.linaro.org/arm/vexpress-firmware.git
+VEXPRESS_FIRMWARE_SITE_METHOD = git
+# The only available license files are in PDF and RTF formats, and we
+# support only plain text.
+VEXPRESS_FIRMWARE_LICENSE = ARM EULA
+
+VEXPRESS_FIRMWARE_INSTALL_IMAGES = YES
+
+define VEXPRESS_FIRMWARE_INSTALL_IMAGES_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/SOFTWARE/bl30.bin $(BINARIES_DIR)/scp-fw.bin
+endef
+
+$(eval $(generic-package))
Signature · 1 line
2.7.4
#2 lore raw

PATCH v4 1/3 vexpress-firmware: new package

Thomas, Joao, All,

On 2016-10-15 10:03 +0200, Thomas Petazzoni spake thusly:

Quoted 24 lines

From: Joao Pinto <[email protected]>

This commit adds a new package for the SCP (System Control Processor) firmware for the ARM reference platforms. There will most likely be other SCP firmware provided by other vendors, but they might be provided in a different form, so we for now create a vendor-specific package named vexpress-firmware.

Since this firmware is used for booting, we create the package in boot/ and not in package/.

The package simply installs a single pre-built binary file into the images directory.

[Thomas:
- Rename the package from scpfirmware to vexpress-firmware.
- Add a Config.in prompt for the package.
- Remove the prompt-less Config.in options to select the Git repo and version. Since we only support the Vexpress firmware, there's no need for configurability here, so we just use the right Git repo/version in the .mk file.
- Use $(INSTALL) -D to install the firmware file.
- Add license information.]

Quoted 1 line

No hash file? ;-)

Regards,
Yann E. MORIN.

Quoted 65 lines
---
 boot/Config.in                              |  1 +
 boot/vexpress-firmware/Config.in            |  6 ++++++
 boot/vexpress-firmware/vexpress-firmware.mk | 20 ++++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 boot/vexpress-firmware/Config.in
 create mode 100644 boot/vexpress-firmware/vexpress-firmware.mk
boot/Config.in +1 -0
index 677e5f0..6ffacc6 100644
@@ -15,6 +15,7 @@ source "boot/s500-bootloader/Config.in"
 source "boot/syslinux/Config.in"
 source "boot/ts4800-mbrboot/Config.in"
 source "boot/uboot/Config.in"
+source "boot/vexpress-firmware/Config.in"
 source "boot/xloader/Config.in"
 
 endmenu
boot/vexpress-firmware/Config.in new file +6 -0
new file mode 100644
index 0000000..8479df3
@@ -0,0 +1,6 @@
+config BR2_TARGET_VEXPRESS_FIRMWARE
+	bool "vexpress-firmware"
+	depends on BR2_aarch64
+	help
+	  Versatile Express firmware from ARM, with Linaro mods last
+	  change.
boot/vexpress-firmware/vexpress-firmware.mk new file +20 -0
new file mode 100644
index 0000000..693a9cb
@@ -0,0 +1,20 @@
+################################################################################
+#
+# vexpress-firmware
+#
+################################################################################
+
+VEXPRESS_FIRMWARE_VERSION = 901f81977c3b367a2e0bf3d6444be302822d97a3
+VEXPRESS_FIRMWARE_SITE = https://git.linaro.org/arm/vexpress-firmware.git
+VEXPRESS_FIRMWARE_SITE_METHOD = git
+# The only available license files are in PDF and RTF formats, and we
+# support only plain text.
+VEXPRESS_FIRMWARE_LICENSE = ARM EULA
+
+VEXPRESS_FIRMWARE_INSTALL_IMAGES = YES
+
+define VEXPRESS_FIRMWARE_INSTALL_IMAGES_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/SOFTWARE/bl30.bin $(BINARIES_DIR)/scp-fw.bin
+endef
+
+$(eval $(generic-package))
Signature · 6 lines
2.7.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
author Applied
#3 lore raw

PATCH v4 1/3 vexpress-firmware: new package

In reply to Thomas Petazzoni

Hello,

Quoted 24 lines · Thomas Petazzoni

From: Joao Pinto <[email protected]>

This commit adds a new package for the SCP (System Control Processor) firmware for the ARM reference platforms. There will most likely be other SCP firmware provided by other vendors, but they might be provided in a different form, so we for now create a vendor-specific package named vexpress-firmware.

Since this firmware is used for booting, we create the package in boot/ and not in package/.

The package simply installs a single pre-built binary file into the images directory.

[Thomas:
- Rename the package from scpfirmware to vexpress-firmware.
- Add a Config.in prompt for the package.
- Remove the prompt-less Config.in options to select the Git repo and version. Since we only support the Vexpress firmware, there's no need for configurability here, so we just use the right Git repo/version in the .mk file.
- Use $(INSTALL) -D to install the firmware file.
- Add license information.]

Quoted 8 lines
---
 boot/Config.in                              |  1 +
 boot/vexpress-firmware/Config.in            |  6 ++++++
 boot/vexpress-firmware/vexpress-firmware.mk | 20 ++++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 boot/vexpress-firmware/Config.in
 create mode 100644 boot/vexpress-firmware/vexpress-firmware.mk

Applied to master, after adding a hash file, as suggested by Yann.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH v4 1/3 vexpress-firmware: new package

Hi Thomas and Yann,

Thanks for the review and extra-effort.

Joao

Quoted 40 lines · Thomas Petazzoni

Hello,

Quoted 24 lines · Thomas Petazzoni

From: Joao Pinto <[email protected]>

This commit adds a new package for the SCP (System Control Processor) firmware for the ARM reference platforms. There will most likely be other SCP firmware provided by other vendors, but they might be provided in a different form, so we for now create a vendor-specific package named vexpress-firmware.

Since this firmware is used for booting, we create the package in boot/ and not in package/.

The package simply installs a single pre-built binary file into the images directory.

[Thomas:
- Rename the package from scpfirmware to vexpress-firmware.
- Add a Config.in prompt for the package.
- Remove the prompt-less Config.in options to select the Git repo and version. Since we only support the Vexpress firmware, there's no need for configurability here, so we just use the right Git repo/version in the .mk file.
- Use $(INSTALL) -D to install the firmware file.
- Add license information.]

Quoted 8 lines
---
 boot/Config.in                              |  1 +
 boot/vexpress-firmware/Config.in            |  6 ++++++
 boot/vexpress-firmware/vexpress-firmware.mk | 20 ++++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 boot/vexpress-firmware/Config.in
 create mode 100644 boot/vexpress-firmware/vexpress-firmware.mk

Applied to master, after adding a hash file, as suggested by Yann.

Thomas

#5 lore raw

PATCH v4 1/3 vexpress-firmware: new package

In reply to Thomas Petazzoni

Hello,

boot/vexpress-firmware/vexpress-firmware.mk line 8

Quoted 2 lines · Thomas Petazzoni
boot/vexpress-firmware/vexpress-firmware.mk new file +2 -0
+VEXPRESS_FIRMWARE_VERSION = 901f81977c3b367a2e0bf3d6444be302822d97a3
+VEXPRESS_FIRMWARE_SITE = https://git.linaro.org/arm/vexpress-firmware.git

Joao, this is an old version of the firmware. Can you test with a newer version?

Indeed, this old version in fact doesn't have any license file in the tree. Newer versions have license.pdf and license.rtf files.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#6 lore raw

PATCH v4 1/3 vexpress-firmware: new package

Hi Thomas,

Quoted 9 lines · Thomas Petazzoni

Hello,

boot/vexpress-firmware/vexpress-firmware.mk line 8

Quoted 2 lines · Thomas Petazzoni
boot/vexpress-firmware/vexpress-firmware.mk new file +2 -0
+VEXPRESS_FIRMWARE_VERSION = 901f81977c3b367a2e0bf3d6444be302822d97a3
+VEXPRESS_FIRMWARE_SITE = https://git.linaro.org/arm/vexpress-firmware.git

Joao, this is an old version of the firmware. Can you test with a newer version?

This was the version suggested by Liviu Dudau.
@Liviu: Could you please confirm that there is more recent version that we can use?

Quoted 8 lines

Indeed, this old version in fact doesn't have any license file in the tree. Newer versions have license.pdf and license.rtf files.

Best regards,

Thomas

Thanks,
Joao

A message that is not in the archive (sent off-list or not yet received): [email protected]

#8 lore raw

PATCH v4 1/3 vexpress-firmware: new package

Hello,

Quoted 5 lines · Liviu Dudau
Quoted 2 lines

This was the version suggested by Liviu Dudau.
@Liviu: Could you please confirm that there is more recent version that we can use?

I think at that time that was the latest HEAD version. You can pick any later versions from Linaro. I suggest (for now) to use 16.08 tag.

Could you send a patch doing this?

It should also add the license.pdf file in the LICENSE_FILES variable.

Thanks a lot!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#9 lore raw

PATCH v4 2/3 arm-trusted-firmware: new package

In reply to Thomas Petazzoni

From: Joao Pinto <[email protected]>

[Thomas:
- Rename the package from atfirmware to arm-trusted-firmware, in order to match upstream.
- Remove option to apply custom patches. We no longer add such options, and use the global patch directory instead.
- Rename the repo URL/version options, in order to not be Git specific, in case support for fetching from other VCS is added later. This is consistent with how other bootloaders handle this.
- Add license information.
- Do not add a weird dependency on the vexpress-firmware package in Config.in. Instead, simply use it if it's available. Of course, some configurations (such as the juno configuration) will fail to build if vexpress-image is not enabled, but it's the responsibility of the user to create a config that builds.
- Simplify misc aspects in the .mk file.]

---
 boot/Config.in                                     |  1 +
 boot/arm-trusted-firmware/Config.in                | 65 ++++++++++++++++++++
 .../arm-trusted-firmware/arm-trusted-firmware.hash |  3 +
 boot/arm-trusted-firmware/arm-trusted-firmware.mk  | 69 ++++++++++++++++++++++
 4 files changed, 138 insertions(+)
 create mode 100644 boot/arm-trusted-firmware/Config.in
 create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.hash
 create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.mk
boot/Config.in +1 -0
index 6ffacc6..273c1c7 100644
@@ -4,6 +4,7 @@ source "boot/afboot-stm32/Config.in"
 source "boot/at91bootstrap/Config.in"
 source "boot/at91bootstrap3/Config.in"
 source "boot/at91dataflashboot/Config.in"
+source "boot/arm-trusted-firmware/Config.in"
 source "boot/barebox/Config.in"
 source "boot/boot-wrapper-aarch64/Config.in"
 source "boot/grub/Config.in"
boot/arm-trusted-firmware/Config.in new file +65 -0

65 lines not on this page · raw message

boot/arm-trusted-firmware/arm-trusted-firmware.hash new file +3 -0
new file mode 100644
index 0000000..e048e01
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 cbdd9b770ec1ab4933fc7f9f520daea5a364bb4dc964820fb017a0cf8c7df556 arm-trusted-firmware-v1.2.tar.gz
+md5 fac2c08bd74337fec2e14a98fc9f748f arm-trusted-firmware-v1.2.tar.gz
boot/arm-trusted-firmware/arm-trusted-firmware.mk new file +69 -0

69 lines not on this page · raw message

Signature · 1 line
2.7.4
#10 lore raw

PATCH v4 2/3 arm-trusted-firmware: new package

Thomas, Joao, All,

On 2016-10-15 10:03 +0200, Thomas Petazzoni spake thusly:

Quoted 19 lines

From: Joao Pinto <[email protected]>

[Thomas:
- Rename the package from atfirmware to arm-trusted-firmware, in order to match upstream.
- Remove option to apply custom patches. We no longer add such options, and use the global patch directory instead.
- Rename the repo URL/version options, in order to not be Git specific, in case support for fetching from other VCS is added later. This is consistent with how other bootloaders handle this.
- Add license information.
- Do not add a weird dependency on the vexpress-firmware package in Config.in. Instead, simply use it if it's available. Of course, some configurations (such as the juno configuration) will fail to build if vexpress-image is not enabled, but it's the responsibility of the user to create a config that builds.
- Simplify misc aspects in the .mk file.]

Quoted 9 lines
---
 boot/Config.in                                     |  1 +
 boot/arm-trusted-firmware/Config.in                | 65 ++++++++++++++++++++
 .../arm-trusted-firmware/arm-trusted-firmware.hash |  3 +
 boot/arm-trusted-firmware/arm-trusted-firmware.mk  | 69 ++++++++++++++++++++++
 4 files changed, 138 insertions(+)
 create mode 100644 boot/arm-trusted-firmware/Config.in
 create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.hash
 create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.mk

[--SNIP--]

Quoted 45 lines
boot/arm-trusted-firmware/arm-trusted-firmware.mk new file +39 -0
new file mode 100644
index 0000000..5acfab3
@@ -0,0 +1,69 @@
+################################################################################
+#
+# arm-trusted-firmware
+#
+################################################################################
+
+ARM_TRUSTED_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION))
+ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3c
+ARM_TRUSTED_FIRMWARE_LICENSE_FILES = license.md
+
+ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot
+
+ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom)
+# Handle custom ATF tarballs as specified by the configuration
+ARM_TRUSTED_FIRMWARE_TARBALL = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))
+ARM_TRUSTED_FIRMWARE_SITE = $(patsubst %/,%,$(dir $(ARM_TRUSTED_FIRMWARE_TARBALL)))
+ARM_TRUSTED_FIRMWARE_SOURCE = $(notdir $(ARM_TRUSTED_FIRMWARE_TARBALL))
+BR_NO_CHECK_HASH_FOR += $(ARM_TRUSTED_FIRMWARE_SOURCE)
+else ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y)
+ARM_TRUSTED_FIRMWARE_SITE = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL))
+ARM_TRUSTED_FIRMWARE_SITE_METHOD = git
+else
+ARM_TRUSTED_FIRMWARE_SITE = $(call github,ARM-software,arm-trusted-firmware,$(ARM_TRUSTED_FIRMWARE_VERSION))
+endif
+
+ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES
+
+ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM))
+
+ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
+	CROSS_COMPILE="$(TARGET_CROSS)" \
+	BL33=$(BINARIES_DIR)/u-boot.bin \
+	$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \
+	PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM) \
+	all fip
+
+ifeq ($(BR2_TARGET_VEXPRESS_FIRMWARE),y)
+ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin
+ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware

boot/arm-trusted-firmware/arm-trusted-firmware.mk line 49

Quoted 10 lines
boot/arm-trusted-firmware/arm-trusted-firmware.mk new file +10 -0
+endif
+
+define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) \
+		$(MAKE) -C $(@D) $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
+			$(ARM_TRUSTED_FIRMWARE_MAKE_TARGET)
+endef
+
+define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp -dpf $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/release/*.bin $(BINARIES_DIR)/

Usually, we do create the destination directory before copying a bunch files in there. But that one directory, we do guarantee it exists.

Regards,
Yann E. MORIN.

Quoted 27 lines
boot/arm-trusted-firmware/arm-trusted-firmware.mk new file +20 -0
+endef
+
+# Configuration ckeck
+ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR_BUILDING),yy)
+
+ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom)
+ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))),)
+$(error No tarball location specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))
+endif
+endif
+
+ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y)
+ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)),)
+$(error No repository specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)
+endif
+endif
+
+endif
+
+$(eval $(generic-package))
Signature · 6 lines
2.7.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#11 lore raw

PATCH v4 3/3 configs/arm_juno: add the bootloader build

In reply to Thomas Petazzoni

From: Joao Pinto <[email protected]>

Thanks to the recent addition of the vexpress-firmware and arm-trusted-firmware packages, this commit improves the ARM Juno defconfig to also build a bootloader.

---
 board/arm/juno/readme.txt  | 21 ++++++++++++++++++---
 configs/arm_juno_defconfig | 10 ++++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)
board/arm/juno/readme.txt +18 -3
index 9314bb0..b292d96 100644
@@ -8,8 +8,8 @@ These instructions apply to all models of the ARM Juno:
   - Juno r1 (supports PCIe)
   - Juno r2 (Big Cluster with A72)
 
-Buildroot will generate the kernel image, device tree blob and a
-minimal root filesystem.
+Buildroot will generate the kernel image, device tree blob, bootloader binaries
+and a minimal root filesystem.
 
 How to build it
 ===============
@@ -44,6 +44,20 @@ After building, you should obtain this tree:
     +-- juno-r1.dtb (if Juno r1 is used)
     +-- juno-r2.dtb (if Juno r2 is used)
     +-- Image
+    +-- bl1.bin
+    +-- bl2.bin
+    +-- bl2u.bin
+    +-- bl31.bin
+    +-- fip.bin
+    +-- scp-fw.bin
+    +-- u-boot.bin
+
+Preparing your rootfs
+======================
+
+Format your pen drive as a ext3 filesystem by executing:
+
+   $ mkfs.ext3 /dev/<your device>
 
 Preparing your rootfs
 ======================
@@ -113,7 +127,8 @@ Installing kernel image and DTB
 3. Open the software/ folder
 4. Copy the 'Image' file to software/
 5. Copy the 'juno-r1.dtb' (r1), 'juno.dtb' (r0) or juno-r2.dtb (r2) file to software/
-6. Press the red button in the front pannel of ARM Juno
+6. Copy the bootloader binaries (bl1.bin and fip.bin) to software/
+7. Press the red button in the front pannel of ARM Juno
 
 At this time, the board will erase the Flash entry for each new item and
 replace it with the lastest ones.
configs/arm_juno_defconfig +10 -0
index 75ed63c..8bc3a7a 100644
@@ -10,3 +10,13 @@ BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/juno/linux-juno-defconfig"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno arm/juno-r1 arm/juno-r2"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v1.2"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="juno"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="vexpress_aemv8a_juno"
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.03"
+BR2_TARGET_VEXPRESS_FIRMWARE=y
Signature · 1 line
2.7.4
#12 lore raw

PATCH v4 3/3 configs/arm_juno: add the bootloader build

Thomas, Joao, All,

On 2016-10-15 10:03 +0200, Thomas Petazzoni spake thusly:

Quoted 8 lines

From: Joao Pinto <[email protected]>

Thanks to the recent addition of the vexpress-firmware and arm-trusted-firmware packages, this commit improves the ARM Juno defconfig to also build a bootloader.

Regards,
Yann E. MORIN.

Quoted 76 lines
---
 board/arm/juno/readme.txt  | 21 ++++++++++++++++++---
 configs/arm_juno_defconfig | 10 ++++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)
board/arm/juno/readme.txt +18 -3
index 9314bb0..b292d96 100644
@@ -8,8 +8,8 @@ These instructions apply to all models of the ARM Juno:
   - Juno r1 (supports PCIe)
   - Juno r2 (Big Cluster with A72)
 
-Buildroot will generate the kernel image, device tree blob and a
-minimal root filesystem.
+Buildroot will generate the kernel image, device tree blob, bootloader binaries
+and a minimal root filesystem.
 
 How to build it
 ===============
@@ -44,6 +44,20 @@ After building, you should obtain this tree:
     +-- juno-r1.dtb (if Juno r1 is used)
     +-- juno-r2.dtb (if Juno r2 is used)
     +-- Image
+    +-- bl1.bin
+    +-- bl2.bin
+    +-- bl2u.bin
+    +-- bl31.bin
+    +-- fip.bin
+    +-- scp-fw.bin
+    +-- u-boot.bin
+
+Preparing your rootfs
+======================
+
+Format your pen drive as a ext3 filesystem by executing:
+
+   $ mkfs.ext3 /dev/<your device>
 
 Preparing your rootfs
 ======================
@@ -113,7 +127,8 @@ Installing kernel image and DTB
 3. Open the software/ folder
 4. Copy the 'Image' file to software/
 5. Copy the 'juno-r1.dtb' (r1), 'juno.dtb' (r0) or juno-r2.dtb (r2) file to software/
-6. Press the red button in the front pannel of ARM Juno
+6. Copy the bootloader binaries (bl1.bin and fip.bin) to software/
+7. Press the red button in the front pannel of ARM Juno
 
 At this time, the board will erase the Flash entry for each new item and
 replace it with the lastest ones.
configs/arm_juno_defconfig +10 -0
index 75ed63c..8bc3a7a 100644
@@ -10,3 +10,13 @@ BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/juno/linux-juno-defconfig"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno arm/juno-r1 arm/juno-r2"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v1.2"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="juno"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="vexpress_aemv8a_juno"
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.03"
+BR2_TARGET_VEXPRESS_FIRMWARE=y
Signature · 6 lines
2.7.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'