From nobody Mon Feb 9 10:27:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+58423+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+58423+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1588238828; cv=none; d=zohomail.com; s=zohoarc; b=VXHKsJpfzhReaKVC6EQopkdmpEEI/Bc3qqwrEa9yM5YIsjTSMqzUPHhXV0geZg0KWz8F1ZuEstXKT5md9cx0kfuHz/GRC2OmBRitc05gANBdCvDB94/alYfxucvxlGZ0ud429W2uaMnA5/5ErY1ZyV+e8fOJPbX9/kVzXK9G09g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588238828; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=C9WP/WKahOXkY1kB2E5qYzbAE7ueMaaUMu1ENFUHUc8=; b=oLaE9MfRwNMhUOdS3eUHqfxVJSmXuUIAJcUjfBef5k8vwikmD4QfA0FRvHWGaqaFhyZIFGKijhv0R8VKoHN+M1Jv1ov3tEmlTa6Zi7RRlGu94HW4mnTWbXMrKK/diYjCTloIGKHsIj2b6fMGhqDMqphKrlkQCRl5uNA/T8yG3ac= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+58423+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1588238828965856.0574223001257; Thu, 30 Apr 2020 02:27:08 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id REQ3YY1788612xOcjYqL8MCi; Thu, 30 Apr 2020 02:27:08 -0700 X-Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) by mx.groups.io with SMTP id smtpd.web10.3783.1588238828000026251 for ; Thu, 30 Apr 2020 02:27:08 -0700 X-Received: by mail-qk1-f196.google.com with SMTP id t3so5003668qkg.1 for ; Thu, 30 Apr 2020 02:27:07 -0700 (PDT) X-Gm-Message-State: 8W0qLiDMwm8iBupriZ4puvlDx1787277AA= X-Google-Smtp-Source: APiQypJGopGYKUd5dBM/fj6zAMxtXtxZcIAcVoHqCiN8Sgz+dOhBQ2sYQUUZ5GK9wIfY7VRgPcRzGg== X-Received: by 2002:a05:620a:556:: with SMTP id o22mr2719943qko.166.1588238826789; Thu, 30 Apr 2020 02:27:06 -0700 (PDT) X-Received: from localhost.localdomain (c-98-214-99-181.hsd1.il.comcast.net. [98.214.99.181]) by smtp.gmail.com with ESMTPSA id i5sm1430355qki.42.2020.04.30.02.27.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2020 02:27:06 -0700 (PDT) From: "Andrei Warkentin" To: devel@edk2.groups.io Cc: ard.biesheuvel@arm.com, leif@nuviainc.com, pete@akeo.ie, philmd@redhat.com Subject: [edk2-devel] [edk2-platforms][PATCH 4/4] RPi: document CM3, Pi 2B (v1.2) and Pi 3A+ support, update Pi 4 docs Date: Thu, 30 Apr 2020 02:26:52 -0700 Message-Id: <20200430092652.54526-5-andrey.warkentin@gmail.com> In-Reply-To: <20200430092652.54526-1-andrey.warkentin@gmail.com> References: <20200430092652.54526-1-andrey.warkentin@gmail.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: <27952.devel.edk2.groups.io> Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,andrey.warkentin@gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1588238828; bh=zvbKRHu/d/b6ktlSbPoQf3CpEuIajnQMgQ1t5PZpszU=; h=Cc:Date:From:Reply-To:Subject:To; b=rAQHTbXTdeQ5EFnJY4FP3SG96AlnU/vVXDXZekWfkT7USBiMmxMGQ8odX3EybYo7xoS SE9c3abbDQpHXlEG0/4icidRCAMDxCFzy2O63g+gEdSs7fbawoagD0FPLp9wK/HKupdt1 0fk6SyRT8D3KEwVohtsj6rQSHQHerW+zJTM= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This cleans up the (related) Readme.md files for both platforms. - The RPi3 target also supports the 3A+, so let's document it. (The 3A+ lacks the ethernet port and has less RAM) - Clarify RPi3 is for BCM2837-based variants, while RPi4 is for the BCM2711-based variants. - v1.2 (not older) actually uses the same BCM2837 SoC as Pi 3, and is thus a 64-bit device that this firmware easily supports as a minor variant of the Pi 3. The difference from Pi 3 is choice of UART (PL011), no WiFi, no BT and slower clock due to thermal problems caused by older board design. Signed-off-by: Andrei Warkentin --- Platform/RaspberryPi/RPi3/Readme.md | 49 +++++++++++++------- Platform/RaspberryPi/RPi4/Readme.md | 35 ++++++++++++-- 2 files changed, 65 insertions(+), 19 deletions(-) diff --git a/Platform/RaspberryPi/RPi3/Readme.md b/Platform/RaspberryPi/RPi= 3/Readme.md index 05f498ee..55c6265d 100644 --- a/Platform/RaspberryPi/RPi3/Readme.md +++ b/Platform/RaspberryPi/RPi3/Readme.md @@ -1,19 +1,33 @@ -Raspberry Pi Platform -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +Raspberry Pi 3 Platform +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 # Summary =20 -This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 3/3= B+ platforms, -based on [Ard Bisheuvel's 64-bit](http://www.workofard.com/2017/02/uefi-on= -the-pi/) +This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 3B = (and related) +platforms, based on [Ard Bisheuvel's 64-bit](http://www.workofard.com/2017= /02/uefi-on-the-pi/) and [Microsoft's 32-bit](https://github.com/ms-iot/RPi-UEFI/tree/ms-iot/Pi= 3BoardPkg) implementations, as maintained by [Andrei Warkentin](https://github.com/an= dreiw/RaspberryPiPkg). =20 -This is meant as a generally useful 64-bit ATF + UEFI implementation for t= he Raspberry -Pi 3/3B+ which should be good enough for most kind of UEFI development, as= well as for -running consummer Operating Systems in such as Linux or Windows. +This is meant as a generally useful 64-bit ATF + UEFI implementation for R= aspberry Pi +variants based on the BCM2837 SoC, which should be good enough for most ki= nd of UEFI development, +as well as for running consummer Operating Systems in such as Linux, Windo= ws or the BSDs. =20 Raspberry Pi is a trademark of the [Raspberry Pi Foundation](http://www.ra= spberrypi.org). =20 +# Hardware Supported + +The RPi3 target supports Pi revisions based on the BCM2837 SoC: +- Raspberry Pi 2B v1.2 (older versions are *not* compatible) +- Raspberry Pi 3A+ +- Raspberry Pi 3B +- Raspberry Pi 3B+ +- Raspberry Pi CM3 + +Note: a CM3L, lacking eMMC and thus similar to the 3B, will probably work = as well, but just +has not been tested. + +Please see the RPi4 target for BCM2711-based variants, such as the Raspber= ry Pi 4B. + # Status =20 This firmware, that has been validated to compile against the current @@ -138,27 +152,28 @@ This should allow you to set whatever date/time you w= ant using the Shell date an time commands. While in UEFI or HLOS, the time will tick forward. `RtcEpochSeconds` is not updated on reboots. =20 -## uSD +## uSD (and eMMC for CM3) =20 -UEFI supports both the Arasan SDHCI and the Broadcom SDHost controllers to= access the uSD slot. -You can use either. The other controller gets routed to the SDIO card. The= choice made will +UEFI supports both the Arasan SDHCI and the Broadcom SDHost controllers to= access the flash +media (eMMC on CM3, and uSD slot on everything else). You can use either. = The other controller +gets routed to the SDIO WiFi card (N/A to models without WiFi). The choice= made will impact ACPI OSes booted (e.g. Windows 10). Arasan, being an SDIO controlle= r, is usually used -with the WiFi adapter where available. SDHost cannot be used with SDIO. In= UEFI setup screen: +with the WiFi adapter (where available). SDHost cannot be used with SDIO. = In UEFI setup screen: - go to `Device Manager` - go to `Raspberry Pi Configuration` -- go to `Chipset` -- configure `Boot uSD Routing` +- go to `SD/MMC Configuration` +- configure `uSD/eMMC Routing` =20 Known issues: - Arasan HS/4bit support is missing. -- No 8 bit mode support for (e)MMC (irrelevant for the Pi 3). +- No 8 bit mode support for (e)MMC (slow UEFI file I/O on CM3). - Hacky (e)MMC support (no HS). - No card removal/replacement detection, tons of timeouts and slow down du= ring boot without an uSD card present. =20 ## USB =20 - USB1 BBB mass storage devices untested (USB2 and USB3 devices are fine). -- USB1 CBI mass storage devices don't work (e.g. HP FD-05PUB floppy). +- Some USB1 CBI (e.g. UFI floppy) mass storage devices may not work. =20 ## ACPI =20 @@ -172,4 +187,6 @@ install a kernel that relies on Device Tree rather than= ACPI. ## Missing Functionality =20 - Network booting via onboard NIC. -- Ability to switch UART use to PL011. +- SPCR hardcodes UART type to miniUART, and thus will not expose correct + (PL011) UART on CM3 and Pi2B or if DT overlays to switch UART are used + on Pi 3B/3B+/3A+. diff --git a/Platform/RaspberryPi/RPi4/Readme.md b/Platform/RaspberryPi/RPi= 4/Readme.md index fa9b3146..c1ecfc99 100644 --- a/Platform/RaspberryPi/RPi4/Readme.md +++ b/Platform/RaspberryPi/RPi4/Readme.md @@ -3,14 +3,23 @@ Raspberry Pi 4 Platform =20 # Summary =20 -This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 4 p= latforms. +This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 4B = platform. =20 This is intended to be useful 64-bit [TF-A](https://www.trustedfirmware.or= g/) + -UEFI implementation for the Raspberry Pi 4 which should be good enough for= most -kind of UEFI development, as well as for running consummer Operating Syste= ms. +UEFI implementation for the Raspberry Pi variants based on the BCM2711 SoC, +which should be good enough for most kind of UEFI development, as well run= ning consumer +Operating Systems. =20 Raspberry Pi is a trademark of the [Raspberry Pi Foundation](https://www.r= aspberrypi.org). =20 +# Hardware Supported + +The RPi4 target supports Pi revisions based on the BCM2711 SoC: +- Raspberry Pi 4B + +Please see the RPi3 target for the BCM2837-based variants, such as the Ras= pberry +Pi 3B. + # Status =20 This firmware is still in development stage, meaning that it comes with the @@ -112,3 +121,23 @@ An `RtcEpochSeconds` NVRAM variable is used to store t= he boot time. This should allow you to set whatever date/time you want using the Shell d= ate and time commands. While in UEFI or HLOS, the time will tick forward. `RtcEpochSeconds` is not updated on reboots. + +## USB + +This UEFI supports both the USB3 xHCI ports (front ports), and the Pi 3-st= yle +DesignWare USB2 controller via the Type-C port (host only). + +The following only apply to the Type-C port: +- USB1 BBB mass storage devices untested (USB2 and USB3 devices are fine). +- Some USB1 CBI (e.g. UFI floppy) mass storage devices may not work. + +## ACPI + +OS support for ACPI description of Pi-specific devices is still in develop= ment. Not +all functionality may be available. + +## Missing Functionality + +- Network booting via onboard NIC. +- SPCR hardcodes type to PL011, and thus will not expose correct + (miniUART) UART if DT overlays to switch UART are used on Pi 4B. \ No newline at end of file --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58423): https://edk2.groups.io/g/devel/message/58423 Mute This Topic: https://groups.io/mt/73371879/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-