From 7902a5d781bce553b45655b964541f041e7307e5 Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Mon, 10 Jan 2022 00:56:42 +0100 Subject: [PATCH] add all specifications * add/sanitize all specification documents * add/sanitize all version of a specification * move to single vesioned documents * rename pages to be generic names * update template single layout to include tags and better layout Signed-off-by: Toshaan Bharvani --- assets/images/specifications/opmb-mbd.png | Bin 0 -> 34545 bytes .../{64bitelfv2abi.md => 64bitelfabi.md} | 13 ++-- .../advancedacceleratoradapter.md | 35 ++++++++++ content/specifications/caia.md | 22 +++++++ content/specifications/fsi.md | 28 ++++++++ content/specifications/ioda.md | 20 ++++++ content/specifications/isa.md | 33 ++++++++++ content/specifications/linuxonpower.md | 17 +++++ content/specifications/memorybus.md | 27 ++++++++ content/specifications/ocpa.md | 16 +++++ content/specifications/powerisa207.md | 2 +- content/specifications/powerisa30.md | 2 +- content/specifications/powerisa31.md | 2 +- content/specifications/pslafuinterface.md | 40 ++++++++++++ content/specifications/pviprcompliance.md | 27 -------- .../vectorintrinsicportingguide.md | 22 +++++++ ...=> vectorintrinsicprogrammingreference.md} | 12 +++- .../{64bitelfv2abi.yaml => 64bitelfabi.yaml} | 12 ++-- .../advancedacceleratoradapter.yaml | 32 +++++++++ data/specifications/caia.yaml | 27 ++++++++ data/specifications/fsi.yaml | 17 +++++ data/specifications/ioda.yaml | 15 +++++ data/specifications/linuxonpower.yaml | 29 +++++++++ data/specifications/memorybus.yaml | 27 ++++++++ data/specifications/ocpa.yaml | 17 +++++ data/specifications/powerisa.yaml | 21 ++++++ data/specifications/pslafuinterface.yaml | 25 +++++++ .../vectorintrinsicportingguide.yaml | 14 ++++ .../vectorintrinsicprogrammingreference.yaml | 5 ++ .../layouts/specifications/single.html | 61 +++++++++++++----- 30 files changed, 562 insertions(+), 58 deletions(-) create mode 100644 assets/images/specifications/opmb-mbd.png rename content/specifications/{64bitelfv2abi.md => 64bitelfabi.md} (84%) create mode 100644 content/specifications/advancedacceleratoradapter.md create mode 100644 content/specifications/caia.md create mode 100644 content/specifications/fsi.md create mode 100644 content/specifications/ioda.md create mode 100644 content/specifications/isa.md create mode 100644 content/specifications/linuxonpower.md create mode 100644 content/specifications/memorybus.md create mode 100644 content/specifications/ocpa.md create mode 100644 content/specifications/pslafuinterface.md delete mode 100644 content/specifications/pviprcompliance.md create mode 100644 content/specifications/vectorintrinsicportingguide.md rename content/specifications/{power-vector-intrinsic-programming-reference.md => vectorintrinsicprogrammingreference.md} (72%) rename data/specifications/{64bitelfv2abi.yaml => 64bitelfabi.yaml} (84%) create mode 100644 data/specifications/advancedacceleratoradapter.yaml create mode 100644 data/specifications/caia.yaml create mode 100644 data/specifications/fsi.yaml create mode 100644 data/specifications/ioda.yaml create mode 100644 data/specifications/linuxonpower.yaml create mode 100644 data/specifications/memorybus.yaml create mode 100644 data/specifications/ocpa.yaml create mode 100644 data/specifications/powerisa.yaml create mode 100644 data/specifications/pslafuinterface.yaml create mode 100644 data/specifications/vectorintrinsicportingguide.yaml create mode 100644 data/specifications/vectorintrinsicprogrammingreference.yaml diff --git a/assets/images/specifications/opmb-mbd.png b/assets/images/specifications/opmb-mbd.png new file mode 100644 index 0000000000000000000000000000000000000000..663187e42015a6b8c6fefebd00c6c707243371de GIT binary patch literal 34545 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

qVhwj3wr*_X)kB&0k6wY1y-c7E!g5vSH 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 literal 0 HcmV?d00001 diff --git a/content/specifications/64bitelfv2abi.md b/content/specifications/64bitelfabi.md similarity index 84% rename from content/specifications/64bitelfv2abi.md rename to content/specifications/64bitelfabi.md index 30e7cfe..d505653 100644 --- a/content/specifications/64bitelfv2abi.md +++ b/content/specifications/64bitelfabi.md @@ -1,11 +1,16 @@ --- -title: 64-bit ELF v2 ABI Specification for OpenPOWER Architecture +title: 64-bit ELF ABI Specification for OpenPOWER Architecture +group: systemsoftware publicreview: false +aliases: + - "64bitelfv2abi/" + - "64bitelfv2/" tags: - specifications - systemsoftware - abi -group: systemsoftware + - toolchain + - compiler date: 2021-03-15 draft: false --- @@ -13,7 +18,7 @@ draft: false The ABI (application binary interface) specification provides the definitions for the machine interface and inter-object interfaces for the little-endian POWER architecture. -This specification defines the OpenPOWER ELF v2 ABI which is derived from and represents the first major update to the Power ABI +This specification defines the OpenPOWER ELF ABI which is derived from and represents the first major update to the Power ABI since the original release of the IBM® RS/6000® ABI. It was developed to make extensive use of new functions available in OpenPOWER-compliant processors. It expects an OpenPOWER-compliant processor to implement at least Power ISA v2.07B with all OpenPOWER Architecture instruction categories @@ -22,7 +27,7 @@ as well as OpenPOWER-defined implementation characteristics for some implementat The Executable and Linking Format (ELF) defines a linking interface for executables and shared objects in two parts : the first part is the generic System V ABI, the second part is a processor-specific supplement. This document, the OpenPOWER ABI for Linux Supplement for the Power Architecture 64-bit ELF V2 ABI, -is the OpenPOWER-compliant processor-specific supplement for use with ELF V2 on 64-bit IBM Power Architecture® systems. +is the OpenPOWER-compliant processor-specific supplement for use with ELF on 64-bit IBM Power Architecture® systems. This is not a complete System V ABI supplement because it does not define any library interfaces. This document establishes both big-endian and little-endian application binary interfaces. OpenPOWER-compliant processors in the 64-bit Power Architecture can execute in either big-endian or little-endian mode. diff --git a/content/specifications/advancedacceleratoradapter.md b/content/specifications/advancedacceleratoradapter.md new file mode 100644 index 0000000..6687376 --- /dev/null +++ b/content/specifications/advancedacceleratoradapter.md @@ -0,0 +1,35 @@ +--- +title: Advanced Accelerator Adapter Electro-Mechanical Specification +group: accelerator +publicreview: false +tags: + - specification + - accelerator + - power9 + - 25gbps + - 25gio + - capi30 + - opencapi +date: 2018-01-17 +draft: false +--- + +The Advanced Accelerator Adapter Electro-Mechanical Specification defines an electro-mechanical specification for +advanced accelerator adapters within the OpenPOWER eco-system supported by IBM® POWER9™. +POWER9 modules present a 25Gbps interface organized into groups of 8 bit-lanes. +Innovation within the community is encouraged for systems that support accelerated computing and +the accelerator adapters needed to make heterogeneous / accelerated computing solutions available to the market. + +This specification defines two accelerator approaches. +The first approach is a mezzanine card attached to the system planar via two connectors. +This approach is defined in Part I: Mezzanine Adapter Card. + +The second approach is via cable and is defined in Cabled Interface Extension. +While the accelerator card form factor is not defined in this specification Part II : Cabled Interface Extension assumes a PCIe® card for illustration. + +The electrical characteristics of the 25Gbps channel are defined in Part III: 25 Gbit/sec Electrical Channel. + +This document is a Standard Track, Workgroup Specification work product owned by the 25G IO Interoperability Workgroup and +handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document. +It was created using the Document Development Guide version 1.1.0. +Comments, questions, etc. can be submitted to the public mailing list for this document at <25giomode-p9_25gbps_phy@mailinglist.openpowerfoundation.org>. diff --git a/content/specifications/caia.md b/content/specifications/caia.md new file mode 100644 index 0000000..a8e67aa --- /dev/null +++ b/content/specifications/caia.md @@ -0,0 +1,22 @@ +--- +title: Coherent Accelerator Interface Architecture +group: hardwarearchitecture +reviewdraft: false +aliases: + - "coherentacceleratorinterfacearchitecture/" + - "caia1/" + - "caia2/" +tags: + - specification + - caia + - capi + - power8 + - power9 +date: 2016-03-15 +draft: false +--- + +This document defines the Coherent Accelerator Interface Architecture (CAIA) for the IBM® POWER® systems. +The information contained in this document allows various CAIA-compliant accelerator implementations +to meet the needs of a wide variety of systems and applications. +Compatibility with the CAIA allows applications and system software to migrate from one implementation to another with minor changes. diff --git a/content/specifications/fsi.md b/content/specifications/fsi.md new file mode 100644 index 0000000..b58e0ce --- /dev/null +++ b/content/specifications/fsi.md @@ -0,0 +1,28 @@ +--- +title: Field Replaceable Unit Service Interface Specification +group: hardwarearchitecture +publicreview: false +aliases: + - "openfsi/" + - "openfieldserviceinterface/" + - "fieldserviceinterface/" +tags: + - specification + - fsi + - fru + - openfsi + - hardware +date: 2016-10-13 +draft: false +--- + +This document describes a Field Replaceable Unit (FRU) Support Interface (FSI) suited +to service all chips in a computer system via a common serial interface. +Key features are ease of use, easy scalability, robustness, and support for virtualization and +the tunneling of interrupts and DMA control signals across the interface. +FSI is superior to similar industry standard interfaces in these and many other features including speed, distance, data protection, and address range. + +FSI is a point to point two wire interface operating in half duplex mode, +which is capable of supporting distances of up to 4 meters at up to 166 MHz bus frequency. +All operations are fully CRC checked to allow error recovery. +With its versatile architecture, the FSI is suited for a wide range of applications from service access to in-system test. diff --git a/content/specifications/ioda.md b/content/specifications/ioda.md new file mode 100644 index 0000000..6709458 --- /dev/null +++ b/content/specifications/ioda.md @@ -0,0 +1,20 @@ +--- +title: IO Design Architecture (IODA) Specification +group: hardwarearchitecture +publicreview: false +tsth: false +tags: + - specification + - hardware + - reference + - pcie + - phb + - ioda + - power8 + - power9 +date: 2016-03-15 +draft: false +--- + +The purpose of the OpenPOWER I/O Design Architecture (IODA) specification is to describe the chip architecture for key aspects of +PCIe® based host bridge (PHB) designs for IBM® POWER systems. diff --git a/content/specifications/isa.md b/content/specifications/isa.md new file mode 100644 index 0000000..4b296e3 --- /dev/null +++ b/content/specifications/isa.md @@ -0,0 +1,33 @@ +--- +title: "Instruction Set Architecture" +group: isa +publicreview: false +aliases: + - "powerisa/" + - "power31/" + - "powerisa31/" + - "power30/" + - "powerisa30/" + - "power207/" + - "powerisa207/" +tags: + - instructionsetarchitecture + - isa + - powerisa + - cores + - power8 + - power9 + - power10 +date: 2021-08-30 +draft: false +--- + +The Power Instruction Set Architecture (ISA) Version is a specification that describes the architecture used for the IBM POWER processor. +It defines the instructions the processors execute. +It is comprised of three books and a set of appendices. +- Book I + - Power ISA User Instruction Set Architecture, covers the base instruction set and related facilities available to the application programmer. +- Book II + - Power ISA Virtual Environment Architecture, defines the storage model and related instructions and facilities available to the application programmer. +- Book III + - Power ISA Operating Environment Architecture, defines the supervisor instructions and related facilities. diff --git a/content/specifications/linuxonpower.md b/content/specifications/linuxonpower.md new file mode 100644 index 0000000..906049a --- /dev/null +++ b/content/specifications/linuxonpower.md @@ -0,0 +1,17 @@ +--- + + +--- + +The purpose of this document is to detail a stable platform architecture to be used by platforms defined by the POWER ISA Specification. + +This architecture specification provides a comprehensive computer system platform-to-software interface definition, +combined with minimum system requirements, that enables the development of and software porting to +a range of compatible industry-standard computer systems from workstations through servers. +These systems are based on the requirements defined in the Power Instruction Set Architecture (ISA). +The definition supports the development of both uni-processor and multi-processor system implementations. + +This document is a Standard Track, Work Group Specification work product owned by the System Software Workgroup and +handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document. +It was created using the Master Template Guide version 1.0.0. +Comments, questions, etc. can be submitted to the public mailing list for this document at syssw-linux_architecture_ref@mailinglist.openpowerfoundation.org. diff --git a/content/specifications/memorybus.md b/content/specifications/memorybus.md new file mode 100644 index 0000000..b7215da --- /dev/null +++ b/content/specifications/memorybus.md @@ -0,0 +1,27 @@ +--- +title: Memory Bus Specification +group: memory +publicreview: false +alias: + - "openpowermemorybus/" + - "opmb/" +tags: + - hardware + - memory + - memorybus +date: 2021-05-26 +draft: false +--- + +The OpenPOWER Memory Bus (OPMB) Specification defines the OpenPOWER Memory Bus Architecture. +The architecture and specification are used to develop Memory Function Units (MFU) and +to integration of those MFUs into the OpenPOWER system structure. +An MFU is a logic block developed by a member of the OpenPOWER eco-system to attach special purpose memory technology and +function processing for data stored in the memory technology. +An example of MFU might be a database function accelerator which attaches dense flash memory technology. + +This figure illustrates the concept. +{{< image src="specifications/opmb-mbd.png" width="750" height="750" >}} + +Comments regarding the specification content and suggestions for updates may be submitted to the following mailing list: + diff --git a/content/specifications/ocpa.md b/content/specifications/ocpa.md new file mode 100644 index 0000000..6bb212e --- /dev/null +++ b/content/specifications/ocpa.md @@ -0,0 +1,16 @@ +--- +title: OpenCAPI POWER Platform Architecture Guide +group: systemsoftware +publicreview: false +tags: + - opencapi + - firmware + - operatingsystem +date: 2019-01-18 +draft: false +--- + +The OpenCAPI POWER Platform Architecture (OCPA) defines an accelerator interface structure for +coherently attaching accelerators to the IBM Power Systems™ using an OpenCAPI Physical Link. +The intent is to allow implementation of a wide range of accelerators to optimally address many different market segments. +The target audience is firmware and operating system developers. diff --git a/content/specifications/powerisa207.md b/content/specifications/powerisa207.md index a9aae47..b57130c 100644 --- a/content/specifications/powerisa207.md +++ b/content/specifications/powerisa207.md @@ -2,7 +2,7 @@ title: "POWER Instruction Set Architecture 2.07" publicreview: false date: 2022-01-01 -draft: false +draft: true --- The Power Instruction Set Architecture (ISA) Version 2.07B is a specification that describes the architecture used diff --git a/content/specifications/powerisa30.md b/content/specifications/powerisa30.md index 8bb46c5..e869160 100644 --- a/content/specifications/powerisa30.md +++ b/content/specifications/powerisa30.md @@ -2,7 +2,7 @@ title: "POWER Instruction Set Architecture 3.0" publicreview: false date: 2021-08-30 -draft: false +draft: true --- The Power Instruction Set Architecture (ISA) Version 3.0 is a specification that describes the architecture used for the IBM POWER9 processor. diff --git a/content/specifications/powerisa31.md b/content/specifications/powerisa31.md index 16558bf..2421a25 100644 --- a/content/specifications/powerisa31.md +++ b/content/specifications/powerisa31.md @@ -1,7 +1,7 @@ --- title: "POWER Instruction Set Architecture 3.1" date: 2021-08-30 -draft: false +draft: true --- The Power Instruction Set Architecture (ISA) Version 3.1 is a specification that describes the architecture used for the IBM POWER10 processor. diff --git a/content/specifications/pslafuinterface.md b/content/specifications/pslafuinterface.md new file mode 100644 index 0000000..ddc989a --- /dev/null +++ b/content/specifications/pslafuinterface.md @@ -0,0 +1,40 @@ +--- +title: PSL / AFU Interface Specification +group: accelerator +publicreview: false +tags: + - powerservicelayer + - psl + - acceleratorfunctionalunit + - afu + - accelerator + - capi1 + - capi2 + - pcie4 + - power8 + - power9 +date: 2016-03-15 +draft: false +--- + +A CAPI based accelerator interfaces to the POWER system through a logic unit called the Power Service Layer (PSL). +The Accelerator Function Unit (AFU) contains the logic that implements the unique acceleration function. + +The POWER Service Layer to Accelerator Functional Unit (PSL / AFU) interface communicates to the acceleration logic running on the FPGA. +Through this interface, the PSL offers services to the AFU. +The services offered are cache-line oriented and allow the AFU to make buffering versus throughput trade-offs. + +The interface to the AFU is composed of six independent interfaces : +- AFU Command Interface is the interface through which the AFU sends service requests to the PSL. +- AFU Buffer Interface is the interface through which the PSL moves data to and from the AFU. +- PSL Response Interface is the interface through which the PSL reports status about service requests. +- AFU MMIO Interface is the interface through which software reads and writes can access registers within the AFU. +- AFU Control Interface allows the PSL job management functions to control the state of the AFU. +- AFU DMA Interface allows the AFU to send native PCIe Writes and Reads and to receive Read Completion data. + +Together these interfaces allow software to control the AFU state and allow the AFU to access data in the system. + +This document is a Standard Track, Work Group Specification work product owned by the Accelerator Workgroup and +handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document. +It was created using the Master Template Guide version 1.0.0. +Comments, questions, etc. can be submitted to the public mailing list for this document at . diff --git a/content/specifications/pviprcompliance.md b/content/specifications/pviprcompliance.md deleted file mode 100644 index 1fde1c2..0000000 --- a/content/specifications/pviprcompliance.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "PVIPR Compliance Specification" -tags: - - pvipr -date: 2021-03-22 -draft: false ---- - -This document provides requirements for a compiler to demonstrate compliance with the Power Vector Intrinsics Programming Reference, version 1.0. - -This document is a Standard Track, Workgroup Specification work product owned by the Compliance Workgroup -and handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document. -Comments, questions, etc. can be submitted to the public mailing list for the parent specification at -. - -The input to this specification is the following specification which describes the vector intrinsics expected to be provided -by compilers targeting PowerISA 2.07 and 3.0B or later, as implemented on POWER8 and POWER9 systems. - -Power Vector Intrinsics Programming Reference (PVIPR) which is published on the resource catalog: -https://openpowerfoundation.org/?resource_lib=power-vector-intrinsic-programming-reference - -The PVIPR document is organized into the following chapters: -1. Introduction to Vector Programming on Power -2. The Power Bi-Endian Vector Programming Model -3. Vector Programming Techniques -4. Vector Intrinsic Reference -5. Instruction/Intrinsic Cross-Reference diff --git a/content/specifications/vectorintrinsicportingguide.md b/content/specifications/vectorintrinsicportingguide.md new file mode 100644 index 0000000..b5c9925 --- /dev/null +++ b/content/specifications/vectorintrinsicportingguide.md @@ -0,0 +1,22 @@ +--- +title: Vector Intrinsics Porting Guide +group: systemsoftware +publicreview: false +tags: + - software + - vectorintrinsics + - vector + - vmx + - vsx + - altivec + - optimization +date: 2018-01-08 +draft: +--- + +The goal of this project is to provide functional equivalents of the Intel MMX, SSE, and AVX intrinsic functions, +that are commonly used in Linux applications, and make them (or equivalents) available for the PowerPC64LE platform. + +This document is a Work Group Note work product owned by the System Software Workgroup and +handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document. +Comments, questions, etc. can be submitted to the public mailing list for this document at . diff --git a/content/specifications/power-vector-intrinsic-programming-reference.md b/content/specifications/vectorintrinsicprogrammingreference.md similarity index 72% rename from content/specifications/power-vector-intrinsic-programming-reference.md rename to content/specifications/vectorintrinsicprogrammingreference.md index c295940..57433ff 100644 --- a/content/specifications/power-vector-intrinsic-programming-reference.md +++ b/content/specifications/vectorintrinsicprogrammingreference.md @@ -1,7 +1,15 @@ --- -title: "Power Vector Intrinsics Programming Reference Specification" +title: "Vector Intrinsics Programming Reference Specification" +group: systemsoftware +reviewdraft: false +aliases: + - "powervectorintrinsicsprogrammingreference/" + - "pvipr/" tags: + - specification + - software - pvipr + - vectorintrinsics date: 2021-03-24 draft: false --- @@ -12,4 +20,4 @@ It further provides a reference for intrinsics provided by compliant compilers o This document is a Standard Track, Work Group Specification work product owned by the System Software Workgroup and handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document. -It was created using the Master Template Guide version 1.0.0. Comments, questions, etc. can be submitted to the public forun for this document. +It was created using the Master Template Guide version 1.0.0. Comments, questions, etc. can be submitted to the public forun for this document. diff --git a/data/specifications/64bitelfv2abi.yaml b/data/specifications/64bitelfabi.yaml similarity index 84% rename from data/specifications/64bitelfv2abi.yaml rename to data/specifications/64bitelfabi.yaml index a704c4a..19d269c 100644 --- a/data/specifications/64bitelfv2abi.yaml +++ b/data/specifications/64bitelfabi.yaml @@ -1,23 +1,23 @@ versions: - - number: "1.0" + - number: "2.1.0" date: "2014-07-21" description: "Initial release." download: "https://files.openpower.foundation/s/XqEfC9EKNWzgneb" - - number: "1.1" + - number: "2.1.1" date: "2015-07-16" description: "Incorporate errata." download: "https://files.openpower.foundation/s/aybzqzEpN5AGfXG" - - number: "1.2" + - number: "2.1.2" date: "2016-06-13" description: "POWER8 errata" - - number: "1.3" + - number: "2.1.3" date: "2016-06-13" description: "POWER9 errata" - - number: "1.4" + - number: "2.1.4" date: "2017-01-13" description: "Conversion from FrameMaker to DocBook, minor corrections." download: "https://files.openpower.foundation/s/aqwWeS3qmoaDyos" - - number: "1.5" + - number: "2.1.5" date: "2020-12-01" description: "POWER10 support" download: "https://files.openpower.foundation/s/cfA2oFPXbbZwEBK" diff --git a/data/specifications/advancedacceleratoradapter.yaml b/data/specifications/advancedacceleratoradapter.yaml new file mode 100644 index 0000000..fcb35b1 --- /dev/null +++ b/data/specifications/advancedacceleratoradapter.yaml @@ -0,0 +1,32 @@ +versions: + - number: 0.1 + date: 2017-03-13 + description: Creation of electo-mechanical consolidated specification + - number: 0.2 + date: 2017-04-27 + description: Review updates from Dan Dreps & Jeff Brown + - number: 0.3 + date: 2017-06-27 + description: Added part on cable extender version + - number: 0.4 + date: 2017-07-20 + description: Updates from workgroup review + - number: 0.5 + date: 2017-08-01 + description: Updates from workgroup review + - number: 0.6 + date: 2017-08-02 + description: Updates to table 5.1 about ILD, ILDB, and "moving average smoothing" + - number: 0.7 + date: 2017-08-08 + description: Added section on Conformance, additional minor edits, removed Section 6.2 Mezzanine Net Model + - number: 0.8 + date: 2017-08-17 + description: public review draft + - number: 0.9 + date: 2017-10-19 + description: Modified mezzanine card section 2.1,2., and 2.3 to reflect a reference design and connector PN + - number: 1.0 + date: 2017-11-08 + description: workgroup specification + download: https://files.openpower.foundation/s/xSQPe6ypoakKQdq diff --git a/data/specifications/caia.yaml b/data/specifications/caia.yaml new file mode 100644 index 0000000..a582bcf --- /dev/null +++ b/data/specifications/caia.yaml @@ -0,0 +1,27 @@ +versions: + - number: 0.1 + date: 2014-12-09 + description: intital release + - number: 0.2 + date: 2015-08-15 + description: changes from wg review + - number: 0.3 + date: 2015-10-07 + description: conversion to docbook from framemaker + - number: 0.9 + date: 2015-10-26 + description: public review draft + - number: 1.0 + date: 2016-01-13 + description: workgroup specification + download: https://files.openpower.foundation/s/kpYmfrSREq8wFXR + - number: 1.1 + date: 2017-06-15 + description: conversion from framemaker + - number: 1.2 + date: 2018-07-02 + description: internal review + - number: 1.9 + date: 2020-03-23 + description: public review + download: https://files.openpower.foundation/s/EMFd9nPCx8N8tPr diff --git a/data/specifications/fsi.yaml b/data/specifications/fsi.yaml new file mode 100644 index 0000000..baabc88 --- /dev/null +++ b/data/specifications/fsi.yaml @@ -0,0 +1,17 @@ +versions: + - number: 0.1 + date: 2015-09-01 + description: creation based on IBM FSI spec contib + - number: 0.2 + date: 2015-09-02 + description: comment correction as per review + - number: 0.3 + date: 2016-05-05 + description: public review draft + - number: 0.4 + date: 2016-08-16 + description: correction chapter 1 added definition & chapter 4 typo + - number: 1.0.0 + date: 2016-12-12 + description: workgroup specification + download: diff --git a/data/specifications/ioda.yaml b/data/specifications/ioda.yaml new file mode 100644 index 0000000..b348a58 --- /dev/null +++ b/data/specifications/ioda.yaml @@ -0,0 +1,15 @@ +versions: + - number: 2.0.7 + date: 2015-04-23 + description: Creation based on IBM IODA2 Specification + - number: 2.0.8 + date: 2015-08-21 + description: Clean-up of typo/conversion errors + - number: 2.0.9 + date: 2015-10-01 + description: Clean-up of typo/conversion errors + - number: 2.1.0 + date: 2016-01-13 + description: Clean-up legal wording and added foundation info appendix + download: https://files.openpower.foundation/s/BcARpp9gFMXwqrL +# - number: 3.0 diff --git a/data/specifications/linuxonpower.yaml b/data/specifications/linuxonpower.yaml new file mode 100644 index 0000000..59edbcd --- /dev/null +++ b/data/specifications/linuxonpower.yaml @@ -0,0 +1,29 @@ +versions: + - number: "1.1" + date: 2016-03-24 + download: https://files.openpower.foundation/s/LmdoZDGkJqp679y + - number: "2.1" + date: 2016-05-04 + description: conversion from IBM document + - number: "2.2" + date: 2016-10-11 + description: include latest PAPR ACR 2.8 + - number: "2.3" + date: 2018-07-30 + description: preparation for wg review + - number: "2.4" + date: 2019-01-08 + description: update from wg review + - number: "2.5" + date: 2020-04-06 + description: include latest PARP ACR 2.9 + - number: "2.6" + date: 2020-04-20 + description: update formatting + - number: "2.7" + date: 2020-06-11 + description: public review + - number: "2.9" + date: 2020-08-12 + description: workgroup note + download: https://files.openpower.foundation/s/ZmtZyCGiJ2oJHim diff --git a/data/specifications/memorybus.yaml b/data/specifications/memorybus.yaml new file mode 100644 index 0000000..f909ac1 --- /dev/null +++ b/data/specifications/memorybus.yaml @@ -0,0 +1,27 @@ +versions: + - number: 0.40 + date: 2017-10-05 + - number: 0.41 + date: 2020-05-21 + - number: 0.42 + date: 2020-06-04 + - number: 0.43 + date: 2020-07-30 + - number: 0.50 + date: 2020-08-30 + - number: 0.51 + date: 2020-08-30 + - number: 0.52 + date: 2020-09-10 + - number: 0.53 + date: 2020-09-10 + - number: 0.90 + date: 2020-10-08 + - number: 0.91 + date: 2020-10-11 + - number: 0.92 + date: 2021-02-01 + - number: 0.93 + date: 2021-04-08 + - number: 1.93 + date: 2021-04-26 diff --git a/data/specifications/ocpa.yaml b/data/specifications/ocpa.yaml new file mode 100644 index 0000000..4e62fac --- /dev/null +++ b/data/specifications/ocpa.yaml @@ -0,0 +1,17 @@ +versions: + - number: "2.6" + date: 2018-01-15 + description: conversion from framemaker + - number: "2.7" + date: 2018-04-09 + description: minor editing for first draft + - number: "2.8" + date: 2018-07-02 + description: more editing + - number: "2.9" + date: 2018-07-26 + description: public review draft + - number: "3.0" + date: 2019-01-18 + description: workgroup note + download: https://files.openpower.foundation/s/DwnMymtj9BRQQ2y diff --git a/data/specifications/powerisa.yaml b/data/specifications/powerisa.yaml new file mode 100644 index 0000000..289ffca --- /dev/null +++ b/data/specifications/powerisa.yaml @@ -0,0 +1,21 @@ +versions: + - number: "2.07" + date: "2013-05-03" + download: "" + description: "Initial release." + - number: "2.07b" + date: "2017-03-28" + description: "Update specification." + download: "https://ibm.ent.box.com/s/jd5w15gz301s5b5dt375mshpq9c3lh4u" + - number: "3.0b" + date: "2017-03-29" + download: "https://ibm.ent.box.com/s/1hzcwkwf8rbju5h9iyf44wm94amnlcrv" + description: "Initial release." + - number: "3.0c" + date: "2020-05-01" + download: "https://files.openpower.foundation/s/XXFoRATEzSFtdG8" + description: "Incorporate errata." + - number: "3.1" + date: "2020-05-02" + download: "https://files.openpower.foundation/s/bo728kgiWfgMHAr" + description: "Initial release." diff --git a/data/specifications/pslafuinterface.yaml b/data/specifications/pslafuinterface.yaml new file mode 100644 index 0000000..5be8cd6 --- /dev/null +++ b/data/specifications/pslafuinterface.yaml @@ -0,0 +1,25 @@ +versions: + - number: 0.1.0 + date: 2015-04-14 + description: IBM CAPI documentation conversion + - number: 1.0.0 + date: 2015-10-20 + description: workgroup specification + download: https://files.openpower.foundation/s/drQqcZEcBfLEYcf + - number: 1.0.1 + date: 2016-09-13 + description: clarification data alignment, parity, partial cacheline + download: https://files.openpower.foundation/s/yLreYMysGbZiYiT + - number: 1.1 + date: 2016-05-18 + description: conversion from IBM internal documentation + - number: 1.2 + date: 2016-08-02 + description: updates for v2 + - number: 1.3 + description: Fixes to CAS Operand Alignment on Buffer Interface + date: 2017-01-16 + - number: 2.0 + date: 2017-07-20 + description: workgroup specification + download: https://files.openpower.foundation/s/SxLFti5e4a5gBTb diff --git a/data/specifications/vectorintrinsicportingguide.yaml b/data/specifications/vectorintrinsicportingguide.yaml new file mode 100644 index 0000000..62b03a9 --- /dev/null +++ b/data/specifications/vectorintrinsicportingguide.yaml @@ -0,0 +1,14 @@ +versions: + - number: "0.1" + date: 2017-07-26 + description: initial draft from Steve Munroe + - number: "0.2" + date: 2017-09-14 + description: Miscellaneous correction for spelling, grammar and punctuation + - number: "0.3" + date: 2017-10-30 + description: Updates to describe issues associated with larger vector sizes and proposed solutions + - number: "1.0" + date: 2018-03-14 + description: Minor updates for Published version + download: https://files.openpower.foundation/s/7FSEcPrjPH3xmp3 diff --git a/data/specifications/vectorintrinsicprogrammingreference.yaml b/data/specifications/vectorintrinsicprogrammingreference.yaml new file mode 100644 index 0000000..36ea311 --- /dev/null +++ b/data/specifications/vectorintrinsicprogrammingreference.yaml @@ -0,0 +1,5 @@ +versions: + - number: 1.0.0 + date: 2020-08-11 + description: + download: https://files.openpower.foundation/s/9nRDmJgfjM8MpR7 diff --git a/themes/openpowerfoundation/layouts/specifications/single.html b/themes/openpowerfoundation/layouts/specifications/single.html index b203ed5..7c4364f 100644 --- a/themes/openpowerfoundation/layouts/specifications/single.html +++ b/themes/openpowerfoundation/layouts/specifications/single.html @@ -2,6 +2,7 @@ {{ partial "navbar.html" . }} {{ $filename := .File.BaseFileName }} {{ $datafile := index $.Site.Data.specifications $filename }} +{{ $compliancefile := printf "%s/%s" "compliance" $filename }}

@@ -18,22 +19,20 @@ {{ .date }} {{ end }} {{ end }} - {{ if .Param "group" }} - {{ $group := printf "%s/%s" "groups" (.Param "group") }} - {{ with $.Site.GetPage $group }} - Owned by : {{ .Title }} - {{ end }} - {{ end }}
{{ if .Param "publicreview" }} -
-
-
-
-
-
+ {{ $reviewenddate := .Date.AddDate 0 0 30 }} + {{ if lt now $reviewenddate }} +
+
+
+ The Public Review for this document completes at close-of-business on {{ $reviewenddate.Format "Monday 2 January 2006" }}. +
+
+
+ {{ end }} {{ end }}
@@ -41,6 +40,15 @@

{{ .Content }}

+ {{ if .Param "group" }} + {{ $group := printf "%s/%s" "groups" (.Param "group") }} + {{ with $.Site.GetPage $group }} + Owned by : {{ .Title }}
+ {{ end }} + {{ end }} + {{ with $.Site.GetPage $compliancefile }} + Compliance : Test Suite & Harness + {{ end }} {{ if $datafile.versions }}
    {{ range sort $datafile.versions "date" "desc" }} @@ -62,17 +70,38 @@
{{ if .Params.tags }} +{{ $tags := .Params.tags }}
- {{ range .Params.tags }} - {{ . }} - {{ end }} + {{ if not (eq (len $.Site.Taxonomies.tags) 0) }} + {{ $fontUnit := "rem" }} + {{ $largestFontSize := 3.5 }} + {{ $smallestFontSize := 0.5 }} + {{ $fontSpread := sub $largestFontSize $smallestFontSize }} + {{ $max := add (len (index $.Site.Taxonomies.tags.ByCount 0).Pages) 1 }} + {{ $min := len (index $.Site.Taxonomies.tags.ByCount.Reverse 0).Pages }} + {{ $spread := sub $max $min }} + {{ $fontStep := div $fontSpread $spread }} + {{ range $name, $taxonomy := $.Site.Taxonomies.tags }} + {{ $currentTagCount := len $taxonomy.Pages }} + {{ $currentFontSize := (add $smallestFontSize (mul (sub $currentTagCount $min) $fontStep) ) }} + {{ $count := len $taxonomy.Pages }} + {{ $weigth := div (sub (math.Log $count) (math.Log $min)) (sub (math.Log $max) (math.Log $min)) }} + {{ $currentFontSize := (add $smallestFontSize (mul (sub $largestFontSize $smallestFontSize) $weigth) ) }} + {{ range $tags }} + {{ if eq $name . }} +   + {{ $name }} +   + {{ end }} + {{ end }} + {{ end }}
+{{ end }}
{{ end }}
- {{ partial "footer.html" . }}