From nobody Mon Feb 9 18:18:34 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+52112+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+52112+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1576063464; cv=none; d=zohomail.com; s=zohoarc; b=QSe0cGsGqIdk+Q1/3Z9di8IvvA0jiVsv03OQ/qu7rpEkpgwedP73UsRqRrbgGqSXquPBL2h6ZoKlYlJxtA1ZBxU8ohUCw2FZ41YtrOr4Mpd/XoKm7POnCDLK/FqO8pjzyYSg0X7RzBzcPkf6sZzDJFmI+pRmYytjq1x3tJnw5io= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1576063464; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=ZigUdvuJYBOKNroOyY8i2hNEQ8kR6DSnkCYbCMDUCws=; b=DK2NBP4e1alcnH65YHLSAJo11qsPs7Y9g4Yt2LftxuYlPP8sWotVyy9i+DZACpPJBWQM6cSmrGvQA3na2cGma8ABH18EOHHhr3MhQuCgBQ/L30aIy/V7r7Ve1PicCQn+DMdPo4b4yiDSZ7J1SU4G7OnpY+/Ml9FMMlXo/fzfcik= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+52112+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1576063464632840.9375585714206; Wed, 11 Dec 2019 03:24:24 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 66KcYY1788612xO4Im95Yvy9; Wed, 11 Dec 2019 03:24:23 -0800 X-Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by mx.groups.io with SMTP id smtpd.web11.2218.1576063461533246565 for ; Wed, 11 Dec 2019 03:24:22 -0800 X-Received: by mail-wm1-f68.google.com with SMTP id f129so6575740wmf.2 for ; Wed, 11 Dec 2019 03:24:21 -0800 (PST) X-Gm-Message-State: yP5rOJJtRrCbqysRbWBZgOXXx1787277AA= X-Google-Smtp-Source: APXvYqxMny2gcORmgIu5eyqV1jTRinbKYfCWX78vlUi7cNe/vhKvcofFz3DWKqn4borGqyotmGsoBg== X-Received: by 2002:a7b:c552:: with SMTP id j18mr3073540wmk.123.1576063458146; Wed, 11 Dec 2019 03:24:18 -0800 (PST) X-Received: from localhost.localdomain ([84.203.45.230]) by smtp.gmail.com with ESMTPSA id f1sm1902145wru.6.2019.12.11.03.24.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Dec 2019 03:24:17 -0800 (PST) From: "Pete Batard" To: devel@edk2.groups.io Cc: ard.biesheuvel@linaro.org, leif.lindholm@linaro.org, philmd@redhat.com Subject: [edk2-devel] [edk2-non-osi][PATCH 2/2] Platforms/RPi4: Add Trusted Firmware binaries Date: Wed, 11 Dec 2019 11:24:00 +0000 Message-Id: <20191211112400.1872-3-pete@akeo.ie> In-Reply-To: <20191211112400.1872-1-pete@akeo.ie> References: <20191211112400.1872-1-pete@akeo.ie> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,pete@akeo.ie Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1576063463; bh=59cpS09/F60gxLrVF9kHHe90ZWVTSsDqtzylda5/uvo=; h=Cc:Date:From:Reply-To:Subject:To; b=EVtwoJBpK1rxfsJ5Zxbom55YoTnChTv1KG3WhO7qZ2djCsdwz9OWUgTPL4Vhf7WpnYh OtElpNiwERiDLhl6UnQa03j/ELR9ZrJe4bs1Atnhm9C/BpJyDhjG4CpBdHpdJppLOfqX6 UtJ/8oQMDiVDBKiBn+R9DWVkjSjr//nEF10= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Similar to what is the case with the Raspberry Pi 3, the Raspberry Pi 4 UEFI firmware requires the provision of a Trusted Firmware binary (TF-A). The binary is built for a dtb base address of 0x00020000 and a UEFI payload base address of 0x00030000. Binaries are built using a custom version of TF-A (the source of which is documented in the Readme), since the official repository is missing a fix to get proper baudrate when using a recent version of start4.elf, as we as the ability to switch between PL011 and mini UART. We are currently working with TF-A to upstream both these fixes so that we can switch to binaries built from official source at a later date. In order to provide the ability to switch serial I/O controllers, a feature we will be adding to the RPi4 UEFI Firmware, and not lose TF-A output, two binaries are provided, one for mini UART output and one for PL011 output. Signed-off-by: Pete Batard --- Platform/RaspberryPi/RPi4/TrustedFirmware/License.txt | 26 ++++++++= ++++++++++++ Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md | 12 +++++++++ Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin | Bin 0 -> 410= 72 bytes Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin | Bin 0 -> 410= 72 bytes 4 files changed, 38 insertions(+) diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/License.txt b/Platfo= rm/RaspberryPi/RPi4/TrustedFirmware/License.txt new file mode 100644 index 000000000000..48429979fec2 --- /dev/null +++ b/Platform/RaspberryPi/RPi4/TrustedFirmware/License.txt @@ -0,0 +1,26 @@ +Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved. + +Redistribution and use in source and binary forms, with or without modific= ation, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, t= his + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice= , this + list of conditions and the following disclaimer in the documentation and= /or + other materials provided with the distribution. + +* Neither the name of ARM nor the names of its contributors may be used to + endorse or promote products derived from this software without specific = prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS= " AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPL= IED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIAB= LE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAM= AGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICE= S; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AN= D ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF T= HIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md b/Platform= /RaspberryPi/RPi4/TrustedFirmware/Readme.md new file mode 100644 index 000000000000..7f1749dfc3a0 --- /dev/null +++ b/Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md @@ -0,0 +1,12 @@ +ARM Trusted Firmware for Raspberry Pi 4 +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +The `bl31_#####.bin` TF-A binaries found in this repository were built on = a Debian 10.2 system +from https://github.com/pbatard/arm-trusted-firmware/tree/pi4 (pi4 branch)= using the command: + +``` +make PLAT=3Drpi4 RPI3_PRELOADED_DTB_BASE=3D0x20000 PRELOADED_BL33_BASE=3D0= x30000 SUPPORT_VFP=3D1 [RPI3_USE_PL011_UART=3D1] DEBUG=3D0 all +``` + +The only difference between these firmwares is that the `RPI3_USE_PL011_UA= RT=3D1` option was added +to build `bl31_pl011.bin` so that it uses PL011 for serial output rather t= han the "mini UART". diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin b/= Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin new file mode 100644 index 0000000000000000000000000000000000000000..e53aa0ef40fd2a8a66fee22439d= e2860813aa42f GIT binary patch literal 41072 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 L7sBM91MmL=3DwAOXu literal 0 HcmV?d00001 --=20 2.21.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#52112): https://edk2.groups.io/g/devel/message/52112 Mute This Topic: https://groups.io/mt/68147438/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-