From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:4864:20::541; helo=mail-ed1-x541.google.com; envelope-from=pete@akeo.ie; receiver=edk2-devel@lists.01.org Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C20732194D387 for ; Tue, 5 Feb 2019 08:26:38 -0800 (PST) Received: by mail-ed1-x541.google.com with SMTP id y56so3333100edd.11 for ; Tue, 05 Feb 2019 08:26:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akeo-ie.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Fw3hBThNVuU9Sgxndy5xZDJeNDk6cOl0NCsMfq00MBs=; b=1mQG5lde8Ns2aC/tN7Ybxpb+Ukc7tcgHK3I/HzeEKVHLDJxS9sk5gpNhC6wNw7ELV0 xDoXFd6TAh18ihl+SQuX8Ethvxassi0NyZXKUUsFmqnWDFrBbVi96eu9V1NhIDcpsAwO aZzH0gU0ibWQAP/nKZixys9M/GCBtJSUeF4ErZFeIwMIhw3cBjANkNpdh6asQzR7qiZW BqrF3cUDWL51f5vNPP1IJLobAkN88YLrp9ligQCZHuwGB/g3xXQafpqOHhFIKJNgvVET pkENVOPXw+ekdBOZ8oO17+OE78vPTI5UHJhPQtR6krj40o8WThHgNilRz/WTBQjsfp4K XHnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Fw3hBThNVuU9Sgxndy5xZDJeNDk6cOl0NCsMfq00MBs=; b=CcWz6zsQzx/UpjPdZI0WzHAGL6msJoDoCpKDvYN6b+eLGq7WwC54VJYZMGEXU9huU6 wAKcjhoYZQvT8gUkUfEigFtC0sasXOPcaPClfW89uZ0FeoclEa7PvXRyuRyAURpnK908 fpCg3MSQanaA3P62OqpSVg04Pe0nYGK/eYu5iHAUJtNd8Ee/avIUCqosXdzRlxPdIJs5 psDny+sMfpWzjd7SezehpzQoCcHTiGcj3T2hjvS4DdW3IdgrdPD/gSyqpAi4t2kFwaGN dYv3QSRvD1MsZMeqMi1v93vcXb9tkJWIaLrxcxJwi9Nwb5k6huKWTrHMVIHla3Nv/xgn g57g== X-Gm-Message-State: AHQUAuZWTkeixj/SiAdlRm29yowV8sc7L/CKvgnuOFoj22uFVfEkhy0G Pb8w2GydUzZhJImA3DyqhddI87jwHjQ= X-Google-Smtp-Source: AHgI3Ibtxz6RYH0ogXPzvybnCPgiLa1GZ53bSFVRBcQI+POU+PH0nSP8flt04UNeOfOkScwf22mkqA== X-Received: by 2002:a17:906:5e01:: with SMTP id n1mr3918653eju.99.1549383995648; Tue, 05 Feb 2019 08:26:35 -0800 (PST) Received: from localhost.localdomain ([84.203.58.139]) by smtp.gmail.com with ESMTPSA id j16sm3191430ejq.59.2019.02.05.08.26.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Feb 2019 08:26:34 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Date: Tue, 5 Feb 2019 16:25:33 +0000 Message-Id: <20190205162537.6472-19-pete@akeo.ie> X-Mailer: git-send-email 2.17.0.windows.1 In-Reply-To: <20190205162537.6472-1-pete@akeo.ie> References: <20190205162537.6472-1-pete@akeo.ie> Subject: [PATCH v5 edk2-platforms 18/22] Platform/RaspberryPi/RPi3 *NON-OSI*: Add ATF binaries X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 X-List-Received-Date: Tue, 05 Feb 2019 16:26:39 -0000 These ATF binaries were built from the ATF source (commit c3859557) with the custom RPi3 platform options detailed in the readme, and with no modification to the official source whatsoever. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pete Batard --- Platform/RaspberryPi/RPi3/TrustedFirmware/License.txt | 26 ++++++++++++ Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md | 42 ++++++++++++++++++++ Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin | Bin 0 -> 18801 bytes Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin | Bin 0 -> 41714 bytes 4 files changed, 68 insertions(+) diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/License.txt b/Platform/RaspberryPi/RPi3/TrustedFirmware/License.txt new file mode 100644 index 000000000000..b98dc643227e --- /dev/null +++ b/Platform/RaspberryPi/RPi3/TrustedFirmware/License.txt @@ -0,0 +1,26 @@ +Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + 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 IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 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 THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md b/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md new file mode 100644 index 000000000000..74bcec7d1f12 --- /dev/null +++ b/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md @@ -0,0 +1,42 @@ +ARM Trusted Firmware for Raspberry Pi 3 +======================================= + +The `bl1` and `fip` ATF binaries, found in this directory, were built from +the [official ATF source](https://github.com/ARM-software/arm-trusted-firmware) +(commit c3859557) using Linaro's GCC 5.5 compiler with: + +``` +export CROSS_COMPILE=/usr/src/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- +make PLAT=rpi3 PRELOADED_BL33_BASE=0x30000 RPI3_PRELOADED_DTB_BASE=0x10000 SUPPORT_VFP=1 RPI3_USE_UEFI_MAP=1 fip all +``` + +This results in the following memory mapping: + +``` + 0x00000000 +-----------------+ + | ROM | BL1 + 0x00010000 +-----------------+ + | DTB | (Loaded by the VideoCore) + 0x00020000 +-----------------+ + | FIP | + 0x00030000 +-----------------+ + | | + | UEFI PAYLOAD | + | | + 0x00200000 +-----------------+ + | Secure SRAM | BL2, BL31 + 0x00300000 +-----------------+ + | Secure DRAM | BL32 (Secure payload) + 0x00400000 +-----------------+ + | | + | | + | Non-secure DRAM | BL33 + | | + | | + 0x01000000 +-----------------+ + | | + | ... | + | | + 0x3F000000 +-----------------+ + | I/O | +``` diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin b/Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin new file mode 100644 index 0000000000000000000000000000000000000000..e25138828d0a4ddb24772abb1a60eefc334666b5 GIT binary patch literal 18801 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 literal 0 HcmV?d00001 diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin b/Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin new file mode 100644 index 0000000000000000000000000000000000000000..eff727ca78dc07cbfe56f1b6717e93b91702c16a GIT binary patch literal 41714 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