Code Monkey home page Code Monkey logo

Comments (3)

isaac2-lee avatar isaac2-lee commented on July 20, 2024

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.

isaac2-lee avatar isaac2-lee commented on July 20, 2024

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  
Loading

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
Loading

from islet.

isaac2-lee avatar isaac2-lee commented on July 20, 2024

Realm State

image

from islet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.