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 38A922119BBDC for ; Mon, 28 Jan 2019 04:44:59 -0800 (PST) Received: by mail-ed1-x544.google.com with SMTP id x30so12921414edx.2 for ; Mon, 28 Jan 2019 04:44:59 -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=pMHkNSOFzCWXx6LQj5uAYVIoecXklYAzt1rkieSgJcY=; b=dTPXCbw19dUyp9uj5qgQfyChLh1RJEw8wZHNd/6hQNKhTWQHBBwyvLNt7B7EMz9sVS cATLnZ9a3XSaFE9iTFBDl0qa5bwla4rfHgVPAcV1zuhqb790oHZvv08ratVIMi58bEu0 9e8ND7gTc8n30xL5jUkCu2+bfI8hPuGTA0PJMf+1/3NKniw58SwMJjRLyd+swn9j7UsF g9UjVyGXtdxpUmmEeEShq0Q1TQ9u0eNjSxj3RvDrERfOrhUWP2GDW7aWyVPy6DIXKNtE RBWAuaU8oKCBRqcLkRM1PuPH4GMWAfzoMOblTvq+PDQpzqGkSnKn8W+v4s63jYzhRUPI BLaw== 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=pMHkNSOFzCWXx6LQj5uAYVIoecXklYAzt1rkieSgJcY=; b=BPR+YTzxNjTAzQEXw/Vd+b3RMN2oCP2Iu65HV9vGhnQYZHFKDwt4rA/v4qPKU9pCvo coHWDaYxreAu7JIDxQPVxtOoQIroTVuF5rhaCe+cLzdp0tvgjtZFQ3/4tBei1rZGzeMh 8f/oJrTgvZNNKxOR6Grmmj9oERj//a+uWIhTAqaIrbEl4sf0CrbT7qQzLUojyGr9SGIS U6ui++VUZ4c0Ld0ManIf5v0I9e7TXIVdfxAsAqJRnY75Y4QOinzqWYAuPgbKJRg+Ny+8 WPKZazjyfks/jCo/1cxIGJhixLTKwrmDX0WC2x0nUOKO9iXQOcuXPMvE29q3MP5LgXyy BFmQ== X-Gm-Message-State: AJcUukcWVnCWFJ1T8VtlciC/jNVHDaYEPWonjxsCL0NBY4faPM5WxGb8 A6gKZyDvqQn056/X2BEZkirUGxOGduk= X-Google-Smtp-Source: ALg8bN572ypOZNR8P+QfCTjzJCckGtRAjT03eQvsfh6E3L+Ge8EE+/fqNg9qwOVeGmH3z3ZCg3ld9g== X-Received: by 2002:a50:8e95:: with SMTP id w21mr20881504edw.198.1548679496990; Mon, 28 Jan 2019 04:44:56 -0800 (PST) Received: from localhost.localdomain ([84.203.95.186]) by smtp.gmail.com with ESMTPSA id y16sm13757367edb.41.2019.01.28.04.44.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Jan 2019 04:44:55 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Date: Mon, 28 Jan 2019 12:44:22 +0000 Message-Id: <20190128124445.9868-1-pete@akeo.ie> X-Mailer: git-send-email 2.17.0.windows.1 Subject: [PATCH v3 edk2-platforms 00/23] Platform/Raspberry: 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, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 X-List-Received-Date: Mon, 28 Jan 2019 12:44:59 -0000 Changes applied to v3: * As suggested, source is now split between Platform/Raspberry/Pi3 and Silicon/Broacdom/Bcm283x. Ideally, the SD/MMC drivers should also have gone to Silicon, but this is tricky to do, as these drivers depend on the custom (platform specific) Pi VideoCore to perform some actions such as driving the activity LEDs or fetching the current clock frequency, and therefore we'd need to abstract these and move part of the firmware protocol there (Mbox access, etc) so that we can get access these function calls. We looked into doing that, but the cost/benefit ratio is simply too high. So, considering that we now have a base for Platform/Silicon, I'd rather leave further factorization and abstraction to when we add another Bcm283x platform. For now then, only the GPIO library, Interrupt driver and the SD/MMC headers are to be found under Silicon. * Source was overhauled to apply the EDK2 coding guidelines everywhere. * .dsc/.fsf/.dec updated to use latest specs revision. * utils.h: Remove it altogether (and also use ARRAY_SIZE() macro). * MemoryInitPeiLib.c: Drop last 2 unused parameters in ArmConfigureMmu(), drop unneeded MMIO init and rename helper calls to something more explicit. * FdtDxe.c: Use EfiBootServicesData in AllocatePages() * Binary: Rename this directory to TrustedFirmware. * Move DwUsbHostDxe driver to BSD license and therefore out of non-osi, since licensing matters have now been solved with all the parties, off-list. * Move RpiFirmwareDxe earlier in the patch series * Some internal ACPI fixes were applied (e.g. I2C table generation breakage due to a backslash in comments, etc.) * A new PlatformUiAppLib was introduced, which is basically a helper for PlatformBootManagerLib. Also, the new default for boot manager is to boot into the UEFI shell. Of course this default boot order can be changed. NB: Because of these changes, we removed the Reviewed-By we previously got from Ard on the v2 version of this patch. * Add a link to the new platform in the top-level readme. * Our latest tests show that builds are stable with the latest GCC7 (Linaro 2019.02 version), so we dropped the requirement for only GCC5 to be used. Changes not applied to v3: * MemoryInitPeiLib.c: We looked into moving ArmPlatformGetVirtualMemoryMap() from RaspberryPiMem.c into this file but it seemed more complex than we envisioned and, because we don't see the referencing of array entries as a showstopper, we hope that not carrying out this suggestion is okay. * We tried to drop ResetLib altogether and use the reset notification event provided by the EDK2, but found that this resulted in a Linux kernel panic during reset, for which we have found no workaround and that seems to occur as soon as the relevant EDK2 drivers were included (i.e. crash happens even if the code isn't altered to use reset notification). Due to time constraints, and considering that ResetLib is very straightfoward, we decided that the best course of action is to keep ResetLib for now,, 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 platform. Notes regarding non-OSI content: * 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. Ultimately, once there is a new dot release of ATF, we plan to remove these binaries and point to a dot release build configuartion. * The Device Tree binaries (and source descriptors) are subject to a GPLv2 license, as per the ones published by the Raspberry Pi Foundation. * 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 Foundation. Additional Notes: * 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 (20): Silicon/Broadcom/Bcm282x: Add interrupt driver Silicon/Broadcom/Bcm283x: Add GpioLib Platform/Raspberry/Pi3: Add ACPI tables Platform/Raspberry/Pi3: Add reset and memory init libraries Platform/Raspberry/Pi3: Add platform library Platform/Raspberry/Pi3: Add RTC library Platform/Raspberry/Pi3: Add firmware driver Platform/Raspberry/Pi3: Add platform config driver Platform/Raspberry/Pi3: Add SMBIOS driver Platform/Raspberry/Pi3: Add display driver Platform/Raspberry/Pi3: Add console driver Platform/Raspberry/Pi3: Add NV storage driver Platform/Raspberry/Pi3: Add Device Tree driver Platform/Raspberry/Pi3: Add base MMC driver Platform/Raspberry/Pi3: Add Arasan MMC driver Platform/Raspberry/Pi3: Add SD Host driver Platform/Raspberry/Pi3: Add platform boot manager and helper libraries Platform/Raspberry/Pi3: Add USB host driver Platform/Raspberry/Pi3: Add platform Platform/Raspberry/Pi3: Add platform readme .../Raspberry/Pi3/AcpiTables/AcpiTables.h | 82 + .../Raspberry/Pi3/AcpiTables/AcpiTables.inf | 51 + Platform/Raspberry/Pi3/AcpiTables/Csrt.aslc | 332 +++ Platform/Raspberry/Pi3/AcpiTables/Dbg2.aslc | 34 + Platform/Raspberry/Pi3/AcpiTables/Dsdt.asl | 511 +++++ Platform/Raspberry/Pi3/AcpiTables/Fadt.aslc | 52 + Platform/Raspberry/Pi3/AcpiTables/Gtdt.aslc | 33 + Platform/Raspberry/Pi3/AcpiTables/Madt.aslc | 62 + Platform/Raspberry/Pi3/AcpiTables/Pep.asl | 95 + Platform/Raspberry/Pi3/AcpiTables/Pep.c | 84 + Platform/Raspberry/Pi3/AcpiTables/Pep.h | 126 ++ Platform/Raspberry/Pi3/AcpiTables/Rhpx.asl | 201 ++ Platform/Raspberry/Pi3/AcpiTables/Sdhc.asl | 105 + Platform/Raspberry/Pi3/AcpiTables/Spcr.asl | 53 + Platform/Raspberry/Pi3/AcpiTables/Uart.asl | 158 ++ .../ArasanMmcHostDxe/ArasanMmcHostDxe.c | 723 +++++++ .../ArasanMmcHostDxe/ArasanMmcHostDxe.h | 50 + .../ArasanMmcHostDxe/ArasanMmcHostDxe.inf | 51 + .../Pi3/Drivers/ConfigDxe/ConfigDxe.c | 350 ++++ .../Pi3/Drivers/ConfigDxe/ConfigDxe.inf | 77 + .../Drivers/ConfigDxe/ConfigDxeFormSetGuid.h | 23 + .../Pi3/Drivers/ConfigDxe/ConfigDxeHii.uni | 100 + .../Pi3/Drivers/ConfigDxe/ConfigDxeHii.vfr | 306 +++ .../Pi3/Drivers/DisplayDxe/ComponentName.c | 222 ++ .../Pi3/Drivers/DisplayDxe/DisplayDxe.c | 606 ++++++ .../Pi3/Drivers/DisplayDxe/DisplayDxe.h | 42 + .../Pi3/Drivers/DisplayDxe/DisplayDxe.inf | 71 + .../Pi3/Drivers/DisplayDxe/Screenshot.c | 375 ++++ .../Pi3/Drivers/DwUsbHostDxe/ComponentName.c | 226 ++ .../Pi3/Drivers/DwUsbHostDxe/DriverBinding.c | 275 +++ .../Pi3/Drivers/DwUsbHostDxe/DwUsbHostDxe.c | 1637 +++++++++++++++ .../Pi3/Drivers/DwUsbHostDxe/DwUsbHostDxe.h | 165 ++ .../Pi3/Drivers/DwUsbHostDxe/DwUsbHostDxe.inf | 52 + .../Pi3/Drivers/DwUsbHostDxe/DwcHw.h | 791 +++++++ .../Raspberry/Pi3/Drivers/FdtDxe/FdtDxe.c | 364 ++++ .../Raspberry/Pi3/Drivers/FdtDxe/FdtDxe.inf | 53 + .../GraphicsConsoleDxe/ComponentName.c | 183 ++ .../GraphicsConsoleDxe/GraphicsConsole.c | 1837 +++++++++++++++++ .../GraphicsConsoleDxe/GraphicsConsole.h | 591 ++++++ .../GraphicsConsoleDxe/GraphicsConsoleDxe.inf | 74 + .../GraphicsConsoleDxe/GraphicsConsoleDxe.uni | 18 + .../GraphicsConsoleDxeExtra.uni | 18 + .../Pi3/Drivers/GraphicsConsoleDxe/NewFont.c | 287 +++ .../Pi3/Drivers/MmcDxe/ComponentName.c | 163 ++ .../Pi3/Drivers/MmcDxe/Diagnostics.c | 263 +++ Platform/Raspberry/Pi3/Drivers/MmcDxe/Mmc.c | 460 +++++ Platform/Raspberry/Pi3/Drivers/MmcDxe/Mmc.h | 533 +++++ .../Raspberry/Pi3/Drivers/MmcDxe/MmcBlockIo.c | 469 +++++ .../Raspberry/Pi3/Drivers/MmcDxe/MmcDebug.c | 170 ++ .../Raspberry/Pi3/Drivers/MmcDxe/MmcDxe.inf | 58 + .../Pi3/Drivers/MmcDxe/MmcIdentification.c | 980 +++++++++ .../PlatformSmbiosDxe/PlatformSmbiosDxe.c | 903 ++++++++ .../PlatformSmbiosDxe/PlatformSmbiosDxe.inf | 56 + .../Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c | 1084 ++++++++++ .../Drivers/RpiFirmwareDxe/RpiFirmwareDxe.inf | 49 + .../Pi3/Drivers/SdHostDxe/SdHostDxe.c | 787 +++++++ .../Pi3/Drivers/SdHostDxe/SdHostDxe.inf | 54 + .../Pi3/Drivers/VarBlockServiceDxe/FileIo.c | 196 ++ .../Pi3/Drivers/VarBlockServiceDxe/FvbInfo.c | 115 ++ .../VarBlockServiceDxe/VarBlockService.c | 971 +++++++++ .../VarBlockServiceDxe/VarBlockService.h | 217 ++ .../VarBlockServiceDxe/VarBlockServiceDxe.c | 331 +++ .../VarBlockServiceDxe/VarBlockServiceDxe.inf | 93 + .../Pi3/Include/IndustryStandard/RpiMbox.h | 108 + .../Raspberry/Pi3/Include/Protocol/DwUsb.h | 53 + .../Pi3/Include/Protocol/ExtendedTextOut.h | 36 + .../Pi3/Include/Protocol/RpiFirmware.h | 131 ++ .../Pi3/Include/Protocol/RpiMmcHost.h | 206 ++ .../MemoryInitPeiLib/MemoryInitPeiLib.c | 162 ++ .../MemoryInitPeiLib/MemoryInitPeiLib.inf | 51 + .../PlatformBootManagerLib/PlatformBm.c | 793 +++++++ .../PlatformBootManagerLib/PlatformBm.h | 60 + .../PlatformBootManagerLib.inf | 90 + .../PlatformLib/AArch64/RaspberryPiHelper.S | 107 + .../Pi3/Library/PlatformLib/PlatformLib.inf | 64 + .../Pi3/Library/PlatformLib/RaspberryPi.c | 99 + .../Pi3/Library/PlatformLib/RaspberryPiMem.c | 160 ++ .../PlatformUiAppLib/PlatformUiAppLib.c | 120 ++ .../PlatformUiAppLib/PlatformUiAppLib.inf | 34 + .../Raspberry/Pi3/Library/ResetLib/ResetLib.c | 104 + .../Pi3/Library/ResetLib/ResetLib.inf | 46 + .../VirtualRealTimeClockLib.c | 221 ++ .../VirtualRealTimeClockLib.inf | 43 + Platform/Raspberry/Pi3/RPi3.dec | 60 + Platform/Raspberry/Pi3/RPi3.dsc | 637 ++++++ Platform/Raspberry/Pi3/RPi3.fdf | 449 ++++ Platform/Raspberry/Pi3/Readme.md | 259 +++ Readme.md | 3 + Silicon/Broadcom/Bcm283x/Bcm283x.dec | 23 + .../Drivers/InterruptDxe/InterruptDxe.c | 367 ++++ .../Drivers/InterruptDxe/InterruptDxe.inf | 48 + .../Bcm283x/Library/GpioLib/GpioLib.c | 88 + .../Bcm283x/Library/GpioLib/GpioLib.inf | 39 + .../Include/IndustryStandard/Bcm2836.h | 72 + .../Include/IndustryStandard/Bcm2836Gpio.h | 60 + .../Include/IndustryStandard/Bcm2836SdHost.h | 92 + .../Include/IndustryStandard/Bcm2836Sdio.h | 199 ++ 97 files changed, 24582 insertions(+) create mode 100644 Platform/Raspberry/Pi3/AcpiTables/AcpiTables.h create mode 100644 Platform/Raspberry/Pi3/AcpiTables/AcpiTables.inf create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Csrt.aslc create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Dbg2.aslc create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Dsdt.asl create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Fadt.aslc create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Gtdt.aslc create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Madt.aslc create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Pep.asl create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Pep.c create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Pep.h create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Rhpx.asl create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Sdhc.asl create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Spcr.asl create mode 100644 Platform/Raspberry/Pi3/AcpiTables/Uart.asl create mode 100644 Platform/Raspberry/Pi3/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.h create mode 100644 Platform/Raspberry/Pi3/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/ConfigDxe/ConfigDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/ConfigDxe/ConfigDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/ConfigDxe/ConfigDxeFormSetGuid.h create mode 100644 Platform/Raspberry/Pi3/Drivers/ConfigDxe/ConfigDxeHii.uni create mode 100644 Platform/Raspberry/Pi3/Drivers/ConfigDxe/ConfigDxeHii.vfr create mode 100644 Platform/Raspberry/Pi3/Drivers/DisplayDxe/ComponentName.c create mode 100644 Platform/Raspberry/Pi3/Drivers/DisplayDxe/DisplayDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/DisplayDxe/DisplayDxe.h create mode 100644 Platform/Raspberry/Pi3/Drivers/DisplayDxe/DisplayDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/DisplayDxe/Screenshot.c create mode 100644 Platform/Raspberry/Pi3/Drivers/DwUsbHostDxe/ComponentName.c create mode 100644 Platform/Raspberry/Pi3/Drivers/DwUsbHostDxe/DriverBinding.c create mode 100644 Platform/Raspberry/Pi3/Drivers/DwUsbHostDxe/DwUsbHostDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/DwUsbHostDxe/DwUsbHostDxe.h create mode 100644 Platform/Raspberry/Pi3/Drivers/DwUsbHostDxe/DwUsbHostDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/DwUsbHostDxe/DwcHw.h create mode 100644 Platform/Raspberry/Pi3/Drivers/FdtDxe/FdtDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/FdtDxe/FdtDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/ComponentName.c create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/GraphicsConsole.c create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/GraphicsConsole.h create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.uni create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxeExtra.uni create mode 100644 Platform/Raspberry/Pi3/Drivers/GraphicsConsoleDxe/NewFont.c create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/ComponentName.c create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/Diagnostics.c create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/Mmc.c create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/Mmc.h create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/MmcBlockIo.c create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/MmcDebug.c create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/MmcDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/MmcDxe/MmcIdentification.c create mode 100644 Platform/Raspberry/Pi3/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/SdHostDxe/SdHostDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/SdHostDxe/SdHostDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/VarBlockServiceDxe/FileIo.c create mode 100644 Platform/Raspberry/Pi3/Drivers/VarBlockServiceDxe/FvbInfo.c create mode 100644 Platform/Raspberry/Pi3/Drivers/VarBlockServiceDxe/VarBlockService.c create mode 100644 Platform/Raspberry/Pi3/Drivers/VarBlockServiceDxe/VarBlockService.h create mode 100644 Platform/Raspberry/Pi3/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c create mode 100644 Platform/Raspberry/Pi3/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf create mode 100644 Platform/Raspberry/Pi3/Include/IndustryStandard/RpiMbox.h create mode 100644 Platform/Raspberry/Pi3/Include/Protocol/DwUsb.h create mode 100644 Platform/Raspberry/Pi3/Include/Protocol/ExtendedTextOut.h create mode 100644 Platform/Raspberry/Pi3/Include/Protocol/RpiFirmware.h create mode 100644 Platform/Raspberry/Pi3/Include/Protocol/RpiMmcHost.h create mode 100644 Platform/Raspberry/Pi3/Library/MemoryInitPeiLib/MemoryInitPeiLib.c create mode 100644 Platform/Raspberry/Pi3/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf create mode 100644 Platform/Raspberry/Pi3/Library/PlatformBootManagerLib/PlatformBm.c create mode 100644 Platform/Raspberry/Pi3/Library/PlatformBootManagerLib/PlatformBm.h create mode 100644 Platform/Raspberry/Pi3/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf create mode 100644 Platform/Raspberry/Pi3/Library/PlatformLib/AArch64/RaspberryPiHelper.S create mode 100644 Platform/Raspberry/Pi3/Library/PlatformLib/PlatformLib.inf create mode 100644 Platform/Raspberry/Pi3/Library/PlatformLib/RaspberryPi.c create mode 100644 Platform/Raspberry/Pi3/Library/PlatformLib/RaspberryPiMem.c create mode 100644 Platform/Raspberry/Pi3/Library/PlatformUiAppLib/PlatformUiAppLib.c create mode 100644 Platform/Raspberry/Pi3/Library/PlatformUiAppLib/PlatformUiAppLib.inf create mode 100644 Platform/Raspberry/Pi3/Library/ResetLib/ResetLib.c create mode 100644 Platform/Raspberry/Pi3/Library/ResetLib/ResetLib.inf create mode 100644 Platform/Raspberry/Pi3/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c create mode 100644 Platform/Raspberry/Pi3/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf create mode 100644 Platform/Raspberry/Pi3/RPi3.dec create mode 100644 Platform/Raspberry/Pi3/RPi3.dsc create mode 100644 Platform/Raspberry/Pi3/RPi3.fdf create mode 100644 Platform/Raspberry/Pi3/Readme.md create mode 100644 Silicon/Broadcom/Bcm283x/Bcm283x.dec create mode 100644 Silicon/Broadcom/Bcm283x/Drivers/InterruptDxe/InterruptDxe.c create mode 100644 Silicon/Broadcom/Bcm283x/Drivers/InterruptDxe/InterruptDxe.inf create mode 100644 Silicon/Broadcom/Bcm283x/Library/GpioLib/GpioLib.c create mode 100644 Silicon/Broadcom/Bcm283x/Library/GpioLib/GpioLib.inf create mode 100644 Silicon/Broadcom/Include/IndustryStandard/Bcm2836.h create mode 100644 Silicon/Broadcom/Include/IndustryStandard/Bcm2836Gpio.h create mode 100644 Silicon/Broadcom/Include/IndustryStandard/Bcm2836SdHost.h create mode 100644 Silicon/Broadcom/Include/IndustryStandard/Bcm2836Sdio.h Pete Batard (3): Platform/Raspberry/Pi3: Add ATF binaries Platform/Raspberry/Pi3: Add Device Tree binaries Platform/Raspberry/Pi3: Add logo driver Platform/Raspberry/Pi3/DeviceTree/License.txt | 340 +++++ .../Pi3/DeviceTree/bcm2710-rpi-3-b-plus.dtb | Bin 0 -> 25617 bytes .../Pi3/DeviceTree/bcm2710-rpi-3-b-plus.dts | 1263 +++++++++++++++++ .../Pi3/DeviceTree/bcm2710-rpi-3-b.dtb | Bin 0 -> 25354 bytes .../Pi3/DeviceTree/bcm2710-rpi-3-b.dts | 1259 ++++++++++++++++ .../Raspberry/Pi3/Drivers/LogoDxe/License.txt | 10 + .../Raspberry/Pi3/Drivers/LogoDxe/Logo.bmp | Bin 0 -> 185398 bytes Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.c | 159 +++ .../Raspberry/Pi3/Drivers/LogoDxe/Logo.eps | Bin 0 -> 250982 bytes .../Raspberry/Pi3/Drivers/LogoDxe/Logo.idf | 18 + .../Raspberry/Pi3/Drivers/LogoDxe/Logo.inf | 34 + .../Raspberry/Pi3/Drivers/LogoDxe/Logo.uni | 20 + .../Raspberry/Pi3/Drivers/LogoDxe/LogoDxe.inf | 63 + .../Raspberry/Pi3/Drivers/LogoDxe/LogoDxe.uni | 19 + .../Pi3/Drivers/LogoDxe/LogoDxeExtra.uni | 19 + .../Pi3/Drivers/LogoDxe/LogoExtra.uni | 19 + .../Raspberry/Pi3/TrustedFirmware/License.txt | 26 + .../Raspberry/Pi3/TrustedFirmware/README.md | 42 + .../Raspberry/Pi3/TrustedFirmware/bl1.bin | Bin 0 -> 18801 bytes .../Raspberry/Pi3/TrustedFirmware/fip.bin | Bin 0 -> 41714 bytes 20 files changed, 3291 insertions(+) create mode 100644 Platform/Raspberry/Pi3/DeviceTree/License.txt create mode 100644 Platform/Raspberry/Pi3/DeviceTree/bcm2710-rpi-3-b-plus.dtb create mode 100644 Platform/Raspberry/Pi3/DeviceTree/bcm2710-rpi-3-b-plus.dts create mode 100644 Platform/Raspberry/Pi3/DeviceTree/bcm2710-rpi-3-b.dtb create mode 100644 Platform/Raspberry/Pi3/DeviceTree/bcm2710-rpi-3-b.dts create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/License.txt create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.bmp create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.c create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.eps create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.idf create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/Logo.uni create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/LogoDxe.inf create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/LogoDxe.uni create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/LogoDxeExtra.uni create mode 100644 Platform/Raspberry/Pi3/Drivers/LogoDxe/LogoExtra.uni create mode 100644 Platform/Raspberry/Pi3/TrustedFirmware/License.txt create mode 100644 Platform/Raspberry/Pi3/TrustedFirmware/README.md create mode 100644 Platform/Raspberry/Pi3/TrustedFirmware/bl1.bin create mode 100644 Platform/Raspberry/Pi3/TrustedFirmware/fip.bin -- 2.17.0.windows.1