[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Porting Xen to Jetson Nano


On 23/07/2020 05:26, Christopher Clark wrote:
On Wed, Jul 22, 2020 at 10:59 AM Srinivas Bangalore <srini@xxxxxxxxxx> wrote:
Dear Xen experts,

Would greatly appreciate some hints on how to move forward with this one…

Hi Srini,

I don't have any strong recommendations for you, but I do want to say
that I'm very happy to see you taking this project on and I am hoping
for your success. I have a newly-arrived Jetson Nano sitting on my
desk here, purchased with the intention of getting Xen up and running
on it, that I just haven't got to work on yet. I'm also familiar with
Chris Patterson, Kyle Temkin and Ian Campbell's previous Tegra Jetson
patches and it would be great to see some further progress made from

I agree that it would be good to have the support in upstream!

In my recent experience with the Raspberry Pi 4, one basic observation
with ARM kernel bringup is that if your device tree isn't good, your
dom0 kernel can be missing the configuration it needs to use the
serial port correctly and you don't get any diagnostics from it after
Xen attempts to launch it, so I would just patch the right serial port
config directly into your Linux kernel (eg. hardcode specific things
onto the kernel command line) so you're not messing about with that
any more.

The other thing I would recommend is patching in some printks into the
earliest part of the Xen parts of the Dom0 Linux kernel start code.
Others who are more familar with Xen on ARM may have some better
recommendations, but linux/arch/arm/xen/enlighten.c has a function
xen_guest_init that looks like a good place to stuff some extra
printks for some early proof-of-entry from your kernel, and that way
you'll have some indication whether execution has actually commenced
in there.

Linux provides earlyprintk facilities that can be used in Xen. To enable it, you need to have your kernel built with CONFIG_EARLY_PRINTK=y and CONFIG_XEN=y. This can then be enabled by passing earlyprintk=xenboot on your command line.

Note that Linux needs to detect you are using Xen before using earlyprintk. If you need earlier, then what I usually do is hacking xen_raw_console_write() (in drivers/tty/hvc/hvc_xen.c) and replace 'if (xen_domain())' with 'if (1)'.

I don't think you're going to get a great deal of enthusiasm on this
list for Xen 4.8.5, unfortunately; most people around here work off
Xen's staging branch, and I'd be surprised to hear of anyone having
tried a 5.7 Linux kernel with Xen 4.8.5. I can understand why you
might start there from the existing patch series though.

Right, 4.8.5 is now out of support and we improved Xen quite a lot since then. As a general recommendation, I would suggest to move the series to the latest staging once you get it working on 4.8.5.

However, I don't see any reason why 5.7 wouldn't boot on 4.8.5. I will have a look at your stack trace and answer there.

Best regards,

Julien Grall



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.