riscvarchive / riscv-platform-specs

RISC-V Profiles and Platform Specification
Creative Commons Attribution 4.0 International
112 stars 39 forks source link

I/O ordering requirements (for non-PCIe devices) #77

Closed aswaterman closed 2 years ago

aswaterman commented 2 years ago

The OS-A platform spec used to have a requirement for strong point-to-point I/O ordering for most devices. It was deleted last year with the remark "All the points specified in supervisor.adoc are already described in the new revamped platform spec", but I cannot find any statement to this effect. The change was here: https://github.com/riscv/riscv-platform-specs/commit/3e12ad108b74b2852d8a8540350287114cb80174#diff-1d563824326d2cf24a223ae5c45f6247f5fd9a553acff627370ddd8f9e64b031L16-L17

I think we just need to add the following clause: "Unless otherwise specified by a given I/O device, I/O devices are on ordering channel 0 (i.e., they are point-to-point strongly ordered)."

I see that there are now some different requirements for PCIe. That's OK; these statements don't conflict, because of the "unless otherwise specified" phrase.

kumarsankaran commented 2 years ago

Added this to PCIe section of the spec. Thank You.

aswaterman commented 2 years ago

@kumarsankaran I'm reopening this issue to ask that you not place it in the PCIe section. It is meant to apply to I/O devices in general (including things like PLIC/CLINT registers). Maybe put it in the ISA requirements section (4.1.1)?

kumarsankaran commented 2 years ago

@aswaterman Since this applies to all IO devices and is a common requirement for all platforms, it would go into the ISA Requirements sub-section 2.1.1 within the OS-A Common Requirements section. The OS-A Server Platform inherits all the requirements as defined in the OS-A Platform Common Requirements section.

aswaterman commented 2 years ago

My mistake, yeah, 2.1.1 is the right place.

kumarsankaran commented 2 years ago

Moved to section 2.1.1. Closing. Thank You.

aswaterman commented 2 years ago

Thank you!