new packages: atfirmware and scpfirmware
v3 cover new packages: atfirmware and scpfirmware
This patch adds to buildroot an important package for ARM64 based development
boards: The ARM Trusted Firmware (atfirmware).
It also adds the scpfirmware which is a hidden package to get the System Control Processor (SCP) binary to be included in the bootloader (fip image), which is a requirement for ARM Juno's board. With this 2 packages, Juno gets fully supported in the Buildroot.
Joao Pinto (3):
new package: atfirmware
new package: scpfirmware
configs: add u-boot and atfirmware options to juno
board/arm/juno/readme.txt | 21 ++++++++-- boot/Config.in | 2 + boot/atfirmware/Config.in | 70 +++++++++++++++++++++++++++++++++ boot/atfirmware/atfirmware.hash | 5 +++ boot/atfirmware/atfirmware.mk | 85 +++++++++++++++++++++++++++++++++++++++++ boot/scpfirmware/Config.in | 23 +++++++++++ boot/scpfirmware/scpfirmware.mk | 18 +++++++++ configs/arm_juno_defconfig | 9 +++++ 8 files changed, 230 insertions(+), 3 deletions(-) create mode 100644 boot/atfirmware/Config.in create mode 100644 boot/atfirmware/atfirmware.hash create mode 100644 boot/atfirmware/atfirmware.mk create mode 100644 boot/scpfirmware/Config.in create mode 100644 boot/scpfirmware/scpfirmware.mk
Signature · 1 line
1.8.1.5
PATCH RESEND v3 1/3 new package: atfirmware
This patch adds a new package to buildroot: atfirmware.
It is used to generate the necessary bootlader binaries for ARM64 boards.
---
Changes v2->v3:
- atfirmware and scpfirmware were broken into 2 patches Changes v1->v2:
- Nothing changed (just to keep up with patch set version).
boot/Config.in | 1 + boot/atfirmware/Config.in | 70 +++++++++++++++++++++++++++++++++ boot/atfirmware/atfirmware.hash | 5 +++ boot/atfirmware/atfirmware.mk | 85 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 boot/atfirmware/Config.in create mode 100644 boot/atfirmware/atfirmware.hash create mode 100644 boot/atfirmware/atfirmware.mk
boot/Config.in +1 -0
@@ -3,6 +3,7 @@ menu "Bootloaders" source "boot/at91bootstrap/Config.in" source "boot/at91bootstrap3/Config.in" source "boot/at91dataflashboot/Config.in" +source "boot/atfirmware/Config.in" source "boot/barebox/Config.in" source "boot/boot-wrapper-aarch64/Config.in" source "boot/grub/Config.in"
boot/atfirmware/Config.in new file +70 -0
70 lines not on this page · raw message
boot/atfirmware/atfirmware.hash new file +5 -0
@@ -0,0 +1,5 @@ +# From https://github.com/ARM-software/arm-trusted-firmware/archive/v1.2.tar.gz +# Locally calculated +sha256 fac2c08bd74337fec2e14a98fc9f748f atfirmware-v1.2.tar.gz +md5 fac2c08bd74337fec2e14a98fc9f748f atfirmware-v1.2.tar.gz +
boot/atfirmware/atfirmware.mk new file +85 -0
85 lines not on this page · raw message
Signature · 1 line
1.8.1.5
PATCH RESEND v3 2/3 new package: scpfirmware
In reply to Joao PintoThis patch adds a new package to buildroot: scpfirmware. It is a hidden package that only serves to get the scp binary from Linaro repository to be used by ATFirmware (Juno requirement).
---
Changes v2->v3:
- atfirmware and scpfirmware were broken into 2 patches Changes v1->v2:
- Nothing changed (just to keep up with patch set version).
boot/Config.in | 1 + boot/scpfirmware/Config.in | 23 +++++++++++++++++++++++ boot/scpfirmware/scpfirmware.mk | 18 ++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 boot/scpfirmware/Config.in create mode 100644 boot/scpfirmware/scpfirmware.mk
boot/Config.in +1 -0
@@ -12,6 +12,7 @@ source "boot/gummiboot/Config.in" source "boot/lpc32xxcdl/Config.in" source "boot/mxs-bootlets/Config.in" source "boot/syslinux/Config.in" +source "boot/scpfirmware/Config.in" source "boot/uboot/Config.in" source "boot/xloader/Config.in"
boot/scpfirmware/Config.in new file +23 -0
@@ -0,0 +1,23 @@ +config BR2_TARGET_SCPFIRMWARE + bool + depends on BR2_aarch64 + +if BR2_TARGET_SCPFIRMWARE + +config BR2_TARGET_SCPFIRMWARE_VERSION + string + default BR2_TARGET_SCPFIRMWARE_CUSTOM_GIT_VERSION + +config BR2_TARGET_SCPFIRMWARE_CUSTOM_GIT + bool + default "y" + +config BR2_TARGET_SCPFIRMWARE_CUSTOM_GIT_REPO_URL + string + default "https://git.linaro.org/arm/vexpress-firmware.git" + +config BR2_TARGET_SCPFIRMWARE_CUSTOM_GIT_VERSION + string + default "901f81977c3b367a2e0bf3d6444be302822d97a3" + +endif
boot/scpfirmware/scpfirmware.mk new file +18 -0
@@ -0,0 +1,18 @@ +################################################################################ +# +# System Control Processor (SCP) Firmware +# +################################################################################ + +SCPFIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_SCPFIRMWARE_VERSION)) +SCPFIRMWARE_SITE = $(call qstrip,$(BR2_TARGET_SCPFIRMWARE_CUSTOM_GIT_REPO_URL)) +SCPFIRMWARE_SITE_METHOD = git + +SCPFIRMWARE_INSTALL_IMAGES = YES + +define SCPFIRMWARE_INSTALL_IMAGES_CMDS + mv $(@D)/SOFTWARE/bl30.bin $(@D)/SOFTWARE/scp-fw.bin ; \ + cp -dpf $(@D)/SOFTWARE/scp-fw.bin $(BINARIES_DIR)/ ; +endef + +$(eval $(generic-package))
Signature · 1 line
1.8.1.5
PATCH RESEND v3 3/3 configs: add u-boot and atfirmware options to juno
In reply to Joao PintoThis patch adds the necessary U-Boot and ATFirmware configurations to the Juno's defconfig and updates the readme.txt file regarding the new output binaries.
---
Changes v2->v3:
- Nothing changed (just to keep up with patch set version) Changes v1->v2:
- Changed BR2_TARGET_UBOOT_DEFCONFIG to BR2_TARGET_UBOOT_BOARDNAME
- Fixed a typo in the e-mail subject
board/arm/juno/readme.txt | 21 ++++++++++++++++++--- configs/arm_juno_defconfig | 9 +++++++++ 2 files changed, 27 insertions(+), 3 deletions(-)
board/arm/juno/readme.txt +18 -3
@@ -7,8 +7,8 @@ These instructions apply to all models of the ARM Juno: - Juno r0 (does not support PCIe) - Juno r1 (supports PCIe) -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 ===============
@@ -42,6 +42,20 @@ After building, you should obtain this tree: +-- juno.dtb (if Juno r0 is used) +-- juno-r1.dtb (if Juno r1 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 ======================
@@ -98,7 +112,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) or the 'juno.dtb' (r0) 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 +9 -0
@@ -12,3 +12,12 @@ 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" +BR2_TARGET_ATFIRMWARE=y +BR2_TARGET_ATFIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ATFIRMWARE_CUSTOM_GIT_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git" +BR2_TARGET_ATFIRMWARE_CUSTOM_GIT_VERSION="v1.2" +BR2_TARGET_ATFIRMWARE_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"
Signature · 1 line
1.8.1.5