diff --git a/Makefile b/Makefile index 2e220f1..a054371 100644 --- a/Makefile +++ b/Makefile @@ -18,8 +18,11 @@ REVMARK ?= Draft DOCKER_RUN := docker run --rm -v ${PWD}:/build -w /build \ riscvintl/riscv-docs-base-container-image:latest -HEADER_SOURCE := header.adoc -PDF_RESULT := spec-sample.pdf +HEADER_SOURCE := server_platform_header.adoc +PDF_RESULT := riscv-server-platform.pdf + +TS_HEADER_SOURCE := server_platform_ts_header.adoc +TS_PDF_RESULT := riscv-server-platform-ts.pdf ASCIIDOCTOR_PDF := asciidoctor-pdf OPTIONS := --trace \ @@ -52,14 +55,17 @@ build: build-container: @echo "Starting build inside Docker container..." $(DOCKER_RUN) /bin/sh -c "$(ASCIIDOCTOR_PDF) $(OPTIONS) $(REQUIRES) --out-file=$(PDF_RESULT) $(HEADER_SOURCE)" + $(DOCKER_RUN) /bin/sh -c "$(ASCIIDOCTOR_PDF) $(OPTIONS) $(REQUIRES) --out-file=$(TS_PDF_RESULT) $(TS_HEADER_SOURCE)" @echo "Build completed successfully inside Docker container." build-no-container: @echo "Starting build..." $(ASCIIDOCTOR_PDF) $(OPTIONS) $(REQUIRES) --out-file=$(PDF_RESULT) $(HEADER_SOURCE) + $(ASCIIDOCTOR_PDF) $(OPTIONS) $(REQUIRES) --out-file=$(TS_PDF_RESULT) $(TS_HEADER_SOURCE) @echo "Build completed successfully." clean: @echo "Cleaning up generated files..." rm -f $(PDF_RESULT) + rm -f $(TS_PDF_RESULT) @echo "Cleanup completed." diff --git a/chapter2.adoc b/chapter2.adoc deleted file mode 100644 index 8c11820..0000000 --- a/chapter2.adoc +++ /dev/null @@ -1,47 +0,0 @@ -[[chapter2]] -== The Second Chapter - -. The first item. - -. The second item. -+ -.. The first sub item. - -.. The second sub item. -+ -[CAUTION] -==== -A moment of caution is required for this block of text must be read and apreciated for its importance. -==== - -. Yet another item. - -. Again, an item. - -.. A multi-line item. -+ -This item has multiple lines. -+ -By multiple lines, this is what we mean. -+ -Seriously, multiple. - -=== An example table - -[cols="^1,^1,^1,^1,^3,^3",stripes=even,options="header"] -|=== -4+|Letters _and_ bits {set:cellbgcolor:green} 2+|A much longer area -|L|R|W|X|Quarter 1|Quarter 2 -|{set:cellbgcolor:!} 0|0|0|0 2+|Rows alternate colors -|0|0|0|1|Thing 1|Thing 2 -|1|0|0|0|Thing 3|Thing 4 -|1|1|1|1 2+|Span Thing 1 and 2 -|=== - -=== Sub section - -Diam donec adipiscing tristique risus indexterm:[risus]. Nisl rhoncus mattis rhoncus urna. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Massa vitae tortor condimentum lacinia quis vel. Donec ac odio tempor orci. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Quis enim lobortis scelerisque fermentum dui. Lacus viverra vitae congue eu. Sed faucibus turpis in eu mi bibendum neque. Sit amet porttitor eget dolor. Aliquet eget sit amet tellus cras adipiscing enim. Id cursus metus aliquam eleifend mi. Vestibulum lorem sed risus ultricies tristique nulla aliquet. - -=== Yet another subsection - -Quam lacus suspendisse faucibus interdum posuere lorem ipsum. Nulla aliquet enim tortor at auctor urna nunc id cursus. Massa massa ultricies mi quis hendrerit dolor magna. Integer enim neque volutpat ac tincidunt. Dolor magna eget est lorem ipsum dolor. Urna neque viverra justo nec. Neque gravida in fermentum et. Fringilla ut morbi tincidunt augue interdum velit euismod. Dolor sit amet consectetur adipiscing elit. Eu facilisis sed odio morbi. In cursus turpis massa tincidunt dui. Orci indexterm:[orci] phasellus egestas tellus rutrum tellus. Semper eget duis at tellus at urna condimentum. Orci porta non pulvinar neque laoreet suspendisse interdum consectetur. diff --git a/example.bib b/example.bib deleted file mode 100644 index 9da24b1..0000000 --- a/example.bib +++ /dev/null @@ -1,36 +0,0 @@ -@inproceedings{riscI-isca1981, - title = {{RISC I}: {A} Reduced Instruction Set {VLSI} Computer}, - author = {David A. Patterson and Carlo H. S\'{e}quin}, - booktitle = {ISCA}, - location = {Minneapolis, Minnesota, USA}, - pages = {443-458}, - year = {1981} -} - -@inproceedings{Katevenis:1983, - author = {Manolis G.H. Katevenis and Robert W. Sherburne Jr. and David A. Patterson and Carlo H. S\'{e}quin}, - title = {The {RISC II} micro-architecture}, - booktitle = {Proceedings VLSI 83 Conference}, - year = {1983}, - month = {August} -} - -@inproceedings{Ungar:1984, - author = {David Ungar and Ricki Blau and Peter Foley and Dain Samples and David Patterson}, - title = {Architecture of {SOAR}: {Smalltalk} on a {RISC}}, - booktitle = {ISCA}, - address = {Ann Arbor, MI}, - year = {1984}, - pages = {188-197} -} - -@article{spur-jsscc1989, - author = {David D. Lee and Shing I. Kong and Mark D. Hill and George S. Taylor and David A. Hodges and Randy H. Katz and David A. Patterson}, - title = {A {VLSI} Chip Set for a Multiprocessor Workstation--{Part I}: An {RISC} Microprocessor with Coprocessor Interface and Support for Symbolic Processing}, - journal = {IEEE JSSC}, - year = {1989}, - volume = {24}, - number = {6}, - pages = {1688-1698}, - month = {December} -} \ No newline at end of file diff --git a/header.adoc b/header.adoc deleted file mode 100644 index 5fb1282..0000000 --- a/header.adoc +++ /dev/null @@ -1,66 +0,0 @@ -= RISC-V Example Specification Document (Zexmpl) -Authors: Author 1, Author 2 -:docgroup: RISC-V Task Group -:description: RISC-V Example Specification Document (Zexmpl) -:company: RISC-V.org -:revdate: 1/2023 -:revnumber: 1.0 -:revremark: This document is under development. Expect potential changes. Visit http://riscv.org/spec-state for further details. -:revinfo: -:url-riscv: http://riscv.org -:doctype: book -:preface-title: Preamble -:colophon: -:appendix-caption: Appendix -:imagesdir: docs-resources/images -:title-logo-image: image:risc-v_logo.png[pdfwidth=3.25in,align=center] -// Settings: -:experimental: -:reproducible: -//:WaveDromEditorApp: app/wavedrom-editor.app -:imagesoutdir: docs-resources/images -:bibtex-file: example.bib -:bibtex-order: alphabetical -:bibtex-style: apa -:icons: font -:lang: en -:listing-caption: Listing -:sectnums: -:toc: left -:toclevels: 4 -:source-highlighter: pygments -ifdef::backend-pdf[] -:source-highlighter: coderay -endif::[] -:data-uri: -:hide-uri-scheme: -:stem: latexmath -:footnote: -:xrefstyle: short - -[WARNING] -.This document is in the link:http://riscv.org/spec-state[Development state] -==== -Expect potential changes. This draft specification is likely to evolve before -it is accepted as a standard. Implementations based on this draft -may not conform to the future standard. -==== - -[preface] -== Copyright and license information -This specification is licensed under the Creative Commons -Attribution 4.0 International License (CC-BY 4.0). The full -license text is available at -https://creativecommons.org/licenses/by/4.0/. - -Copyright 2022 by RISC-V International. - -[preface] -include::contributors.adoc[] - -include::intro.adoc[] -include::chapter2.adoc[] - -// The index must precede the bibliography -include::index.adoc[] -include::bibliography.adoc[] \ No newline at end of file diff --git a/images/riscv-server-platform.png b/images/riscv-server-platform.png new file mode 100644 index 0000000..aafa47f Binary files /dev/null and b/images/riscv-server-platform.png differ diff --git a/images/riscv-server-platform.svg b/images/riscv-server-platform.svg new file mode 100644 index 0000000..8254e1d --- /dev/null +++ b/images/riscv-server-platform.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/intro.adoc b/intro.adoc deleted file mode 100644 index 0d62327..0000000 --- a/intro.adoc +++ /dev/null @@ -1,15 +0,0 @@ -[[intro]] -== Introduction - -Lorem ipsum indexterm:[Lorem ipsum] dolor sit amet, consectetur adipiscing elit, sed do *eiusmod tempor* incididunt ut labore et dolore magna aliqua. Felis imperdiet proin fermentum leo vel orci porta. Volutpat lacus laoreet non curabitur indexterm:[curabitur] gravida indexterm:[gravida]. Posuere urna nec tincidunt praesent semper feugiat nibh. Elit ``ullamcorper`` dignissim cras tincidunt lobortis. Malesuada fames ac turpis egestas integer eget. Tristique sollicitudin nibh sit amet commodo. Sed felis eget velit aliquet. Sit amet aliquam id diam maecenas ultricies mi. Consectetur purus ut faucibus pulvinar. Lectus urna duis convallis convallis tellus id. Fermentum iaculis eu non diam. Feugiat in fermentum posuere urna nec tincidunt praesent semper feugiat. Urna nec tincidunt praesent semper feugiat nibh. - -Commodo viverra maecenas accumsan lacus. Vulputate odio ut enim blandit indexterm:[blandit] volutpat maecenas volutpat blandit. Urna porttitor rhoncus dolor purus non. Tellus mauris a diam maecenas sed. Vitae auctor eu augue ut lectus. Ridiculus mus mauris vitae ultricies leo integer. Consequat semper viverra nam *libero* justo laoreet sit amet. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus et. Ac placerat vestibulum lectus mauris ``ultrices`` eros in cursus turpis. Accumsan in nisl nisi scelerisque eu ultrices vitae. Cras ornare arcu dui vivamus. Vitae congue mauris rhoncus aenean. Consequat mauris nunc congue nisi vitae suscipit tellus. Tempus egestas sed sed risus pretium quam vulputate dignissim. Quis varius quam quisque id diam vel. Mattis nunc sed blandit libero volutpat sed cras ornare arcu. Amet mauris commodo quis imperdiet massa tincidunt nunc. - -[NOTE] -==== -The name RISC-V indexterm:[RISC-V] was chosen to represent the fifth major RISC ISA design from UC Berkeley (RISC-I cite:[riscI-isca1981], RISC-II cite:[Katevenis:1983], SOAR cite:[Ungar:1984], and SPUR cite:[spur-jsscc1989] were the first four). We also pun on the use of the Roman numeral "V" to signify "variations" and "vectors", as support for a range of architecture research, including various data-parallel accelerators, is an explicit goal of the ISA design. -==== - -=== Sub Section of Introduction - -Pellentesque habitant morbi *tristique* senectus et netus et. Aliquam purus sit amet luctus. Odio eu ``feugiat`` pretium nibh ipsum consequat nisl vel. Euismod lacinia at quis risus sed vulputate odio ut. Eu sem integer vitae justo eget. Cursus euismod quis viverra nibh. Tempus egestas sed sed risus. Quis imperdiet massa tincidunt nunc pulvinar. Id venenatis a condimentum vitae sapien pellentesque habitant. diff --git a/readme.adoc b/readme.adoc index 406a8cb..8ea7490 100644 --- a/readme.adoc +++ b/readme.adoc @@ -1,56 +1,49 @@ -= RISC-V Specification Template += RISC-V Server Platform and Server Platform Test specifications -This repository serves as a blueprint for creating GitHub repositories within the RISC-V organization for the purpose of developing specifications. The template aims to facilitate and standardize the process of specification development. +This document is capturing discussions at the Server Platform TG. +These are not official specifications and everything in this document may change. -NOTE: If you are viewing this in a specification repository, kindly update the title for this section and provide an introduction relevant to your repository. += License -== License +This work is licensed under a Creative Commons Attribution 4.0 International License (CC-BY-4.0). +See the https://github.com/riscv/docs-spec-template/blob/main/LICENSE[LICENSE] file for details. -This work is licensed under a Creative Commons Attribution 4.0 International License (CC-BY-4.0). For details, see the link:LICENSE[LICENSE] file. += Contributors -== Contributors +Contributors to this specification are contained in the +https://github.com/riscv-non-isa/riscv-server-platform/blob/main/server_platform_contributors.adoc[server_platform_contributors.adoc] file. -The list of contributors to this specification is maintained in the link:contributors.adoc[contributors] file. += Dependencies -For guidelines on how to contribute, refer to the link:CONTRIBUTING.md[CONTRIBUTING] file. +This project is built using AsciiDoctor (Ruby). The repository has been setup to build the PDF on +checkin using GitHub actions. Workflow dependencies are located in the `dependencies` directory. -== Building the Document +For more information on AsciiDoctor, specification guidelines, or building locally, see the +https://github.com/riscv/docs-dev-guide[RISC-V Documentation Developer Guide]. -=== Prerequisites += Cloning the project -To build the document, you'll need the following tools installed on your system: +This project uses https://git-scm.com/book/en/v2/Git-Tools-Submodules[GitHub Submodules] +to include the https://github.com/riscv/docs-resources[RISC-V docs-resources project] +to achieve a common look and feel. -* Make -* asciiDoctor-pdf, asciidoctor-bibtex, asciidoctor-diagram and asciidoctor-mathematical -* Docker +When cloning this repository for the first time, you must either use +`git clone --recurse-submodules` or execute `git submodule init` and `git submodule update` after the clone to populate the docs-resources directory. Failure to clone the submodule, will result +in the PDF build fail with an error message like the following: -=== Cloning the Repository + $ make + asciidoctor-pdf \ + -a toc \ + -a compress \ + -a pdf-style=docs-resources/themes/riscv-pdf.yml \ + -a pdf-fontsdir=docs-resources/fonts \ + --failure-level=ERROR \ + -o profiles.pdf profiles.adoc + asciidoctor: ERROR: could not locate or load the built-in pdf theme `docs-resources/themes/riscv-pdf.yml'; reverting to default theme + No such file or directory - notoserif-regular-subset.ttf not found in docs-resources/fonts + Use --trace for backtrace + make: *** [Makefile:7: profiles.pdf] Error 1 -`git clone --recurse-submodules https://github.dev/riscv-non-isa/riscv-platforms` += Building the documents -==== Setting Environment Variables - -These variables can be overridden by setting environment variables on your system. Here's how you can do it in Linux and MacOS: - -```bash -export VERSION=v1.2.3 -export REVMARK=Release -export PDF_RESULT=spec.pdf -``` - -=== Building the Documentation - -To start the build process, run `cd ./riscv-platforms && make build`. - -The Makefile script will check the availability of Docker on your system: - -* If Docker is available, the documentation will be built inside a Docker container using the image riscvintl/riscv-docs-base-container-image:latest. This ensures a consistent build environment across different systems. -* If Docker is not available, the documentation will be built directly on your system using the installed tools. - -The documentation is generated from the AsciiDoctor source files in your project. The primary source file is specified by the `HEADER_SOURCE` variable in the Makefile. - -The build process utilizes several options, including theming and font settings, and generates a PDF document as output. - -=== Cleaning up - -To clean up the generated files, run `make clean`. This will remove the generated PDF file. +The final specification form of PDF can be generated using the `make` command. diff --git a/server_platform.bib b/server_platform.bib new file mode 100644 index 0000000..5e72d27 --- /dev/null +++ b/server_platform.bib @@ -0,0 +1,32 @@ +@electronic{BRS, + title = {RISC-V Boot and Runtime Services Specification}, + url = {https://github.com/riscv-non-isa/riscv-brs}, + year = {} +} +@electronic{BRSTest, + title = {RISC-V Boot and Runtime Services Test Specification}, + url = {https://github.com/riscv-non-isa/riscv-brs}, + year = {} +} +@electronic{ServerSoC, + title = {RISC-V Server SoC Specification}, + url = {https://github.com/riscv-non-isa/server-soc}, + year = {} +} +@electronic{ServerSoCTest, + title = {RISC-V Server SoC Test Specification}, + url = {https://github.com/riscv-non-isa/server-soc}, + year = {} +} +@electronic{RFC_2119, + title = {Key words for use in RFCs to Indicate Requirement Levels}, + url = {https://datatracker.ietf.org/doc/html/rfc2119} +} +@electronic{ACPI, + title = {Advanced Configuration and Power Interface (ACPI) Specification}, + url = {https://uefi.org/specifications} +} +@electronic{UEFI, + title = {Unified Extensible Firmware Interface}, + url = {https://uefi.org/specifications} +} \ No newline at end of file diff --git a/bibliography.adoc b/server_platform_bibliography.adoc similarity index 100% rename from bibliography.adoc rename to server_platform_bibliography.adoc diff --git a/contributors.adoc b/server_platform_contributors.adoc similarity index 55% rename from contributors.adoc rename to server_platform_contributors.adoc index 13fd776..0b96483 100644 --- a/contributors.adoc +++ b/server_platform_contributors.adoc @@ -1,7 +1,6 @@ == Contributors -This RISC-V specification has been contributed to directly or indirectly by: +This RISC-V specification has been contributed to directly or indirectly by (in alphabetical order): [%hardbreaks] -* Author1 -* Author2 +Andrei Warkentin, Ved Shanbhogue \ No newline at end of file diff --git a/server_platform_header.adoc b/server_platform_header.adoc new file mode 100644 index 0000000..b7515da --- /dev/null +++ b/server_platform_header.adoc @@ -0,0 +1,62 @@ +[[header]] +:description: RISC-V Server Platform Specification +:company: RISC-V.org +:revdate: 11/2023 +:revnumber: 0.1 +:revremark: This document is in development. Assume everything can change. See http://riscv.org/spec-state for details. +:url-riscv: http://riscv.org +:doctype: book +:preface-title: Preamble +:colophon: +:appendix-caption: Appendix +:imagesdir: images +:title-logo-image: image:risc-v_logo.png[pdfwidth=3.25in,align=center] +// Settings: +:experimental: +:reproducible: +:imagesoutdir: images +:bibtex-file: server_platform.bib +:bibtex-order: appearance +:bibtex-style: ieee +:icons: font +:lang: en +:listing-caption: Listing +:sectnums: +:toc: left +:toclevels: 4 +:source-highlighter: pygments +ifdef::backend-pdf[] +:source-highlighter: coderay +endif::[] +:data-uri: +:hide-uri-scheme: +:stem: latexmath +:footnote: +:xrefstyle: short + += RISC-V Server Platform Specification +Server Platform Task Group + +// Preamble +[WARNING] +.This document is in the link:http://riscv.org/spec-state[Development state] +==== +Assume everything can change. This draft specification will change before +being accepted as standard, so implementations made to this draft +specification will likely not conform to the future standard. +==== + +[preface] +== Copyright and license information +This specification is licensed under the Creative Commons +Attribution 4.0 International License (CC-BY 4.0). The full +license text is available at +https://creativecommons.org/licenses/by/4.0/. + +Copyright 2023 by RISC-V International. + +[preface] +include::server_platform_contributors.adoc[] +include::server_platform_intro.adoc[] +include::server_platform_requirements.adoc[] +include::server_platform_bibliography.adoc[] diff --git a/index.adoc b/server_platform_index.adoc similarity index 100% rename from index.adoc rename to server_platform_index.adoc diff --git a/server_platform_intro.adoc b/server_platform_intro.adoc new file mode 100644 index 0000000..4c387f9 --- /dev/null +++ b/server_platform_intro.adoc @@ -0,0 +1,112 @@ +[[intro]] + +== Introduction + +The RISC-V Server Platform specification defines a standardized set of +hardware and sofware capabilities, that portable system software, such +as operating systems and hypervisors, can rely on being present in a RISC-V +server platform. + +A server is a computing system designed to manage and distribute resources, +services, and data to other computers or devices on a network. It is often +referred to as a 'server' because it serves or provides information and +resources upon request. Such computing systems are designed to operate +continually and have higher requirements for capabilities such as RAS, security, +performance, and quality of service. Examples of servers include web servers, +file servers, database servers, mail servers, game servers, and more. This +specification focuses on defining requirements for general-purpose server +computing systems that may be used for one or more of these purposes. + +[[fig:RISC-V-Server-Platform]] +.Components of a RISC-V Server Platform +image::riscv-server-platform.png[width=800] + +The RISC-V server platform is defined as the collection of SoC hardware, +peripherals, platform firmware, boot/runtime services, and platform security services. +The platform provides hardware interfaces (e.g., harts, timers, interrupt +controllers, PCIe root ports, etc.) to portable system software. It also offers a set of +standardized boot and runtime services based on the UEFI and ACPI standards. To +support provisioning and platform management, it interfaces with a baseboard +management controller (BMC) through both in-band and out-of-band (OOB) +management interfaces. The in-band management interfaces support the use of +standard manageability specifications like MCTP, PLDM, IPMI, and Redfish for +provisioning and management of the operating system executing on the platform. +The OOB interface supports the use of standard manageability specifications like +MCTP, PLDM, Redfish, and IPMI for functions such as power management, telemetry, +debug, and provisioning. The platform security model includes guidelines and requirements +for aspects such as debug authorization, secure/measured boot, firmware updates, +firmware resilience, and confidential computing, among others. + +The platform firmware, typically operating at privilege level M, is +considered part of the platform and is usually expected to be customized and +tailored to meet the requirements of the SoC hardware (e.g., initialization +of address decoders, memory controllers, RAS, etc.), boot/runtime services +and platform security. + +This specification standardizes the requirements for hardware and software +interfaces and capabilities by building on top of relevant RISC-V standards, +such as the Server SoC, Boot and Runtime Services and Platform Security +specifications for server software executing on the application processor harts +at privilege levels below M. It enables OS and hypervisor vendors to support such +platforms with a single binary OS image distribution model. The requirements posed by this +specification represent a standard set of infrastructural capabilities, +encompassing areas where divergence is typically unnecessary and where novelty +is absent across implementations. + +To be compliant with this specification, the server platform MUST support all +mandatory requirements and MUST support the listed versions of the specifications. +This standard set of capabilities MAY be extended by a specific implementation with +additional standard or custom capabilities, including compatible later +versions of listed standard specifications. Portable system software MUST +support the specified mandatory capabilities to be compliant with this +specification. + +The requirements in this specification use the following format: + +[width=100%] +[%header, cols="5,20"] +|=== +| ID# ^| Requirement +| CAT_NNN | The `CAT` is a category prefix that logically groups the + requirements and is followed by 3 digits - `NNN` - assigning a + numeric ID to the requirement. + + + + The requirements use the key words "MUST", "MUST NOT", + "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", + "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" that are + to be interpreted as described in RFC 2119 cite:[RFC_2119] when, + and only when, they appear in all capitals, as shown here. When + these words are not capitalized, they have their normal English + meanings. +2+| _A requirement or a group of requirements may be followed by non-normative + text providing context or justification for the requirement. The + non-normative text may also be used to reference sources that are the + origin of the requirement._ +|=== + +This specification groups the requirements in the following broad categories: + +* Hardware +* Firmware +* Security + +=== Glossary + +Most terminology has the standard RISC-V meaning. This table captures other +terms used in the document. + +.Terms and definitions +[width=90%] +[%header, cols="5,20"] +|=== +| Term ^| Definition +| ACPI | Advanced Configuration and Power Interface cite:[ACPI]. +| Guest | Software in a virtual machine. +| Hypervisor | Software entity that controls virtualization. +| ID | Identifier. +| OS | Operating System. +| SoC | System on a chip, also referred as system-on-a-chip and + system-on-chip. +| UEFI | Unified Extensible Firmware Interface. cite:[UEFI] +| VM | Virtual Machine. +|=== diff --git a/server_platform_requirements.adoc b/server_platform_requirements.adoc new file mode 100644 index 0000000..18d0771 --- /dev/null +++ b/server_platform_requirements.adoc @@ -0,0 +1,18 @@ +== Server Platform Hardware Requirements + +=== RISC-V SoC + +A RISC-V server platform is based on a RISC-V SoC with RISC-V application processors. + +[width=100%] +[%header, cols="5,25"] +|=== +| ID# ^| Requirement +| HSOC_010 | The RISC-V SoC MUST comply to the Server SoC specification cite:[ServerSoC]. +2+| _The Server SoC specification is still under construction. This specification should + be updated once the specification versioning info is finalized._ +|=== + +== Server Platform Firmware Requirements + +== Server Platform Security Requirements diff --git a/server_platform_tests.adoc b/server_platform_tests.adoc new file mode 100644 index 0000000..29e21ba --- /dev/null +++ b/server_platform_tests.adoc @@ -0,0 +1,33 @@ +== Server Platform Test Specification + +=== Server Platform Hardware Requirements + +==== RISC-V SoC + +[width=100%] +[%header, cols="8,25"] +|=== +| ID# ^| Algorithm +|=== + +<<< + +=== Server Platform Firmware Requirements + +[width=100%] +[%header, cols="8,25"] +|=== +| ID# ^| Algorithm +|=== + +<<< + +=== Server Platform Security Requirements + +[width=100%] +[%header, cols="8,25"] +|=== +| ID# ^| Algorithm +|=== + +<<< diff --git a/server_platform_ts_header.adoc b/server_platform_ts_header.adoc new file mode 100644 index 0000000..c536174 --- /dev/null +++ b/server_platform_ts_header.adoc @@ -0,0 +1,62 @@ +[[header]] +:description: RISC-V Server Platform Test Specification +:company: RISC-V.org +:revdate: 11/2023 +:revnumber: 0.1 +:revremark: This document is in development. Assume everything can change. See http://riscv.org/spec-state for details. +:url-riscv: http://riscv.org +:doctype: book +:preface-title: Preamble +:colophon: +:appendix-caption: Appendix +:imagesdir: images +:title-logo-image: image:risc-v_logo.png[pdfwidth=3.25in,align=center] +// Settings: +:experimental: +:reproducible: +:imagesoutdir: images +:bibtex-file: server_platform.bib +:bibtex-order: appearance +:bibtex-style: ieee +:icons: font +:lang: en +:listing-caption: Listing +:sectnums: +:toc: left +:toclevels: 4 +:source-highlighter: pygments +ifdef::backend-pdf[] +:source-highlighter: coderay +endif::[] +:data-uri: +:hide-uri-scheme: +:stem: latexmath +:footnote: +:xrefstyle: short + += RISC-V Server Platform Test Specification +Server Platform Task Group + +// Preamble +[WARNING] +.This document is in the link:http://riscv.org/spec-state[Development state] +==== +Assume everything can change. This draft specification will change before +being accepted as standard, so implementations made to this draft +specification will likely not conform to the future standard. +==== + +[preface] +== Copyright and license information +This specification is licensed under the Creative Commons +Attribution 4.0 International License (CC-BY 4.0). The full +license text is available at +https://creativecommons.org/licenses/by/4.0/. + +Copyright 2023 by RISC-V International. + +[preface] +include::server_platform_contributors.adoc[] +include::server_platform_ts_intro.adoc[] +include::server_platform_tests.adoc[] +include::server_platform_bibliography.adoc[] diff --git a/server_platform_ts_intro.adoc b/server_platform_ts_intro.adoc new file mode 100644 index 0000000..074a73e --- /dev/null +++ b/server_platform_ts_intro.adoc @@ -0,0 +1,63 @@ +[[intro]] + +== Introduction + +The RISC-V Server Platform Test specification defines a set of tests to verify if the +requirements specified in RISC-V Server Platform specification are implemented. The +tests specified in this specification are not intended to exhaustively verify +the implementation. In most cases the tests only check for existence of the +feature. Future versions of this specification may include more exhaustive +tests. + +The Server Platform specification builds on top of the Server SoC, +Boot and Runtime Services and Platform Security specifications, which +in turn have their own test specifications and/or compliance requirements. +This test specification does not duplicate requirements in these dependent +test specification, but provides additional tests on top the the tests +already defined in these other documents. + +The tests in this specification are documented use the following format: + +[width=100%] +[%header, cols="8,20"] +|=== +| TEST_ID# ^| Test algorithm +| AB_CAT_NNN_MMM a| The `CAT_NNN` identifies a requirement in the RISC-V Server + SoC specification. Each requirement is associated with one + or more tests identified by `MMM`. The test IDs are prefixed + with two character prefix - `AB`. + + + + If character in position `A` is `M` then the test is for a + requirement that MUST be supported and this test MUST pass. + If character in position `A` is `O` then the test is for a + requirement that SHOULD or MAY be supported; such tests may + be skipped if the requirement is not implemented. The tests + record if optional features were present in the test output + log. + + + + The character in position `B` indicates the nature of the + test. If this character is `F` then the test exercises some + or all of the functionality associated with the feature. If + the character is `E` then the test determines for evidence + that the feature is implemented (e.g., check ACPI tables) + but does not functionally exercise the feature. + +|=== + +This specification groups the tests in the following broad categories: + +* Hardware +* Firmware +* Security + +=== Glossary + +Most terminology has the standard RISC-V meaning. This table captures other +terms used in the document. + +.Terms and definitions +[width=90%] +[%header, cols="5,20"] +|=== +| Term ^| Definition +|===