public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Andrei Warkentin" <andrey.warkentin@gmail.com>
To: devel@edk2.groups.io
Cc: ard.biesheuvel@arm.com, leif@nuviainc.com, pete@akeo.ie,
	philmd@redhat.com
Subject: [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	[thread overview]
Message-ID: <20200430092652.54526-5-andrey.warkentin@gmail.com> (raw)
In-Reply-To: <20200430092652.54526-1-andrey.warkentin@gmail.com>

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 <andrey.warkentin@gmail.com>
---
 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/RPi3/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
-=====================
+Raspberry Pi 3 Platform
+=======================
 
 # Summary
 
-This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 3/3B+ 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/Pi3BoardPkg)
 implementations, as maintained by [Andrei Warkentin](https://github.com/andreiw/RaspberryPiPkg).
 
-This is meant as a generally useful 64-bit ATF + UEFI implementation for the 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 Raspberry Pi
+variants based on the BCM2837 SoC, which should be good enough for most kind of UEFI development,
+as well as for running consummer Operating Systems in such as Linux, Windows or the BSDs.
 
 Raspberry Pi is a trademark of the [Raspberry Pi Foundation](http://www.raspberrypi.org).
 
+# 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 Raspberry Pi 4B.
+
 # Status
 
 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 want using the Shell date an
 time commands. While in UEFI or HLOS, the time will tick forward.
 `RtcEpochSeconds` is not updated on reboots.
 
-## uSD
+## uSD (and eMMC for CM3)
 
-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 controller, 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`
 
 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 during boot without an uSD card present.
 
 ## USB
 
 - 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.
 
 ## ACPI
 
@@ -172,4 +187,6 @@ install a kernel that relies on Device Tree rather than ACPI.
 ## Missing Functionality
 
 - 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/RPi4/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
 
 # Summary
 
-This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 4 platforms.
+This is a port of 64-bit Tiano Core UEFI firmware for the Raspberry Pi 4B platform.
 
 This is intended to be useful 64-bit [TF-A](https://www.trustedfirmware.org/) +
-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 Systems.
+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 running consumer
+Operating Systems.
 
 Raspberry Pi is a trademark of the [Raspberry Pi Foundation](https://www.raspberrypi.org).
 
+# 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 Raspberry
+Pi 3B.
+
 # Status
 
 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 the boot time.
 This should allow you to set whatever date/time you want using the Shell date 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-style
+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 development. 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
-- 
2.17.1


  parent reply	other threads:[~2020-04-30  9:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-30  9:26 [edk2-platforms][PATCH 0/4] (v2) extend RPi3 to support 3A+, 2B (v1.2) and CM3 Andrei Warkentin
2020-04-30  9:26 ` [edk2-platforms][PATCH 1/4] RPi3: support Pi 2B v1.2 Andrei Warkentin
2020-04-30  9:26 ` [edk2-platforms][PATCH 2/4] RPi: fix MmcTransferBlock (writes) regression for eMMC Andrei Warkentin
2020-04-30  9:26 ` [edk2-platforms][PATCH 3/4] RPi: update HII strings in ConfigDxe to reflect eMMC support Andrei Warkentin
2020-04-30  9:26 ` Andrei Warkentin [this message]
2020-04-30  9:34 ` [edk2-platforms][PATCH 0/4] (v2) extend RPi3 to support 3A+, 2B (v1.2) and CM3 Ard Biesheuvel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200430092652.54526-5-andrey.warkentin@gmail.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox