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

ARC Feedback Updates and other changes #80

Merged
merged 2 commits into from
Dec 9, 2024

Conversation

pathakraul
Copy link
Collaborator

No description provided.

@pathakraul pathakraul requested a review from lftan December 6, 2024 04:30
@pathakraul
Copy link
Collaborator Author

@avpatel

The <<table_service_groups>> below list all standard RPMI service groups
defined by this specification.
The RPMI specification also provides experimental service group IDs space
for development of service group until a standard service group ID is not
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should remove "not"?

The RPMI specification also provides experimental service group IDs space
for development of service group until a standard service group ID is not
allocated. The platform vendors can provide implementation specific RPMI
service groups The <<table_service_groups>> below list all standard RPMI
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extra "The"

@@ -166,6 +166,36 @@ values as corresponding fields in the RPMI request message. The `DATALEN`
field of the RPMI acknowledgement message must be set according to the data
carried by this acknowledgement.

NOTE: The message token will help the application processors to keep track of
the origin of the request when it receives a response. This is useful when the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extra spaces after 'receives' and after 'is'?

distinguish which response belongs to which request.

NOTE: The RPMI specification recommends monotonically increasing token numbers
and the token number can be initialized from any value without any constarints.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo 'constarints" --> constraints

NOTE: The flags[3] bit can be used for a particular message or for the entire
lifecycle of RPMI message communication. For example if the application
processor and the platform microcontroller are capable for MSIs and the application
processor has configured MSI details via defined service in Section 4.1.10 then
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't hardcoded "Section 4.1.10", create a label/tag at section Section 4.1.10 (BASE_SET_MSI), then reference it with <<BASE_SET_MSI-lable>>

@@ -38,6 +38,11 @@ the platform microcontroller can avoid implementing the P2A channel.
The current RPMI specification only defines a shared memory based transport but
other transport types can be added in the future.

NOTE: The shared memory for RPMI transport and fast-channels allocated
in DRAM or in on-chip RAM will require memory attributes configuration. These
memory attributes also called PMA(Physical Memory Attributes) are defined in
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add space before (

and only a few service groups may support fast-channels. A service group
that supports fast-channels:
NOTE: If the platform supports PLIC, the platform need to provide a MMIO
register to inject an edge-triggered interrupt.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not very understand this.
edge-triggered interrupt is not a must for PLIC, right?
and this MMIO register is a hardcoded csr address?

Copy link
Collaborator Author

@pathakraul pathakraul Dec 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Edge triggered interrupt is preferred in the Linux. And MMIO register is not a CSR address. Write to this MMIO register if going to trigger the interrupt to PLIC causing triggering an edge triggered interrupt into AP. What do you suggest?


The platform must setup the PMA for the shared memory used for the fast-channels.

NOTE: Its possible that the application processor and the platform
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"It is"

others issues which may lead to race conditions. To avoid the caching
side-effects, the platform can configure the memory attribute of the shared
memory as non-cacheable or IO memory for both the application processor and the
platform microcontroller and implementation can perform manual cache maintenance
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Split the long sentence. Eg:
Additionally, the implementation can perform manual cache maintenance using cache flush and invalidate operations.

NOTE: To avoid the caching side-effects, the platform can configure the shared
The platform must setup the PMA for the shared memory used for RPMI transport.

NOTE: Its possible that the application processor and the platform
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Repeat the same Note here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That two notes are separately provided one for fastchannel and one for the RPMI transport shared memory

memory as non-cacheable or IO memory for both the application processor and the
platform microcontroller.
platform microcontroller and implementation can perform manual cache maintenance
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as above.

@@ -65,15 +65,28 @@ The following table lists the services in the BASE service group:
|===

==== RPMI Implementation IDs
The RPMI specification defines space for standard implementation IDs and for
experimental implementation IDs. The experimental implementation IDs can be used
by the implementations until a standard implementation ID is not assigned to it.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove 'not'.

"...until a standard implementation ID is assigned to it."

- Update Transport chapter with improvements
- Fix typos in the Intro and Service Group chapter
- Update high level architecture diagram
- Update Message Protocol chapter with improvements

Signed-off-by: Rahul Pathak <[email protected]>
@pathakraul pathakraul force-pushed the rpathak_arc_review_79 branch from b6eeea6 to 1387d5d Compare December 7, 2024 01:54
@pathakraul
Copy link
Collaborator Author

pathakraul commented Dec 8, 2024

If there are no comments then I will merge this tomorrow Monday morning and release it to ARC for review

@avpatel
Copy link
Contributor

avpatel commented Dec 8, 2024

Looks good to me.

@lftan lftan merged commit 2674515 into riscv-non-isa:main Dec 9, 2024
1 check passed
@lftan
Copy link
Collaborator

lftan commented Dec 9, 2024

Looks good, merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants