Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address additional ARC feedback #50

Merged
merged 2 commits into from
Jul 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/server_soc.bib
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ @electronic{PCI
url = {https://pcisig.com/pci-express-6.0-specification},
year = {}
}
@electronic{PCI_PREF,
title = {Removing Prefetchable Terminology ECN},
url = {https://pcisig.com/specifications?field_revision_value%5B%5D=6&field_document_type_value%5B%5D=ecn&speclib=},
year = {}
}
@electronic{CXL,
title = {Compute Express® Link (CXL) Specification Revision 3.0},
url = {https://www.computeexpresslink.org/download-the-specification},
Expand Down
11 changes: 5 additions & 6 deletions src/server_soc_intro.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -195,12 +195,11 @@ if they are not in this table).
| PLDM | Follows DMTF standard. Platform Level Data Model.
| PMA | Physical Memory Attributes.
| PMP | Physical Memory Protection.
| Prefetchable
Non-prefetchable | Follows PCI Express. Defines the property of the memory
space used by a device. For details see the PCIe Base
Specification. Broadly, non-prefetchable space covers any
locations where reads have side effects or where writes
cannot be merged.
| Significant Cache| A large cache that might have significant impact on
performance. This specification recommendeds that a cache
with a capacity larger than 32 KiB be considered a
significant cache if it has a significant impact on
performance.
| SMBIOS | System Management BIOS.
| SoC | System on a chip, also referred as system-on-a-chip and
system-on-chip.
Expand Down
31 changes: 26 additions & 5 deletions src/server_soc_requirements.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,14 @@ hierarchy domain originating at each PCIe root port.

2+| _The ranges suitable for mapping using 32-bit BARs are also sometimes termed
as the low MMIO ranges and those suitable for use with 64-bit BARs termed
as high MMIO ranges._
as high MMIO ranges. +
+
_The bit 3 of the Base Address Register used to called the “Prefetchable”
bit and required PCIe functions to support 64-bit addressing for any BAR
that requested "Prefetchable" memory space. The "Removing Prefetchable
Terminology" ECN <<PCI_PREF>> reworks the PCIe Base Specification to
remove Prefetchable terminology to more accurately reflect modern device
and system requirements._

| MMS_030 a| The system physical address ranges designated for mapping endpoint
memory spaces have the following physical memory attribute (PMAs)
Expand Down Expand Up @@ -551,8 +558,8 @@ hierarchy domain originating at each PCIe root port.
TRUE:

* Address is not within any of the following address ranges:
** Address range defined by memory base/limit or prefetchable
memory base/limit registers of any root port.
** Address range defined by memory base/limit or 64-bit memory
base/limit registers of any root port.
** BAR (including when EA capability is used) mapped range of
any RCiEP.
** BAR (including when EA capability is used) mapped range of
Expand All @@ -564,15 +571,29 @@ hierarchy domain originating at each PCIe root port.
* A UR or a CA response is received from the completer.
* A completion timeout occurs.

2+| _The 64-bit memory base/limit register was previously called Prefetchable
Memory Base/Limit. The concept of “Prefetchable” MMIO was originally needed
to control PCI-PCI Bridges, which were allowed/encouraged to prefetch
Memory Read data in prefetchable regions. The original intent of the
Prefetchable/Non-Prefetchable distinction was focused on PCI behaviors,
and was not intended for software use in determining memory attributes
and/or coding techniques. The "Removing Prefetchable Terminology" ECN
<<PCI_PREF>> reworks the PCIe Base Specification to remove Prefetchable
terminology._ +
+
_See also the implementation note on optimizations based on restricted
programming mode in section 2.3.1 of PCIe specification 6.0._


| MMS_050 a| A store from a RISC-V application processor hart to memory ranges
designated for mapping memory space of endpoints or RCiEP MUST
be dropped (silently ignored or discarded) and MUST NOT lead to any
abnormal behavior (e.g., hangs, deadlocks, etc.) if any of the
following are TRUE:

* Address is not within any of the following address ranges:
** Address range defined by memory base/limit or prefetchable
memory base/limit registers of any root port.
** Address range defined by memory base/limit or 64-bit memory
base/limit registers of any root port.
** BAR (including when EA capability is used) mapped range of
any RCiEP.
** BAR (including when EA capability is used) mapped range of
Expand Down
Loading