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::52a; helo=mail-ed1-x52a.google.com; envelope-from=pete@akeo.ie; receiver=edk2-devel@lists.01.org Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (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 23E2921197056 for ; Mon, 10 Dec 2018 04:39:07 -0800 (PST) Received: by mail-ed1-x52a.google.com with SMTP id y56so9304589edd.11 for ; Mon, 10 Dec 2018 04:39:07 -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; bh=OY53paksCXRzIi+lRU/4uUfLEKblb08CkTg3OR2ZbkQ=; b=fcYNaLXiP9dIAJij69zhtze8duk4HMg5QsDW9hbg1+PCu/3TeMvRv68A8EdipxspZY 1b4Z7g2zGJ/Yjkc1c38/WdxNmNJQGhdDoePfJNP5mc/mpN9pJXoFHnOkSIoe62VtQNZF /VNEpcn6WWfp19t1lmMK5ahk2mGq/RT1pb+oEswd2eKraVRCisrNMECHMULGdFAqXc1P 0RdUFtzLMF9ODaU8pKRJdn5m+gXTAarNnwm42ylg1yVKkuRhUsnzXxoytIpu0H7I6VRw FoMO7RlTsKsxBou1rqRxrJzqooVmy8oQHMvyBD+PBuEaahBHyQELCDWID9KWpwGcxZYL fHMA== 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; bh=OY53paksCXRzIi+lRU/4uUfLEKblb08CkTg3OR2ZbkQ=; b=NtPHOhCNELts0GyezdwQWGApn3dir+V+J8IIq20j/QobxC8scPcFJV8Yl0vBufQrlP daLkCWaMl1QzPX/4LR4soJEVbuCAlZ2nhzUIKy/Vw5/HDEcbxV1GVgN3JO/wjj6jPm+u GRx0T7yg54R/6ws1Ayfo00NNMkO+zlhJhsPd/8yZqhHmLpaIyIVECv4dVAWd7jL8BH5M 2rTnq8SGvpX4Nn6Pro+EMeGv21cLqgc6H1u572PTjv/4dxY1QHpn4GmQFKcSBODA538u etom1C7EnsELJj2cqgXG+bR0MNYx8wjIg8XQPiT8Z7gT+A2bXvwrMW+5qVP7nEuH681/ fCIA== X-Gm-Message-State: AA+aEWa9/3fbWuvE8prUhBoVEEDcSlgHX4FtsMRGMGKM7ty/tPGPbIJ7 1FmUCVcgpd5Te6EwuwRbywJa14gjK+I= X-Google-Smtp-Source: AFSGD/UNAkDW9W6cq4MhpRog7mine3HPXaYGQE1Ql5M2QXrMNdb2Qgj4dZ8yY87/gf3iKdLV8ngOUA== X-Received: by 2002:a50:9977:: with SMTP id l52mr10778267edb.277.1544445544435; Mon, 10 Dec 2018 04:39:04 -0800 (PST) Received: from localhost.localdomain ([84.203.68.105]) by smtp.gmail.com with ESMTPSA id e14sm3296949edb.79.2018.12.10.04.39.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 10 Dec 2018 04:39:03 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Date: Mon, 10 Dec 2018 12:38:33 +0000 Message-Id: <20181210123853.4864-1-pete@akeo.ie> X-Mailer: git-send-email 2.17.0.windows.1 Subject: [PATCH v2 edk2-platforms 00/20] Platform/Broadcom: Add Raspberry Pi 3 support 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, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 X-List-Received-Date: Mon, 10 Dec 2018 12:39:08 -0000 Version History: * v2: Break down the content into logical entities of more manageable size. Please pay attention to the *NON-OSI* tagged patches, that should be applied to edk2-non-osi instead of edk2-platforms. Preamble: Because of its price point, ease of use and availability, the Raspberry Pi is undeniably one of the most successful ARM platform in existence today. Its widespread adoption therefore makes it a perfect fit as an EDK2 platform. However, up until now, the Raspberry Pi hasn't been supported as a bona fide platform in our repository. This series of patches remedies that by introducing the Raspberry Pi 3 Model B and Model B+ as a viable EDK2 platforms. With regards to the latter: * Even though the ARM Trusted Firmware binary blobs are subject to a BSD-3-Clause licence, which may be compatible with the EDK2 one, we chose to follow the lead of other platforms that provide ATF binaries in non OSI. * The Device Tree binaries (and source descriptors) are subject to a GPLv2 license, as per the ones published by the Raspberry Pi Foundation. * The DwUsbHostDxe driver is subject to a GPLv2 license * The Logo source code is under an EDK2 license, but the logo itself, which we obtained authorisation to use from the Raspberry Pi Foundation itself, after detailing our planned usage, is subject to the trademark licensing terms put forward by the Raspberry Pi Foundation, and therefore we chose to move the whole Logo driver under non OSI. Additional Notes: * We chose to introduce the platform under Broadcom/Bcm283x/ as we consider first, that additional Broadcom platforms may be introduced, and second that even though only Bcm2837 (i.e. Pi 3) platforms are supported from the current RaspberryPiPkg, support may be added for Bcm2836 (Pi 2) in the future, hence our decision to use a generic Bcm283x/ subdirectory. * The ARM Trusted Firmware being used is a vanilla version built from the latest tree, as we worked with that project to get necessary patches integrated. * Detailed instructions on how to build and test the platform firmware are included in the Readme.md found at the root of the platform. * As detailed in the Readme, the resulting platform firmware has been successfully used to install and run Linux OSes, such as Ubuntu 18.10, as well as Windows 10 1809 (*full* UI version, not IoT). Regards, /Pete Pete Batard (16): Platform/Broadcom/RPi3: Add Reset and Memory Init libraries Platform/Broadcom/RPi3: Add Platform library Platform/Broadcom/RPi3: Add GPIO and RTC libraries Platform/Broadcom/RPi3: Add ACPI Tables Platform/Broadcom/RPi3: Add Boot Manager library Platform/Broadcom/RPi3: Add Interrupt and Device Tree drivers Platform/Broadcom/RPi3: Add Firmware driver Platform/Broadcom/RPi3: Add Display driver Platform/Broadcom/RPi3: Add Graphic Console driver Platform/Broadcom/RPi3: Add Base MMC driver Platform/Broadcom/RPi3: Add Arasan MMC driver Platform/Broadcom/RPi3: Add SD Host driver Platform/Broadcom/RPi3: Add SMBIOS driver Platform/Broadcom/RPi3: Add NV Storage driver Platform/Broadcom/RPi3: Add Platform Config driver Platform/Broadcom/RPi3: Add Raspberry Pi 3 Platform .../Bcm283x/AcpiTables/AcpiTables.inf | 51 + .../Broadcom/Bcm283x/AcpiTables/Csrt.aslc | 337 +++ .../Broadcom/Bcm283x/AcpiTables/Dbg2.aslc | 32 + Platform/Broadcom/Bcm283x/AcpiTables/Dsdt.asl | 523 +++++ .../Broadcom/Bcm283x/AcpiTables/Fadt.aslc | 50 + .../Broadcom/Bcm283x/AcpiTables/Gtdt.aslc | 31 + .../Broadcom/Bcm283x/AcpiTables/Madt.aslc | 60 + Platform/Broadcom/Bcm283x/AcpiTables/Pep.asl | 92 + Platform/Broadcom/Bcm283x/AcpiTables/Pep.c | 84 + Platform/Broadcom/Bcm283x/AcpiTables/Pep.h | 126 ++ .../Broadcom/Bcm283x/AcpiTables/Platform.h | 82 + Platform/Broadcom/Bcm283x/AcpiTables/Rhpx.asl | 201 ++ Platform/Broadcom/Bcm283x/AcpiTables/Sdhc.asl | 105 + Platform/Broadcom/Bcm283x/AcpiTables/Spcr.asl | 53 + Platform/Broadcom/Bcm283x/AcpiTables/Uart.asl | 155 ++ .../ArasanMmcHostDxe/ArasanMmcHostDxe.c | 730 +++++++ .../ArasanMmcHostDxe/ArasanMmcHostDxe.h | 50 + .../ArasanMmcHostDxe/ArasanMmcHostDxe.inf | 53 + .../Bcm2836InterruptDxe/Bcm2836InterruptDxe.c | 367 ++++ .../Bcm2836InterruptDxe.inf | 48 + .../Bcm283x/Drivers/ConfigDxe/ConfigDxe.c | 356 ++++ .../Bcm283x/Drivers/ConfigDxe/ConfigDxe.inf | 81 + .../Drivers/ConfigDxe/ConfigDxeFormSetGuid.h | 23 + .../Drivers/ConfigDxe/ConfigDxeHii.uni | 100 + .../Drivers/ConfigDxe/ConfigDxeHii.vfr | 306 +++ .../Drivers/DisplayDxe/ComponentName.c | 222 ++ .../Bcm283x/Drivers/DisplayDxe/DisplayDxe.c | 606 ++++++ .../Bcm283x/Drivers/DisplayDxe/DisplayDxe.h | 43 + .../Bcm283x/Drivers/DisplayDxe/DisplayDxe.inf | 71 + .../Bcm283x/Drivers/DisplayDxe/Screenshot.c | 379 ++++ .../GraphicsConsoleDxe/ComponentName.c | 183 ++ .../GraphicsConsoleDxe/GraphicsConsole.c | 1836 +++++++++++++++++ .../GraphicsConsoleDxe/GraphicsConsole.h | 591 ++++++ .../GraphicsConsoleDxe/GraphicsConsoleDxe.inf | 74 + .../GraphicsConsoleDxe/GraphicsConsoleDxe.uni | 19 + .../GraphicsConsoleDxeExtra.uni | 20 + .../Drivers/GraphicsConsoleDxe/NewFont.c | 288 +++ .../Bcm283x/Drivers/PiMmcDxe/ComponentName.c | 163 ++ .../Bcm283x/Drivers/PiMmcDxe/Diagnostics.c | 256 +++ .../Broadcom/Bcm283x/Drivers/PiMmcDxe/Mmc.c | 458 ++++ .../Broadcom/Bcm283x/Drivers/PiMmcDxe/Mmc.h | 533 +++++ .../Bcm283x/Drivers/PiMmcDxe/MmcBlockIo.c | 473 +++++ .../Bcm283x/Drivers/PiMmcDxe/MmcDebug.c | 169 ++ .../Bcm283x/Drivers/PiMmcDxe/MmcDxe.inf | 58 + .../Drivers/PiMmcDxe/MmcIdentification.c | 993 +++++++++ .../PlatformSmbiosDxe/PlatformSmbiosDxe.c | 915 ++++++++ .../PlatformSmbiosDxe/PlatformSmbiosDxe.inf | 56 + .../Bcm283x/Drivers/RpiFdtDxe/RpiFdtDxe.c | 370 ++++ .../Bcm283x/Drivers/RpiFdtDxe/RpiFdtDxe.inf | 53 + .../Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c | 1085 ++++++++++ .../Drivers/RpiFirmwareDxe/RpiFirmwareDxe.inf | 49 + .../Bcm283x/Drivers/SdHostDxe/SdHostDxe.c | 830 ++++++++ .../Bcm283x/Drivers/SdHostDxe/SdHostDxe.inf | 54 + .../Drivers/VarBlockServiceDxe/FileIo.c | 196 ++ .../Drivers/VarBlockServiceDxe/FvbInfo.c | 118 ++ .../VarBlockServiceDxe/VarBlockService.c | 984 +++++++++ .../VarBlockServiceDxe/VarBlockService.h | 217 ++ .../VarBlockServiceDxe/VarBlockServiceDxe.c | 334 +++ .../VarBlockServiceDxe/VarBlockServiceDxe.inf | 93 + .../Include/IndustryStandard/Bcm2836.h | 70 + .../Include/IndustryStandard/Bcm2836MmcHs.h | 199 ++ .../Include/IndustryStandard/Bcm2836SdHost.h | 92 + .../Include/IndustryStandard/Bcm2837Gpio.h | 50 + .../Include/IndustryStandard/RpiFirmware.h | 93 + .../Bcm283x/Include/Library/GpioLib.h | 33 + .../Broadcom/Bcm283x/Include/Protocol/DwUsb.h | 53 + .../Include/Protocol/ExtendedTextOut.h | 36 + .../Bcm283x/Include/Protocol/PiMmcHost.h | 187 ++ .../Include/Protocol/RaspberryPiFirmware.h | 131 ++ Platform/Broadcom/Bcm283x/Include/Utils.h | 33 + .../Bcm283x/Library/GpioLib/GpioLib.c | 79 + .../Bcm283x/Library/GpioLib/GpioLib.inf | 39 + .../MemoryInitPeiLib/MemoryInitPeiLib.c | 183 ++ .../MemoryInitPeiLib/MemoryInitPeiLib.inf | 51 + .../PlatformBootManagerLib/PlatformBm.c | 831 ++++++++ .../PlatformBootManagerLib/PlatformBm.h | 60 + .../PlatformBootManagerLib.inf | 90 + .../AArch64/RaspberryPiHelper.S | 107 + .../RaspberryPiPlatformLib/RaspberryPi.c | 99 + .../RaspberryPiPlatformLib/RaspberryPiMem.c | 160 ++ .../RaspberryPiPlatformLib.inf | 64 + .../Bcm283x/Library/ResetLib/ResetLib.c | 104 + .../Bcm283x/Library/ResetLib/ResetLib.inf | 46 + .../VirtualRealTimeClockLib.c | 222 ++ .../VirtualRealTimeClockLib.inf | 43 + Platform/Broadcom/Bcm283x/RaspberryPiPkg.dec | 63 + Platform/Broadcom/Bcm283x/RaspberryPiPkg.dsc | 636 ++++++ Platform/Broadcom/Bcm283x/RaspberryPiPkg.fdf | 450 ++++ Platform/Broadcom/Bcm283x/Readme.md | 263 +++ 89 files changed, 21452 insertions(+) create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/AcpiTables.inf create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Csrt.aslc create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Dbg2.aslc create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Dsdt.asl create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Fadt.aslc create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Gtdt.aslc create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Madt.aslc create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Pep.asl create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Pep.c create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Pep.h create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Platform.h create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Rhpx.asl create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Sdhc.asl create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Spcr.asl create mode 100644 Platform/Broadcom/Bcm283x/AcpiTables/Uart.asl create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Bcm2836InterruptDxe/Bcm2836InterruptDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Bcm2836InterruptDxe/Bcm2836InterruptDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ConfigDxe/ConfigDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ConfigDxe/ConfigDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ConfigDxe/ConfigDxeFormSetGuid.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ConfigDxe/ConfigDxeHii.uni create mode 100644 Platform/Broadcom/Bcm283x/Drivers/ConfigDxe/ConfigDxeHii.vfr create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DisplayDxe/ComponentName.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DisplayDxe/DisplayDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DisplayDxe/DisplayDxe.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DisplayDxe/DisplayDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DisplayDxe/Screenshot.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/ComponentName.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/GraphicsConsole.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/GraphicsConsole.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.uni create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxeExtra.uni create mode 100644 Platform/Broadcom/Bcm283x/Drivers/GraphicsConsoleDxe/NewFont.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/ComponentName.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/Diagnostics.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/Mmc.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/Mmc.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/MmcBlockIo.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/MmcDebug.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/MmcDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PiMmcDxe/MmcIdentification.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/RpiFdtDxe/RpiFdtDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/RpiFdtDxe/RpiFdtDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/SdHostDxe/SdHostDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/SdHostDxe/SdHostDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/VarBlockServiceDxe/FileIo.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/VarBlockServiceDxe/FvbInfo.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/VarBlockServiceDxe/VarBlockService.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/VarBlockServiceDxe/VarBlockService.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Include/IndustryStandard/Bcm2836.h create mode 100644 Platform/Broadcom/Bcm283x/Include/IndustryStandard/Bcm2836MmcHs.h create mode 100644 Platform/Broadcom/Bcm283x/Include/IndustryStandard/Bcm2836SdHost.h create mode 100644 Platform/Broadcom/Bcm283x/Include/IndustryStandard/Bcm2837Gpio.h create mode 100644 Platform/Broadcom/Bcm283x/Include/IndustryStandard/RpiFirmware.h create mode 100644 Platform/Broadcom/Bcm283x/Include/Library/GpioLib.h create mode 100644 Platform/Broadcom/Bcm283x/Include/Protocol/DwUsb.h create mode 100644 Platform/Broadcom/Bcm283x/Include/Protocol/ExtendedTextOut.h create mode 100644 Platform/Broadcom/Bcm283x/Include/Protocol/PiMmcHost.h create mode 100644 Platform/Broadcom/Bcm283x/Include/Protocol/RaspberryPiFirmware.h create mode 100644 Platform/Broadcom/Bcm283x/Include/Utils.h create mode 100644 Platform/Broadcom/Bcm283x/Library/GpioLib/GpioLib.c create mode 100644 Platform/Broadcom/Bcm283x/Library/GpioLib/GpioLib.inf create mode 100644 Platform/Broadcom/Bcm283x/Library/MemoryInitPeiLib/MemoryInitPeiLib.c create mode 100644 Platform/Broadcom/Bcm283x/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf create mode 100644 Platform/Broadcom/Bcm283x/Library/PlatformBootManagerLib/PlatformBm.c create mode 100644 Platform/Broadcom/Bcm283x/Library/PlatformBootManagerLib/PlatformBm.h create mode 100644 Platform/Broadcom/Bcm283x/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf create mode 100644 Platform/Broadcom/Bcm283x/Library/RaspberryPiPlatformLib/AArch64/RaspberryPiHelper.S create mode 100644 Platform/Broadcom/Bcm283x/Library/RaspberryPiPlatformLib/RaspberryPi.c create mode 100644 Platform/Broadcom/Bcm283x/Library/RaspberryPiPlatformLib/RaspberryPiMem.c create mode 100644 Platform/Broadcom/Bcm283x/Library/RaspberryPiPlatformLib/RaspberryPiPlatformLib.inf create mode 100644 Platform/Broadcom/Bcm283x/Library/ResetLib/ResetLib.c create mode 100644 Platform/Broadcom/Bcm283x/Library/ResetLib/ResetLib.inf create mode 100644 Platform/Broadcom/Bcm283x/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c create mode 100644 Platform/Broadcom/Bcm283x/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf create mode 100644 Platform/Broadcom/Bcm283x/RaspberryPiPkg.dec create mode 100644 Platform/Broadcom/Bcm283x/RaspberryPiPkg.dsc create mode 100644 Platform/Broadcom/Bcm283x/RaspberryPiPkg.fdf create mode 100644 Platform/Broadcom/Bcm283x/Readme.md Pete Batard (4): Platform/Broadcom/RPi3 *NON-OSI*: Add ATF binaries Platform/Broadcom/RPi3 *NON-OSI*: Add Device Tree binaries Platform/Broadcom/RPi3 *NON-OSI*: Add USB Host driver Platform/Broadcom/RPi3 *NON-OSI*: Add Logo driver Platform/Broadcom/Bcm283x/Binary/License.txt | 26 + Platform/Broadcom/Bcm283x/Binary/README.md | 41 + Platform/Broadcom/Bcm283x/Binary/bl1.bin | Bin 0 -> 18801 bytes Platform/Broadcom/Bcm283x/Binary/fip.bin | Bin 0 -> 41714 bytes .../Broadcom/Bcm283x/DeviceTree/License.txt | 340 ++++ .../DeviceTree/bcm2710-rpi-3-b-plus.dtb | Bin 0 -> 25617 bytes .../DeviceTree/bcm2710-rpi-3-b-plus.dts | 1263 +++++++++++++ .../Bcm283x/DeviceTree/bcm2710-rpi-3-b.dtb | Bin 0 -> 25354 bytes .../Bcm283x/DeviceTree/bcm2710-rpi-3-b.dts | 1259 +++++++++++++ .../Drivers/DwUsbHostDxe/ComponentName.c | 219 +++ .../Drivers/DwUsbHostDxe/DriverBinding.c | 269 +++ .../Drivers/DwUsbHostDxe/DwUsbHostDxe.c | 1644 +++++++++++++++++ .../Drivers/DwUsbHostDxe/DwUsbHostDxe.h | 159 ++ .../Drivers/DwUsbHostDxe/DwUsbHostDxe.inf | 52 + .../Bcm283x/Drivers/DwUsbHostDxe/DwcHw.h | 782 ++++++++ .../Bcm283x/Drivers/DwUsbHostDxe/License.txt | 340 ++++ .../Broadcom/Bcm283x/Drivers/Logo/License.txt | 10 + .../Broadcom/Bcm283x/Drivers/Logo/Logo.bmp | Bin 0 -> 185398 bytes Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.c | 159 ++ .../Broadcom/Bcm283x/Drivers/Logo/Logo.eps | Bin 0 -> 250982 bytes .../Broadcom/Bcm283x/Drivers/Logo/Logo.idf | 18 + .../Broadcom/Bcm283x/Drivers/Logo/Logo.inf | 34 + .../Broadcom/Bcm283x/Drivers/Logo/Logo.uni | 20 + .../Broadcom/Bcm283x/Drivers/Logo/LogoDxe.inf | 63 + .../Broadcom/Bcm283x/Drivers/Logo/LogoDxe.uni | 19 + .../Bcm283x/Drivers/Logo/LogoDxeExtra.uni | 19 + .../Bcm283x/Drivers/Logo/LogoExtra.uni | 19 + 27 files changed, 6755 insertions(+) create mode 100644 Platform/Broadcom/Bcm283x/Binary/License.txt create mode 100644 Platform/Broadcom/Bcm283x/Binary/README.md create mode 100644 Platform/Broadcom/Bcm283x/Binary/bl1.bin create mode 100644 Platform/Broadcom/Bcm283x/Binary/fip.bin create mode 100644 Platform/Broadcom/Bcm283x/DeviceTree/License.txt create mode 100644 Platform/Broadcom/Bcm283x/DeviceTree/bcm2710-rpi-3-b-plus.dtb create mode 100644 Platform/Broadcom/Bcm283x/DeviceTree/bcm2710-rpi-3-b-plus.dts create mode 100644 Platform/Broadcom/Bcm283x/DeviceTree/bcm2710-rpi-3-b.dtb create mode 100644 Platform/Broadcom/Bcm283x/DeviceTree/bcm2710-rpi-3-b.dts create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/ComponentName.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/DriverBinding.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/DwUsbHostDxe.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/DwUsbHostDxe.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/DwUsbHostDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/DwcHw.h create mode 100644 Platform/Broadcom/Bcm283x/Drivers/DwUsbHostDxe/License.txt create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/License.txt create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.bmp create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.c create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.eps create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.idf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/Logo.uni create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/LogoDxe.inf create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/LogoDxe.uni create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/LogoDxeExtra.uni create mode 100644 Platform/Broadcom/Bcm283x/Drivers/Logo/LogoExtra.uni -- 2.17.0.windows.1