Comments (6)
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.
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.
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.
I think it's the latter. I have few other comments.
- The keystone enclave extension must follow SBI v0.2 calling convention.
- 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.
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.
Required patches are reviewed and merged.
Regards,
Anup
from opensbi.
Related Issues (20)
- Handling interrupts with multiple privileges on multiple harts in OpenSBI HOT 1
- [help] K210 serial port has no output HOT 1
- build issue - functions do not get linked HOT 1
- System freezes when setting smp value to 54 or higher with qemu-system-riscv64
- Firmware SMP boot bug HOT 3
- sbi_hsm_hart_start_finish: ERR: The hart is in invalid state [2147774600] HOT 1
- firmware base is not the value of FW_TEXT_START( but 0x80000000) HOT 1
- How to get symtab from elf?
- qemu-system-riscv64: -append only allowed with -kernel option HOT 1
- Writing drivers for Timer peripheral
- questions about OpenSBI Version 1.5 HOT 10
- opensbi failed to build HOT 2
- error: "__always_inline" redefined [-Werror] HOT 2
- Why ld is leaving a hole in memory? HOT 4
- Why do we need a while loop when processing IMSCI external interrupts? HOT 5
- understanding -PIE HOT 6
- Access to time CSR is trap-emulated even when scounteren.TM is clear HOT 5
- Regarding support for NACL on the SBI side
- Some ROM regions are overlapping HOT 3
- 系统级程序运行量级
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 opensbi.