-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
Add support of Xen PV console via UART-like driver #36691
Conversation
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
@@ -88,13 +77,17 @@ configuration would not boot on your hardware. In this case you need to update | |||
configuration by altering device tree and Kconfig options. This will be covered | |||
in detail in next section. | |||
|
|||
No Xen-specific features are supported at the moment. This includes: | |||
Most of Xen-specific features are supported at the moment. This includes: |
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 <dmytro_firsov@epam.com>
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 <dmytro_firsov@epam.com>
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 <dmytro_firsov@epam.com>
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 <dmytro_firsov@epam.com>
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