Comments (9)
For Hypervisor, you can emulate UART8250 or SiFive UART for Guest or VM. We are already doing this for KVM RISC-V and Xvisor RISC-V.
From hypervisors perspective, we really don't need any SBI console calls.
Regards,
Anup
from riscv-sbi-doc.
Sounds like they're not coming back: https://lore.kernel.org/patchwork/cover/1119999/
from riscv-sbi-doc.
The idea is to deprecate them in future because you can use earlycon devices in Linux.
from riscv-sbi-doc.
SBI of course doesn't just cater to Linux but you'd have the same issue on basically any other operating system too: Sharing a UART or console device between the OS and the SBI provider could result in them interfering with each other. UEFI has a clear hand-off point to coordinate who in charge of managing I/O devices (the ExitBootServices function), but since SBI doesn't have anything equivalent it makes more sense to remove these functions entirely. Effectively, the hand-off takes place as soon as the OS starts
from riscv-sbi-doc.
from riscv-sbi-doc.
The SBI specification should be extended to note that the console functions are expected to be deprecated.
from riscv-sbi-doc.
The SBI specification should be extended to note that the console functions are expected to be deprecated.
I agree. We need a short paragraph at the end of "Legacy SBI Extension, Extension IDs 0x00 through 0x0F". We should clearly state that we have SBI Extensions to replace almost all Legacy SBI functions except SBI console calls. The rationale for not supporting console functions as SBI Extension is to avoid duplicating early debugging features (such as Linux earlycon) of modern OSes.
Can you send a PR to riscv-sbi-doc ?
Regards,
Anup
from riscv-sbi-doc.
The issue is already addressed in the specification as per the latest suggestion. Closing this.
from riscv-sbi-doc.
IMHO having at least console putchar
functionality is a very nice to have feature in SBI. Is not useful only for bare-metal apps, but also it will help microkernels to stay micro. Otherwise they need to parse the FDT
, find what is the /chosen/std-out
node, parse that node, then check if it's compatible with the supported drivers.
from riscv-sbi-doc.
Related Issues (20)
- [RFC] Syscall to obtain the misa? HOT 1
- Add SBI call to disable SBI HOT 6
- Timer Extension Clarification HOT 3
- Progress of RISC-V SBI calling convention maps to the ARM PSCI calling convention HOT 3
- Clarification on `SBI_SUCCESS` return value from the `sbi_system_suspend` function HOT 1
- Is `sbi_cppc_read_hi` allowed to ignore reserved/unimplemented register IDs? HOT 1
- No SBI way for supervisor to change SXLEN HOT 2
- Is shared memoy exclusive for the setting hart? HOT 1
- Is there any spec to support Sdtrig extension? HOT 2
- Regarding Unofficial hartid Transmission from Machine Mode HOT 4
- [RFC] SBI Implementation IDs experimental space HOT 1
- Improve error handling in sbi pmu
- Clarification needed for sbi_pmu_counter_start
- Change branch from "master" to "main"
- SBI 3.0 work? HOT 1
- SBI Watchdog extension? HOT 1
- Type ambiguities/incosistencies HOT 4
- `sbi_pmu_*` functions take the `counter_mask` arguments in opposite order compared to functions that use `hart_mask` HOT 1
- `sbi_hart_start` doesn't return `SBI_ERR_ALREADY_STARTED` when a hart is already started HOT 3
- Unspecified interactions between HSM and other extensions HOT 25
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 riscv-sbi-doc.