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 56AA0211944A0 for ; Fri, 7 Dec 2018 04:05:24 -0800 (PST) Received: by mail-ed1-x544.google.com with SMTP id b3so3534168ede.1 for ; Fri, 07 Dec 2018 04:05:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akeo-ie.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id; bh=cYNdFqlxt+wsUrv++5dz36WYn+UcRg+0O8N5TeMd8CQ=; b=fKaQ/ZPe+HLadh7NUZCkpwISQKhrN9I204Tq7WXMULf/Xn9OmMei9Kj08rGt4ak8f0 Au4hssPPdwX9xmNqiWkIrGo56jKzuz+pV3VUwCRzffy4dASLCVka6UfsS5+OSOJhrmOH SgG+qoeZzdmckAAseCep6rNILt+klRb6Vu+8JdUVWXpIiRUnYchkhdFUut8xWoEocn6e aZu50k1fc32RlSkPZoSizSFKDampM7O1ocxKj6QrG2nYn4/dqL1N6rihUcBc3XeCaoFx QPuZ6s5MvYJWJ/rgG56Ff9aABwm8+AxiJPz/Uevq4zVDe9EexYXi7yyvtSVUe8Tfr+Zs xmwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=cYNdFqlxt+wsUrv++5dz36WYn+UcRg+0O8N5TeMd8CQ=; b=SQkzF8XS7WS3ld6raRR5wJItcxA1fZiQtGw7tyA7b4gsrl7GvpfFCcPmgbIbEVF3LH rq9pWfKosIxrSdYqfnj7kGza3K+09IgNEj5F5YCTXg1Ngk0VYdEqCw74tP9lBIEHyvs2 eN7cFz2PfH+4twonY8vjX/ijf75NRHa/5zQtfZVs73AgGFB+ksHIlgJfrnij3EyDI+iw cihFEBZ843O4WW41E4/zX0NspgB46fC+kSgVQlgNzZ0yL/34npfTFGSS/X6gYz9p5tRU bQVZeKTxvYOD7sqUig54rC5RkD01XGkTrjpOt5ZPeVTDRt4rnKsRUfIwjTV10zYaFU1C 05Og== X-Gm-Message-State: AA+aEWYUll63OkBIHTsu/46iwkojA63eVSXvYDf9tHLtddC0nhv+me/9 BqgWpTxcSuWVbEZJ30Jkwe6o6iYlRyM= X-Google-Smtp-Source: AFSGD/XiSpVA2VEpSVQPkrHZSsDogx4My+czgFMbpFIEeX1b//STElJbfx4hMDFMxt5wLtSB+Td7yg== X-Received: by 2002:a50:aa68:: with SMTP id p37mr1973882edc.168.1544184322680; Fri, 07 Dec 2018 04:05:22 -0800 (PST) Received: from localhost.localdomain ([84.203.68.105]) by smtp.gmail.com with ESMTPSA id b9sm394099ede.12.2018.12.07.04.05.21 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Dec 2018 04:05:21 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Date: Fri, 7 Dec 2018 12:05:09 +0000 Message-Id: <20181207120511.8724-1-pete@akeo.ie> X-Mailer: git-send-email 2.17.0.windows.1 Subject: [PATCH v1 edk2-platfoms 0/2] 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: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 X-List-Received-Date: Fri, 07 Dec 2018 12:05:25 -0000 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. Patch Breakdown: Since this is a platform introduction, we simply chose to break the commits into edk2-platforms and edk2-non-osi components, as we see little point in splitting the series into further subcomponents, when the structure would be similar to the overall subdirectory layout and of course, one needs to apply all components at once to be able to test the firmware. PATCH 1/2 therefore contains the edk2-platform components and PATCH 2/2 the edk2-non-osi components. 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 (1/2): Platform/Broadcom: Add Raspberry Pi 3 support .../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 (2/2): Platform/Broadcom: Add Raspberry Pi 3 support (non OSI) 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