Comments (3)
nw-linux
#define RMI_FNUM_VERSION_REQ U(0x150)
#define RMI_FNUM_GRAN_NS_REALM U(0x151)
#define RMI_FNUM_GRAN_REALM_NS U(0x152)
#define RMI_FNUM_VM_CREATE U(0x158)
#define RMI_FNUM_VM_DESTROY U(0x159)
#define RMI_FNUM_VM_RUN U(0x160)
#define RMI_FNUM_VCPU_CREATE U(0x161)
#define RMI_FNUM_VM_MAP_MEMORY U(0x170)
#define RMI_FNUM_VM_UNMAP_MEMORY U(0x171)
#define RMI_FNUM_VM_SET_REG U(0x172)
#define RMI_FNUM_VM_GET_REG U(0x173)
//#define RET_SUCCESS U(0)
//#define RET_FAIL U(256)
//#define RET_PAGE_FAULT U(1)
rmm mod.rs
const RMM_VERSION: usize = 0xc400_0150;
const RMM_GRANULE_DELEGATE: usize = 0xc400_0151;
const RMM_GRANULE_UNDELEGATE: usize = 0xc400_0152;
const RMM_REALM_CREATE: usize = 0xc400_0158;
const RMM_REALM_DESTROY: usize = 0xc400_0159;
const RMM_REALM_RUN: usize = 0xc400_0160;
const RMM_VCPU_CREATE: usize = 0xc400_0161;
const RMM_REALM_MAP_MEMORY: usize = 0xc400_0170;
const RMM_REALM_UNMAP_MEMORY: usize = 0xc400_0171;
const RMM_REALM_SET_REG: usize = 0xc400_0172;
const RMM_REALM_GET_REG: usize = 0xc400_0173;
const RMM_REQ_COMPLETE: usize = 0xc400_018f;
pub const RET_SUCCESS: usize = 0x101;
pub const RET_FAIL: usize = 0x100;
pub const RET_EXCEPTION_IRQ: usize = 0x0;
pub const RET_EXCEPTION_SERROR: usize = 0x1;
pub const RET_EXCEPTION_TRAP: usize = 0x2;
pub const RET_EXCEPTION_IL: usize = 0x3;
linux-cca
RMI commands (4962125)
#define SMC_RMI_DATA_CREATE SMC_RxI_CALL(0x0153)
#define SMC_RMI_DATA_CREATE_UNKNOWN SMC_RxI_CALL(0x0154)
#define SMC_RMI_DATA_DESTROY SMC_RxI_CALL(0x0155)
#define SMC_RMI_FEATURES SMC_RxI_CALL(0x0165)
#define SMC_RMI_GRANULE_DELEGATE SMC_RxI_CALL(0x0151)
#define SMC_RMI_GRANULE_UNDELEGATE SMC_RxI_CALL(0x0152)
#define SMC_RMI_PSCI_COMPLETE SMC_RxI_CALL(0x0164)
#define SMC_RMI_REALM_ACTIVATE SMC_RxI_CALL(0x0157)
#define SMC_RMI_REALM_CREATE SMC_RxI_CALL(0x0158)
#define SMC_RMI_REALM_DESTROY SMC_RxI_CALL(0x0159)
#define SMC_RMI_REC_AUX_COUNT SMC_RxI_CALL(0x0167)
#define SMC_RMI_REC_CREATE SMC_RxI_CALL(0x015a)
#define SMC_RMI_REC_DESTROY SMC_RxI_CALL(0x015b)
#define SMC_RMI_REC_ENTER SMC_RxI_CALL(0x015c)
#define SMC_RMI_RTT_CREATE SMC_RxI_CALL(0x015d)
#define SMC_RMI_RTT_DESTROY SMC_RxI_CALL(0x015e)
#define SMC_RMI_RTT_FOLD SMC_RxI_CALL(0x0166)
#define SMC_RMI_RTT_INIT_RIPAS SMC_RxI_CALL(0x0168)
#define SMC_RMI_RTT_MAP_UNPROTECTED SMC_RxI_CALL(0x015f)
#define SMC_RMI_RTT_READ_ENTRY SMC_RxI_CALL(0x0161)
#define SMC_RMI_RTT_SET_RIPAS SMC_RxI_CALL(0x0169)
#define SMC_RMI_RTT_UNMAP_UNPROTECTED SMC_RxI_CALL(0x0162)
#define SMC_RMI_VERSION SMC_RxI_CALL(0x0150)
return value(?)
#define RMI_SUCCESS 0
#define RMI_ERROR_INPUT 1
#define RMI_ERROR_REALM 2
#define RMI_ERROR_REC 3
#define RMI_ERROR_RTT 4
#define RMI_ERROR_IN_USE 5
exit(?)
#define RMI_EXIT_SYNC 0x00
#define RMI_EXIT_IRQ 0x01
#define RMI_EXIT_FIQ 0x02
#define RMI_EXIT_PSCI 0x03
#define RMI_EXIT_RIPAS_CHANGE 0x04
#define RMI_EXIT_HOST_CALL 0x05
#define RMI_EXIT_SERROR 0x06
from islet.
create realm
nw-linux
sequenceDiagram
participant ioctl
participant kvm_main.c
participant arm.c
participant rmi.c
ioctl -->> kvm_main.c : kvm_create_vm
activate kvm_main.c
kvm_main.c ->> arm.c : kvm_arch_init_vm
activate arm.c
arm.c ->>rmi.c : realm_vm_create
activate rmi.c
rmi.c -->> realm : SMC_RMM_VM_CREATE call
deactivate rmi.c
deactivate arm.c
deactivate kvm_main.c
linux-cca
sequenceDiagram
participant ioctl
participant kvm_main.c
participant arm.c
participant rme.c
participant rmi
kvm_main.c ->> kvm_main.c : kvm_init
activate kvm_main.c
kvm_main.c ->> arm.c : kvm_arch_init
activate arm.c
arm.c ->>rme.c : kvm_init_rme
activate rme.c
rme.c -->> rmi : SMC_RMI_VERSION
deactivate rme.c
deactivate arm.c
deactivate kvm_main.c
ioctl -->> kvm_main.c : kvm_create_vm
activate kvm_main.c
kvm_main.c ->> arm.c : kvm_arch_init_vm
activate arm.c
arm.c ->>rme.c : kvm_init_realm_vm
activate rme.c
deactivate rme.c
deactivate arm.c
deactivate kvm_main.c
ioctl -->> arm.c: KVM_CAP_ARM_RME
activate arm.c
arm.c ->> rme.c : kvm_realm_enable_cap
activate rme.c
rme.c ->> rme.c : kvm_create_realm
activate rme.c
rme.c ->> rme.c : realm_create_rd
activate rme.c
rme.c ->> rme.c : rmi_realm_create
activate rme.c
rme.c -->> rmi : SMC_RMI_REALM_CREATE
deactivate rme.c
deactivate rme.c
deactivate rme.c
deactivate rme.c
from islet.
Realm State
from islet.
Related Issues (20)
- A secure yet efficient way to access from child (Rec) to parent (Rd) HOT 4
- rust-rsi issue & SDK problem HOT 6
- Running islet with --normal-world=linux-net breaks network configuration on the host HOT 4
- Network is not configured on the realm HOT 5
- Compilation fails due to the latest switch from rsa to openssl HOT 1
- The list of code patterns where verification does not work well HOT 1
- Transfer projects from samsung/islet* to islet-projects/islet* HOT 1
- Rule checker workflow is failing on the main branch HOT 1
- Islet-cli segfaults, when launched from /shared folder with rmm=islet HOT 11
- Insert autopadding HOT 1
- Reproduce veraison demo HOT 5
- How to get a CCA machine or simulate CCA chip on X86_64? HOT 1
- RTT_INIT_RIPAS error due to some garbage in the delegated granule for RTT. HOT 1
- Failed to reproduce confidential-ml example HOT 1
- RMM v1.0-eac5 support HOT 1
- autopadding: Cannot cover struct type with a field in the struct
- Failure of unsafe-analyzer analysis
- Mentorship Opportunity for CCC Projects
- realm measurement using veraison HOT 9
- Issues with safety traits and interrupting attestation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from islet.