Package: arm-trusted-firmware / 2.12.1+dfsg-1

Metadata

Package Version Patches format
arm-trusted-firmware 2.12.1+dfsg-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
use ldflags with fiptool and cert create | (download)

tools/cert_create/Makefile | 2 1 + 1 - 0 !
tools/fiptool/Makefile | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

---
fix plat msg | (download)

tools/cert_create/src/main.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
upstream/0010 fix rk3399 m0 Makefile fix outside array bounds warn.patch | (download)

plat/rockchip/rk3399/drivers/m0/Makefile | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 [patch 010/159] fix(rk3399): m0: makefile: fix outside array bounds
 warning

Both GCC and clang actually complain about:

"""
In file included from src/dram.c:12:
src/dram.c: In function 'm0_main':
include/rk3399_mcu.h:15:34: warning: array subscript 0 is outside array bounds of 'volatile unsigned int[0]' [-Warray-bounds=]
   15 |                                 (*(volatile unsigned int *)(c)); __v; })
      |                                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/rk3399_mcu.h:16:69: note: in definition of macro 'mmio_write_32'
   16 | #define mmio_write_32(c, v)     ((*(volatile unsigned int *)(c)) = (v))
      |     ^
src/dram.c:67:23: note: in expansion of macro 'mmio_read_32'
   67 |                       mmio_read_32(PARAM_ADDR + PARAM_FREQ_SELECT));
      |                       ^~~~~~~~~~~~
cc1: note: source object is likely at address zero
In function 'ddr_set_pll',
    inlined from 'm0_main' at src/dram.c:71:2:
include/rk3399_mcu.h:14:40: warning: array subscript 0 is outside array bounds of 'volatile unsigned int[0]' [-Warray-bounds=]
   14 | #define mmio_read_32(c) ({unsigned int __v = \
      |                                        ^~~
include/rk3399_mcu.h:16:69: note: in definition of macro 'mmio_write_32'
   16 | #define mmio_write_32(c, v)     ((*(volatile unsigned int *)(c)) = (v))
      |     ^
src/dram.c:47:23: note: in expansion of macro 'mmio_read_32'
   47 |                       mmio_read_32(PARAM_ADDR + PARAM_DPLL_CON0));
      |                       ^~~~~~~~~~~~
In function 'm0_main':
cc1: note: source object is likely at address zero
In function 'ddr_set_pll',
    inlined from 'm0_main' at src/dram.c:71:2:
include/rk3399_mcu.h:14:40: warning: array subscript 0 is outside array bounds of 'volatile unsigned int[0]' [-Warray-bounds=]
   14 | #define mmio_read_32(c) ({unsigned int __v = \
      |                                        ^~~
include/rk3399_mcu.h:16:69: note: in definition of macro 'mmio_write_32'
   16 | #define mmio_write_32(c, v)     ((*(volatile unsigned int *)(c)) = (v))
      |     ^
src/dram.c:49:23: note: in expansion of macro 'mmio_read_32'
   49 |                       mmio_read_32(PARAM_ADDR + PARAM_DPLL_CON1));
      |                       ^~~~~~~~~~~~
In function 'm0_main':
cc1: note: source object is likely at address zero
include/rk3399_mcu.h:16:35: warning: array subscript 0 is outside array bounds of 'volatile unsigned int[0]' [-Warray-bounds=]
   16 | #define mmio_write_32(c, v)     ((*(volatile unsigned int *)(c)) = (v))
      |                                  ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/dram.c:80:9: note: in expansion of macro 'mmio_write_32'
   80 |         mmio_write_32(PARAM_ADDR + PARAM_M0_DONE, M0_DONE_FLAG);
      |         ^~~~~~~~~~~~~
cc1: note: source object is likely at address zero
"""

The global Makefile defines --param=min-pagesize=0 already, so let's
just apply the same fix for the m0 part of the RK3399 binary.

Suggested-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
upstream/0017 fix rcar layout fix tool build.patch | (download)

tools/renesas/rcar_layout_create/makefile | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 [patch 017/159] fix(rcar-layout): fix tool build

Since 2f1c5e7eb177 ("build: use GCC to link by default") the
code does not even compile with GCC14 on debian/unstable with
the following error:

/usr/lib/gcc-cross/aarch64-linux-gnu/14/../../../../aarch64-linux-gnu/bin/ld: bootparam_sa0.elf: error: PHDR segment not covered by LOAD segment
/usr/lib/gcc-cross/aarch64-linux-gnu/14/../../../../aarch64-linux-gnu/bin/ld: cert_header_sa6.elf: error: PHDR segment not covered by LOAD segment

Fix the tools build.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
upstream/0018 fix rcar3 drivers disable A B loader support by defa.patch | (download)

drivers/renesas/common/io/io_rcar.c | 18 16 + 2 - 0 !
plat/renesas/rcar/platform.mk | 7 7 + 0 - 0 !
2 files changed, 23 insertions(+), 2 deletions(-)

 [patch 018/159] fix(rcar3-drivers): disable a/b loader support by
 default

The A/B loader [1] meant to be used for convenient CI testing.
The tool is installed into the same location as SA0, where it
conveniently fits due to its size, and where it makes use of
non-volatile PMIC registers to alternate between loading and
starting A or B copy of the BL2. The PMIC registers are used
because CPU registers are lost across reset.

In case the B copy is loaded, it is loaded from 8 MiB offset
from start of HF. In case the B copy fails to boot, a simple
reset of the system will switch back to booting previously
known working A copy and allow recovery.

The A/B loader sets MFIS bit MFISBTSTSR_BOOT_PARTITION to
pass the information which A/B copy is currently booting on
to TFA, which then loads the follow up components from 0 MiB
or 8 MiB offset, depending on whether the A or B copy is being
booted.

The MFISBTSTSR_BOOT_PARTITION interferes with regular A/B
switching during boot from eMMC as the boot media, where
the BootROM also sets MFISBTSTSR_BOOT_PARTITION bit in case
the system boots from SECOND eMMC HW BOOT partition.

Since the A/B loader is meant as a development and CI tool,
isolate the A/B loader use to RPC HF only and furthermore
isolate it behind new RCAR_RPC_HYPERFLASH_ABLOADER option
which is disabled by default.

[1] https://github.com/marex/abloader

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>