-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Add support of Xen PV console via UART-like driver #36691
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support of Xen PV console via UART-like driver #36691
Conversation
bertrand-marquis
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Xen 4.16 is not release yet so if you took current headers status they might change before the 4.16 release in 6 month or so.
I would suggest to use a stable release when importing public headers (4.15.0)
boards/arm64/xenvm/doc/index.rst
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This changes looks weird.
Most of the features listed after are under development or not supported at all (xenbus for example).
More then that is is incoherent with the next chapter saying "now only following feature are supported".
Could this change be a mistake ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, sorry, agree. I missed "not" and context was broken. Of course, these feature are NOT supported yet.
Thank you for careful review!
8f3db2e to
7e6e73d
Compare
I agree, did not pay enough attention for that. Xen public headers did not pass Zephyr code style and license check, so I decided to fix it altogether with your suggestion. Current headers were taken from Xen RELEASE-4.15.0 branch and modified to comply with Zephyr code-style. Thank you for comment! |
d3f1d0d to
e37ca86
Compare
|
I need someone, who can clarify me few moment with Zephyr CI checks. The only 2 problems left in this PR according to CI report:
It looks like style checker identify it as multiplication instead of pointer definition and produce spacing error (false-positive).
But as I can see, MIT headers/files are already present in Zephyr tree (e.g. include/net/http_parser.h). Is it possible to use original Xen public headers or I should create my own Apache 2.0 licensed files? |
|
One think I don't like is that we now have |
e37ca86 to
a21b071
Compare
Fixed, hypercall interface moved to arch/arm64/core/xen. |
|
I think first step is to send a quick email to TSC mailing list about the licensing. Hopefully it would be easy since it's BSD. |
|
@firscity sorry for the delay. I've included this in this week's TSC agenda. |
|
@carlescufi, thank you a lot for help, I will wait for results. In case of TSC approval, I will prepare this PR for merge ASAP (fix merge conflicts). |
8ca6c1d to
06a0efb
Compare
|
@firscity - please rebase |
e37ca86 to
8398ac4
Compare
|
@cfriedt, done. |
|
@firscity - the TSC has decided to hold off merging this, but I would imagine it will go in in the near future. Thanks for your patience. |
8398ac4 to
14cf7d2
Compare
|
In 2.7 release No functional changes were made by last force-push. |
14cf7d2 to
4651992
Compare
|
Is there any update for this pull request? Or v3.0.0 PRs are not ready for merge now? |
you need to rebase and fix the CI errors. |
4651992 to
e1c5167
Compare
|
@carlocaione, done, failed CI tests are licensing and format false positives (described in comments above). |
|
@firscity can you please rebase and solve the conflicts? |
This commit adds few Xen public headers, which are needed for further development of Xen features in Zephyr. Headers were taken from include/public directory of Xen RELEASE-4.15.0 branch, filtered and cleaned up to leave only parts, which are now required. Directory structure were saved (public, public/io, public/hvm), so public headers content can be supplemented if nessesary. Signed-off-by: Dmytro Firsov <[email protected]>
This commit adds Xen hypervisor call interface for arm64 architecture. This is needed for further development of Xen features in Zephyr. Signed-off-by: Dmytro Firsov <[email protected]>
This commit adds minimal support of Xen hypervisor console via UART-like driver. Implementation allows to use poll_in/poll_out char interface for uart_console.c driver directly to HV console instead of using Xen virtual PL011 UART. Future implementation will support interrupt driven interface on Xen event channels, currently it is under development. Also this commit introduces early console_io Xen interface, which allows to receive printk/stdout messages quickly after start, but requires Xen, built with CONFIG_DEBUG option. Signed-off-by: Dmytro Firsov <[email protected]>
This commit removes usage of Xen emulated PL011 SBSA UART in favor of Xen PV console minimal implementation. Now boot log and application output can be directly taken from hypervisor domain console, instead of virtual UART. Also Xen VM doc was updated according to these changes. Signed-off-by: Dmytro Firsov <[email protected]>
e1c5167 to
1066cc1
Compare
|
@carlescufi yes, sure. Done. |
This commit series adds initial items for Xen features development (some of public headers, hypercall interface etc).
Also it adds minimal implementation of Xen PV console in Zephyr (via UART-like driver with poll API). It allows to get boot log and application stdout directly from domain hypervisor console, instead of emulated PL011 SBSA.
As addition, this console also supports console_io interface. It can be used for early boot log - driver introduces printk/stdout char-based hooks, that allow to receive kernel messages quickly after start, but require debug version of Xen (compiled with CONFIG_DEBUG option).
Fixes #37239