guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: gnu: arm-trusted-firmware: Add backported patches to disable .bin


From: guix-commits
Subject: 01/04: gnu: arm-trusted-firmware: Add backported patches to disable .bin generation for rockchip platforms.
Date: Fri, 18 Oct 2019 15:12:49 -0400 (EDT)

vagrantc pushed a commit to branch master
in repository guix.

commit 475dac08a0523e699ee1a69a31f0811ae35b0f81
Author: Vagrant Cascadian <address@hidden>
Date:   Wed Oct 16 22:29:21 2019 -0700

    gnu: arm-trusted-firmware: Add backported patches to disable .bin generation
      for rockchip platforms.
    
    * gnu/packages/patches/arm-trusted-firmware-optional-bin-generation.patch: 
New
      patch.
    * gnu/packages/patches/arm-trusted-firmware-rockchip-disable-binary.patch: 
New
      patch.
    * gnu/packages/firmware (make-arm-trusted-firmware): Add patches.
    * gnu/local.mk (dist_patch_DATA): Add patches.
    
    Signed-off-by: Vagrant Cascadian <address@hidden>
---
 gnu/local.mk                                       |  2 +
 gnu/packages/firmware.scm                          |  3 +
 ...-trusted-firmware-optional-bin-generation.patch | 86 ++++++++++++++++++++++
 ...-trusted-firmware-rockchip-disable-binary.patch | 73 ++++++++++++++++++
 4 files changed, 164 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 3fbfe0f..83fb88c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -694,6 +694,8 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch  \
   %D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch  \
   %D%/packages/patches/apr-skip-getservbyname-test.patch       \
+  %D%/packages/patches/arm-trusted-firmware-optional-bin-generation.patch      
\
+  %D%/packages/patches/arm-trusted-firmware-rockchip-disable-binary.patch      
\
   %D%/packages/patches/aspell-default-dict-dir.patch           \
   %D%/packages/patches/aspell-gcc-compat.patch                 \
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch       \
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index c473ccd..3c2b359 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -389,6 +389,9 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for 
QEMU and KVM.")
                (url "https://github.com/ARM-software/arm-trusted-firmware.git";)
                (commit (string-append "v" version))))
         (file-name (git-file-name "arm-trusted-firmware" version))
+        (patches (search-patches
+                  "arm-trusted-firmware-optional-bin-generation.patch"
+                  "arm-trusted-firmware-rockchip-disable-binary.patch"))
        (sha256
         (base32
          "1gy5qskrjy8n3kxdcm1dx8b45l5b75n0pm8pq80wl6xic1ycy24r"))))
diff --git 
a/gnu/packages/patches/arm-trusted-firmware-optional-bin-generation.patch 
b/gnu/packages/patches/arm-trusted-firmware-optional-bin-generation.patch
new file mode 100644
index 0000000..b2b8a12
--- /dev/null
+++ b/gnu/packages/patches/arm-trusted-firmware-optional-bin-generation.patch
@@ -0,0 +1,86 @@
+From b02de4cb14ee9c2bfff53d36f0b7ec6a2065bc94 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christoph=20M=C3=BCllner?= <address@hidden>
+Date: Wed, 24 Apr 2019 09:45:30 +0200
+Subject: [PATCH 1/2] build_macros: Add mechanism to prevent bin generation.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On certain platforms it does not make sense to generate
+TF-A binary images. For example a platform could make use of serveral
+memory areas, which are non-continuous and the resulting binary
+therefore would suffer from the padding-bytes.
+Typically these platforms use the ELF image.
+
+This patch introduces a variable DISABLE_BIN_GENERATION, which
+can be set to '1' in the platform makefile to prevent the binary
+generation.
+
+Signed-off-by: Christoph Müllner <address@hidden>
+Change-Id: I62948e88bab685bb055fe6167d9660d14e604462
+---
+ docs/user-guide.rst          | 4 ++++
+ make_helpers/build_macros.mk | 9 +++++++++
+ make_helpers/defaults.mk     | 3 +++
+ 3 files changed, 16 insertions(+)
+
+diff --git a/docs/user-guide.rst b/docs/user-guide.rst
+index 0848769b3..19919f112 100644
+--- a/docs/user-guide.rst
++++ b/docs/user-guide.rst
+@@ -369,6 +369,10 @@ Common build options
+ -  ``DEBUG``: Chooses between a debug and release build. It can take either 0
+    (release) or 1 (debug) as values. 0 is the default.
+ 
++-  ``DISABLE_BIN_GENERATION``: Boolean option to disable the generation
++   of the binary image. If set to 1, then only the ELF image is built.
++   0 is the default.
++
+ -  ``DYN_DISABLE_AUTH``: Provides the capability to dynamically disable 
Trusted
+    Board Boot authentication at runtime. This option is meant to be enabled 
only
+    for development platforms. ``TRUSTED_BOARD_BOOT`` flag must be set if this
+diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk
+index 5d33954ad..2d41b2db1 100644
+--- a/make_helpers/build_macros.mk
++++ b/make_helpers/build_macros.mk
+@@ -438,6 +438,11 @@ else
+               --script $(LINKERFILE) $(BUILD_DIR)/build_message.o \
+               $(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS)
+ endif
++ifeq ($(DISABLE_BIN_GENERATION),1)
++      @${ECHO_BLANK_LINE}
++      @echo "Built $$@ successfully"
++      @${ECHO_BLANK_LINE}
++endif
+ 
+ $(DUMP): $(ELF)
+       $${ECHO} "  OD      $$@"
+@@ -451,7 +456,11 @@ $(BIN): $(ELF)
+       @${ECHO_BLANK_LINE}
+ 
+ .PHONY: bl$(1)
++ifeq ($(DISABLE_BIN_GENERATION),1)
++bl$(1): $(ELF) $(DUMP)
++else
+ bl$(1): $(BIN) $(DUMP)
++endif
+ 
+ all: bl$(1)
+ 
+diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
+index be84f7791..dc797ed1f 100644
+--- a/make_helpers/defaults.mk
++++ b/make_helpers/defaults.mk
+@@ -62,6 +62,9 @@ DEBUG                                := 0
+ # Build platform
+ DEFAULT_PLAT                  := fvp
+ 
++# Disable the generation of the binary image (ELF only).
++DISABLE_BIN_GENERATION                := 0
++
+ # Enable capability to disable authentication dynamically. Only meant for
+ # development platforms.
+ DYN_DISABLE_AUTH              := 0
+-- 
+2.20.1
+
diff --git 
a/gnu/packages/patches/arm-trusted-firmware-rockchip-disable-binary.patch 
b/gnu/packages/patches/arm-trusted-firmware-rockchip-disable-binary.patch
new file mode 100644
index 0000000..8819a7c
--- /dev/null
+++ b/gnu/packages/patches/arm-trusted-firmware-rockchip-disable-binary.patch
@@ -0,0 +1,73 @@
+From 42383dcf7db5debb9e183c7c5631974a4c2f91ea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christoph=20M=C3=BCllner?= <address@hidden>
+Date: Wed, 24 Apr 2019 09:52:54 +0200
+Subject: [PATCH 2/2] rockchip: Disable binary generation for all SoCs.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All supported Rockchip SoCs (RK3288, RK3328, RK3368 and RK3399)
+have non-continuous memory areas in the linker script with a huge
+gap between them. This results in extremely padded binary images
+with a size of about 4 GiB.
+
+E.g. on the RK3399 we have the following memory areas (and base addresses):
+RAM (0x1000), SRAM (0xFF8C0000), and PMUSRAM (0xFF3B0000).
+
+Consumers of the TF-A project (e.g. coreboot or U-Boot) therefore
+use the ELF image instead, which has a size of a few hundred kBs.
+
+In order to prevent the generation of a huge and useless file,
+this patch disables the binary generation for all affected Rockchip
+SoCs.
+
+Signed-off-by: Christoph Müllner <address@hidden>
+Change-Id: I4ac65bdf1e598c3e1a59507897d183aee9a36916
+---
+ plat/rockchip/rk3328/platform.mk | 2 ++
+ plat/rockchip/rk3368/platform.mk | 2 ++
+ plat/rockchip/rk3399/platform.mk | 2 ++
+ 3 files changed, 6 insertions(+)
+
+diff --git a/plat/rockchip/rk3328/platform.mk 
b/plat/rockchip/rk3328/platform.mk
+index 18b1b9419..01c5af6a2 100644
+--- a/plat/rockchip/rk3328/platform.mk
++++ b/plat/rockchip/rk3328/platform.mk
+@@ -8,6 +8,8 @@ RK_PLAT                        :=      plat/rockchip
+ RK_PLAT_SOC           :=      ${RK_PLAT}/${PLAT}
+ RK_PLAT_COMMON                :=      ${RK_PLAT}/common
+ 
++DISABLE_BIN_GENERATION        :=      1
++
+ include lib/libfdt/libfdt.mk
+ 
+ PLAT_INCLUDES         :=      -Idrivers/arm/gic/common/                       
\
+diff --git a/plat/rockchip/rk3368/platform.mk 
b/plat/rockchip/rk3368/platform.mk
+index d1315fc58..4ec36ce06 100644
+--- a/plat/rockchip/rk3368/platform.mk
++++ b/plat/rockchip/rk3368/platform.mk
+@@ -8,6 +8,8 @@ RK_PLAT                        :=      plat/rockchip
+ RK_PLAT_SOC           :=      ${RK_PLAT}/${PLAT}
+ RK_PLAT_COMMON                :=      ${RK_PLAT}/common
+ 
++DISABLE_BIN_GENERATION        :=      1
++
+ include lib/libfdt/libfdt.mk
+ 
+ PLAT_INCLUDES         :=      -I${RK_PLAT_COMMON}/                            
\
+diff --git a/plat/rockchip/rk3399/platform.mk 
b/plat/rockchip/rk3399/platform.mk
+index 101359856..25c498da8 100644
+--- a/plat/rockchip/rk3399/platform.mk
++++ b/plat/rockchip/rk3399/platform.mk
+@@ -8,6 +8,8 @@ RK_PLAT                :=      plat/rockchip
+ RK_PLAT_SOC   :=      ${RK_PLAT}/${PLAT}
+ RK_PLAT_COMMON        :=      ${RK_PLAT}/common
+ 
++DISABLE_BIN_GENERATION        :=      1
++
+ include lib/libfdt/libfdt.mk
+ 
+ PLAT_INCLUDES         :=      -I${RK_PLAT_COMMON}/                    \
+-- 
+2.20.1
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]