Am 13. Oktober 2020 20:39:12 MESZ schrieb Atish Patra <atish.pa...@wdc.com>:
>This patch adds all minimum mandatory requirements to make RISC-V
>compatible
>with EBBR.
>
>Signed-off-by: Atish Patra <atish.pa...@wdc.com>
>---
> source/chapter1-about.rst       | 42 +++++++++++++++++++++++++++++++--
> source/chapter2-uefi.rst        | 10 +++++++-
> source/chapter3-secureworld.rst | 13 ++++++++++
> source/references.rst           |  4 ++++
> 4 files changed, 66 insertions(+), 3 deletions(-)
>
>diff --git a/source/chapter1-about.rst b/source/chapter1-about.rst
>index 3db3f3280448..6927c87a125f 100644
>--- a/source/chapter1-about.rst
>+++ b/source/chapter1-about.rst
>@@ -152,9 +152,10 @@ operating system.
>SBBR is targeted at the server ecosystem and places strict requirements
>on the
> platform to ensure cross vendor interoperability.
>EBBR on the other hand allows more flexibility to support embedded
>designs
>-which do not fit within the SBBR model.
>-For example, a platform that isn't SBBR compliant because the SoC is
>only
>+which do not fit within the SBBR model. For example, a platform that
>isn't SBBR compliant because the SoC is only
>supported using Devicetree could be EBBR compliant, but not SBBR
>compliant.
>+EBBR also supports multiple architectures such as AArch64 & RISC-V.
>However, RISC-V
>+is not compatible with SBBR. Thus, a EBBR compliant RISC-V platform
>would not be SBBR compliant.
> 
>By definition, all SBBR compliant systems are also EBBR compliant, but
>the
> converse is not true.
>@@ -228,6 +229,43 @@ This document uses the following terms and
>abbreviations.
>    Original Equipment Manufacturer. In this document, the final device
>       manufacturer.
> 
>+   RISC-V
>+      An open standard Instruction Set Architecture (ISA) based on
>Reduced Instruction
>+      Set Architecture (RISC).
>+
>+   HART
>+      Hardware thread in RISC-V. This is the hardware execution
>context that contains
>+      all the state mandated by the ISA.
>+
>+   M Mode
>+      Machine mode is the most secure and privileged mode in RISC-V.
>+
>+   S Mode
>+      Supervisor mode is the next secure mode where virtual memory is
>enabled.
>+
>+   HS Mode
>+      Hypervisor-extended-supervisor mode which virtualizes the
>supervisor mode.
>+
>+   U Mode
>+      User mode where userspace application is expected to run.
>+
>+   HSM
>+      Hart State Management (HSM) is an SBI extension that enables the
>supervisor
>+      mode software to implement ordered booting.
>+
>+   SEE
>+      Supervisor Execution Environment in RISC-V. This can be M mode
>or HS mode.
>+
>+   SBI
>+      Supervisor Binary Interface. This is an interface between SEE
>and supervisor
>+      mode in RISC-V.
>+
>+   RV32
>+      32 bit execution mode in RISC-V.
>+
>+   RV64
>+      64 bit execution mode in RISC-V.
>+
>    SiP
>       Silicon Partner. In this document, the silicon manufacturer.
> 
>diff --git a/source/chapter2-uefi.rst b/source/chapter2-uefi.rst
>index 74ef70e29784..ad9d9543555e 100644
>--- a/source/chapter2-uefi.rst
>+++ b/source/chapter2-uefi.rst
>@@ -36,7 +36,7 @@ Resident UEFI firmware might target a specific
>privilege level.
> In contrast, UEFI Loaded Images, such as third-party drivers and boot
>applications, must not contain any built-in assumptions that they are
>to be
>loaded at a given privilege level during boot time since they can, for
>example,
>-legitimately be loaded into either EL1 or EL2 on AArch64.
>+legitimately be loaded into either EL1 or EL2 on AArch64 and HS or S
>mode in RISC-V.
> 
> AArch64 Exception Levels
> ------------------------
>@@ -59,6 +59,14 @@ UEFI-compliant Operating System.
> In this instance, the UEFI boot-time environment can be provided, as a
>virtualized service, by the hypervisor and not as part of the host
>firmware.
> 
>+RISC-V privilege levels
>+-----------------------
>+
>+UEFI shall execute in RV32/RV64 mode either in S or HS mode depending
>on whether
>+or not virtualization is supported in hardware and available at OS
>load time.
>+If the UEFI firmware is running in HS mode, the hypervisor is
>responsible for
>+providing the virtualized boot-time/runtime services.
>+
> UEFI Boot Services
> ==================
> 
>diff --git a/source/chapter3-secureworld.rst
>b/source/chapter3-secureworld.rst
>index 9c51bca24f33..1551aa90c349 100644
>--- a/source/chapter3-secureworld.rst
>+++ b/source/chapter3-secureworld.rst
>@@ -27,3 +27,16 @@ Platforms without EL3 must implement one of:
> However, the spin table protocol is strongly discouraged.
>Future versions of this specification will only allow PSCI, and PSCI
>should
> be implemented in all new designs.
>+
>+
>+RISC-V Multiprocessor Startup protocol
>+======================================
>+The firmware resident in M-mode or hypervisor running in HS mode must
>implement
>+and conform to at least Supervisor Binary Specification [SBI]_ v0.2
>with HART
>+State Management(HSM) extension for both RV32 and RV64. In addition to
>that, the
>+firmware must ensure the following conditions before jumping to the
>UEFI
>+application.
>+    - a0 must always contain the hart id of the booting hart.
>+    - a1 must always contain the memory address of the device tree.

I think this is only true for the non-EFI entry-point of Linux.

The EFI entry point expects the system table and the image handle as only 
arguments. That is why you put the boot hart id into the device-tree which is a 
configuration table pointed to by the system table.

>+    - The device tree must contain a property named **boot-hartid**
>under */chosen* node.

%/under/under the/

How is this modelled when using an ACPI table and not a device tree?

Best regards

Heinrich

>+      This property must indicate the  id of the booting hart.
>diff --git a/source/references.rst b/source/references.rst
>index 1eb05090647e..9c96cb977c7e 100644
>--- a/source/references.rst
>+++ b/source/references.rst
>@@ -23,3 +23,7 @@
>.. [UEFI] `Unified Extensable Firmware Interface Specification v2.8
>Errata A
><https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_A_Feb14.pdf>`_,
>    February 2020, `UEFI Forum <http://www.uefi.org>`_
>+
>+.. [SBI] `Supervisor Binary Interface (SBI)
>+     
><https://github.com/riscv/riscv-sbi-doc/blob/master/riscv-sbi.adoc>`_
>+      11 October 2020, `RISC-V International <https://riscv.org/>`_
>-- 
>2.28.0
>
>_______________________________________________
>boot-architecture mailing list
>boot-architecture@lists.linaro.org
>https://lists.linaro.org/mailman/listinfo/boot-architecture

_______________________________________________
boot-architecture mailing list
boot-architecture@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/boot-architecture

Reply via email to