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

Re: Porting Xen to Jetson Nano





On 23/07/2020 18:04, Julien Grall wrote:
Hi,

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
those.

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.

Hmmm... I forgot to earlyprintk is x86 only. On Arm, you want to use earlycon=xenboot. This should be available as long as you build Linux with CONFIG_XEN=y. No need to detect Xen. However...

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)'.

... this point is still valid if you want to use earlycon before it is actually initialized.

Apologies for the confusion.

Cheers,

--
Julien Grall



 


Rackspace

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