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::544; helo=mail-ed1-x544.google.com; envelope-from=pete@akeo.ie; receiver=edk2-devel@lists.01.org Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) (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 E870E2194D387 for ; Mon, 28 Jan 2019 04:45:51 -0800 (PST) Received: by mail-ed1-x544.google.com with SMTP id g22so12873701edr.7 for ; Mon, 28 Jan 2019 04:45:51 -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=oa/+G24hpnJMbKuzrYo81nf7k2EEdjNo8nXsEn3UoLE=; b=cfxKs3K59yb+/Rs+FGCvOVWsGOSzZdM0tiJQri/wLuQeXDOsgV9sTLPYyCW51EW+mZ Bio5K47g6RIplXDTBXaxce1hYJdwx68PR08Y3ZNyXsrzQIVeMLtX008Wy41HbRrBizC1 Kh7sFm25W5TtoUb6Vc5Y8wym55re04oepjIkYYHi0aUWbIP/p4mfLVioihaNqB9+0I/f c/gdT5IomVUFt3zZiDuei5B+YhEC0gOFoUCmm5WaQ1J6/5hPJ0hj9p8yDZ9By0YMd/VP iS0nJtPCKKHGgVbf8AeP/ptEL536jNWxFnvhmw4myulVXA+wGnCFw6A9lIDxfqkfRcKm 3AyA== 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=oa/+G24hpnJMbKuzrYo81nf7k2EEdjNo8nXsEn3UoLE=; b=EK304BNj83Qx04VNa8eFEuJ5SiwQbdW99K0j9lvWowef3i4NJEHS9EXgME9pgX2ZEL R+6DbSsQhvapJN9bKiluWhRj3KswNkHu/GISK3QmZOTr9sQKvAwJlM9Gg90tSsxw+SXi DATRGQyahdf14wMxF82EbnuOawP6T5SQaZ/v9OrS1M0EHKKPuT23Bm42LYeYr39baTCd 1VkS6bsxvosMmLoswzMbwPwE3OvLX7EhhhynO8YCFfGQhItSYGpC8huebCQUhrLX0hXv 8UVj0SalAsN8effE7cAE6Z7UzMr8FZ+zWJA3/pJw9zAl6qlAUWQj5AMDMOcshc+T75JF tcZA== X-Gm-Message-State: AJcUukcosqFBSHW6w9OlI+or8mGB7zrvh+R9VH99bQVSpHJP4csMoX/b ctI+w65HdKGwUA/YCrNuGZEj7HA6874= X-Google-Smtp-Source: ALg8bN4xmwzKxsXVmwaJuOo8amptObscKWtSPPXQsacpkGGz1lSMo30qLQ4CklsmPV2lOhxfYFzD3Q== X-Received: by 2002:a17:906:4bd9:: with SMTP id x25mr7999851ejv.171.1548679549112; Mon, 28 Jan 2019 04:45:49 -0800 (PST) Received: from localhost.localdomain ([84.203.95.186]) by smtp.gmail.com with ESMTPSA id y16sm13757367edb.41.2019.01.28.04.45.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Jan 2019 04:45:48 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Date: Mon, 28 Jan 2019 12:44:43 +0000 Message-Id: <20190128124445.9868-22-pete@akeo.ie> X-Mailer: git-send-email 2.17.0.windows.1 In-Reply-To: <20190128124445.9868-1-pete@akeo.ie> References: <20190128124445.9868-1-pete@akeo.ie> Subject: [PATCH v3 edk2-platforms 21/23] Platform/Raspberry/Pi3 *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: Mon, 28 Jan 2019 12:45:52 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:45:52 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:45:52 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:45:52 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:45:52 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:45:52 -0000 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pete Batard --- Platform/Raspberry/Pi3/TrustedFirmware/License.txt | 26 ++++++++++++ Platform/Raspberry/Pi3/TrustedFirmware/README.md | 42 ++++++++++++++++++++ Platform/Raspberry/Pi3/TrustedFirmware/bl1.bin | Bin 0 -> 18801 bytes Platform/Raspberry/Pi3/TrustedFirmware/fip.bin | Bin 0 -> 41714 bytes 4 files changed, 68 insertions(+) diff --git a/Platform/Raspberry/Pi3/TrustedFirmware/License.txt b/Platform/Raspberry/Pi3/TrustedFirmware/License.txt new file mode 100644 index 000000000000..b98dc643227e --- /dev/null +++ b/Platform/Raspberry/Pi3/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/Raspberry/Pi3/TrustedFirmware/README.md b/Platform/Raspberry/Pi3/TrustedFirmware/README.md new file mode 100644 index 000000000000..862933f6f2ba --- /dev/null +++ b/Platform/Raspberry/Pi3/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 [latest ATF](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/Raspberry/Pi3/TrustedFirmware/bl1.bin b/Platform/Raspberry/Pi3/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/Raspberry/Pi3/TrustedFirmware/fip.bin b/Platform/Raspberry/Pi3/TrustedFirmware/fip.bin new file mode 100644 index 0000000000000000000000000000000000000000..eff727ca78dc07cbfe56f1b6717e93b91702c16a GIT binary patch literal 41714 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