forked from riscv-software-src/opensbi
-
Notifications
You must be signed in to change notification settings - Fork 5
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
Add RPXY driver for StandaloneMmPkg #1
Open
yli147
wants to merge
26
commits into
ventanamicro:dev-upstream
Choose a base branch
from
yli147:dev-upstream
base: dev-upstream
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We add generic mailbox library which is independent of hardware description format (FDT or ACPI). The OpenSBI platform support or mailbox drivers can register mailbox controller instances which can be discovered and used by different mailbox client drivers. Each mailbox controller instance has a unique ID which can be used by mailbox client drivers for find the mailbox controller instance. The mailbox client drivers will typically request a mailbox channel from the mailbox controller and use it to do data transfer with the remote end of mailbox channel. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
We add a simple FDT based mailbox framework which is built on top of generic mailbox library. The phandle of FDT mailbox DT node is treated as unique mailbox controller ID required by the generic mailbox library. The FDT based mailbox drivers will be probed on-demand from fdt_mailbox_request_chan() called by the mailbox client drivers. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
…pport The RISC-V Platform Management Interface (RPMI) defines a messaging protocol and shared memory based transport for bi-directional communication with an External Controller. This patch adds the RPMI Messaging Protocol headers and helper macros for creating and dismantling RPMI messages. Also, it adds RPMI shared memory based transport driver which is a mailbox controller. Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com> Signed-off-by: Subrahmanya Lingappa <slingappa@ventanamicro.com> Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Add RPMI based driver for system reset and enable it in the generic platform defconfig Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com>
The generic platform can have multiple system suspend drivers so let us add a simple FDT based system suspend driver framework. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Added RPMI system suspend driver. to test this execute the follwoing in Linux: $ echo mem > /sys/power/state to wake up in qemu execute the following command on qemu control terminal: (qemu) system_wakeup Signed-off-by: Subrahmanya Lingappa <slingappa@ventanamicro.com>
The generic platform can have multiple HSM drivers so let us add a simple FDT based HSM driver framework. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Added optional resume address to the hart suspend call, which may or may not get honoured by the platform software. Signed-off-by: Subrahmanya Lingappa <slingappa@ventanamicro.com>
Added RPMI based Hart State Management (HSM) handlers. The RPMI HSM service group provides set of routine to query and control power states of a Hart. Signed-off-by: Subrahmanya Lingappa <slingappa@ventanamicro.com>
The generic platform can have multiple CPPC drivers so let us add a simple FDT based CPPC driver framework. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Added RPMI driver for CPPC register read, write and probe. Signed-off-by: Subrahmanya Lingappa <slingappa@ventanamicro.com>
We introduce RPMI proxy framework which allows platform specific code or driver to register RPMI proxy service groups. These RPMI proxy service groups will allow supervisor software to send RPMI messages using the SBI RPMI Proxy extension. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Implement SBI RPXY extension only when some RPMI proxy service group is provided by platform code or driver. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
The generic platform can have multiple RPXY drivers so let us add a simple FDT based RPXY driver framework. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
We add a generic mailbox client based RPXY driver which can be extended to support multiple RPMI service groups. Initially, this driver only supports RPMI clock service group. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
In order to implement SSE on IPI notifications, provides regs to sbi_ipi_process(). This will be used in two cases, global event triggered from one cpu to another and ipi injection to a specific hart. Signed-off-by: Clément Léger <cleger@rivosinc.com>
This extension [1] allows to deliver events from SBI to supervisor via a software mecanism. This extensions defines events (either local or global) which are signaled by the SBI on specific signal sources (IRQ, traps, etc) and are injected to be executed in supervisor mode. These [1] https://lists.riscv.org/g/tech-prs/message/515 Signed-off-by: Clément Léger <cleger@rivosinc.com>
- Reserve 256 SSE events for local RAS events. - Use 2 events for DRAM and HART Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
- Add high priority interrupt for RAS - Enable the interrupt Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
- Add a RAS driver interface framework - The actual RAS drivers will set/get the RAS agent to the interface - SBI makes the RAS agent calls through this interface Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
- Probe and initialize the RAS platform drivers Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
- Add RAS driver which communicates to RAS agent over RPMI - The driver is enumarated from the FDT entry Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
- Calls RAS drivers to synchronize errors with RAS agent - Injects SSE events reported by RAS agent Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
The domain context management component in OpenSBI provides basic CPU context management routines for existing OpenSBI domain. As domain extension, it was initially designed to facilitate the suspension and resumption of domains, enabling secure domains to efficiently share CPU resources. The patch also provides an addition to the OpenSBI domain to provide updates on hart-domain assignment and declarations of contexts within the domain. Signed-off-by: Qingyu Shang <2931013282@sjtu.edu.cn> Reviewed-by: Yu Chien Peter Lin <peterlin@andestech.com> Tested-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Anup Patel <anup@brainfault.org>
If multiple domains are there in the s-mode, and these domains need use rpxy shmem to communicate with each other, then each domain may need its own rpxy shmem region for harts. This patch is the implementation to allocate rpxy shmem for each domain. Signed-off-by: Yong Li <yong.li@intel.com>
This is a base RPXY driver to support the UEFI StandaloneMm mode. Signed-off-by: Yong Li <yong.li@intel.com>
15b44b7
to
b2e729a
Compare
bc047f0
to
b5c25cb
Compare
b5c25cb
to
3e08ed9
Compare
d136f97
to
da879ee
Compare
78e3dfe
to
4dd504c
Compare
6f3452c
to
a046672
Compare
0b16fbd
to
2eb602c
Compare
2eb602c
to
29f1ef6
Compare
avpatel
added a commit
that referenced
this pull request
Jan 16, 2025
Instead of having one common FDT MPXY RPMI mailbox client drivers for various RPMI service groups, split this driver into two parts: 1) Common MPXY RPMI mailbox client library 2) MPXY driver for RPMI clock service group The above split enables having a separate MPXY driver for each RPMI clock service group and #1 (above) will allow code sharing between various MPXY RPMI drivers. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
avpatel
added a commit
that referenced
this pull request
Jan 21, 2025
Instead of having one common FDT MPXY RPMI mailbox client drivers for various RPMI service groups, split this driver into two parts: 1) Common MPXY RPMI mailbox client library 2) MPXY driver for RPMI clock service group The above split enables having a separate MPXY driver for each RPMI clock service group and #1 (above) will allow code sharing between various MPXY RPMI drivers. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
avpatel
added a commit
that referenced
this pull request
Feb 3, 2025
Instead of having one common FDT MPXY RPMI mailbox client drivers for various RPMI service groups, split this driver into two parts: 1) Common MPXY RPMI mailbox client library 2) MPXY driver for RPMI clock service group The above split enables having a separate MPXY driver for each RPMI clock service group and #1 (above) will allow code sharing between various MPXY RPMI drivers. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
avpatel
added a commit
that referenced
this pull request
Feb 13, 2025
Instead of having one common FDT MPXY RPMI mailbox client drivers for various RPMI service groups, split this driver into two parts: 1) Common MPXY RPMI mailbox client library 2) MPXY driver for RPMI clock service group The above split enables having a separate MPXY driver for each RPMI clock service group and #1 (above) will allow code sharing between various MPXY RPMI drivers. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
be3be6c
to
89af176
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the patchset to enable the StandaloneMm driver in OpenSBI.