Git Product home page Git Product logo

Comments (6)

dayeol avatar dayeol commented on September 27, 2024

I actually figured out after trying several options.

I think the best way still is to add a directory under "platform" and have a common source files in the objects.mk under each platform sub-directory (e.g., keystone/qemu/virt), as the additional extension is for specific set of platforms.

Can I add a platform named keystone? We will make the code comply with your contribution guideline.

from opensbi.

avpatel avatar avpatel commented on September 27, 2024

Yes, you can add a duplicate platform but this is not the best way to do it.

In SBI v0.2, we have reserved range for "Experimental Extensions" and "Platform/Vendor Extensions".

A "Platform/Vendor SBI Extension" is strictly vendor/platform specific and cannot be shared across platforms whereas "Experimental SBI Extension" is for work-in-progress SBI extensions (such as Keystone Enclave SBI calls) and can be shared across platforms.

The SBI v0.2 patches have just landed in OpenSBI repo and SBI v0.2 replacement extensions are still under review.

Currently, we don't have a mechanism to register/unregister "Experimental SBI Extensions" at runtime so we need that first for your "Keystone Enclave SBI calls". I will add this mechanism for you so stay tuned.

Once we have above mentioned mechanism, you can add "Keystone Enclave" implementation under lib/utils/experimental of your OpenSBI fork and you can invoke "Keystone Enclave" init() function from platform final_init() to play with it.

Eventually, we will have to define "Keystone Enclave" in SBI spec and we can merge your "Keystone Enclave" in OpenSBI repo only after it is defined in a SBI draft/ratified spec.

Does it sound good to you ?

Regards,
Anup

from opensbi.

dayeol avatar dayeol commented on September 27, 2024

Thanks for the explanation. It sounds perfect! I will stay tuned for the update.

Only one question: does "register/unregister experimental SBI extension at runtime" mean that we make it loadable and dynamically assign SBI numbers? Or does that simply mean I need to invoke keystone "init()" in the platform's final_init()?

from opensbi.

atishp04 avatar atishp04 commented on September 27, 2024

I think it's the latter. I have few other comments.

  1. The keystone enclave extension must follow SBI v0.2 calling convention.
  2. The custom SBI extension documentation should be made public in order to get feedback from the community. This will also help in merging the specification to SBI spec later.

from opensbi.

avpatel avatar avpatel commented on September 27, 2024

I have sent-out a patch for this to OpenSBI mailing list.

To join, OpenSBI mailing list visit:
http://lists.infradead.org/mailman/listinfo/opensbi

Regards,
Anup

from opensbi.

avpatel avatar avpatel commented on September 27, 2024

Required patches are reviewed and merged.

Regards,
Anup

from opensbi.

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.