xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: Julien Grall <julien.grall@arm.com>
Cc: "Edgar Iglesias (edgar.iglesias@xilinx.com)"
	<edgar.iglesias@xilinx.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	casionwoo <casionwoo@gmail.com>,
	xen-devel@lists.xen.org
Subject: Re: Xen ARM small task (WAS: Re: [Xen Question])
Date: Mon, 21 Nov 2016 22:57:46 +0100	[thread overview]
Message-ID: <20161121215746.GV9606@toto> (raw)
In-Reply-To: <93840841-e12d-7970-eee6-da5f81e8ea2d@arm.com>

On Mon, Nov 21, 2016 at 09:24:27PM +0000, Julien Grall wrote:
> 
> 
> On 21/11/2016 21:13, Edgar E. Iglesias wrote:
> >On Mon, Nov 21, 2016 at 01:01:15PM -0800, Stefano Stabellini wrote:
> >>On Mon, 21 Nov 2016, Edgar E. Iglesias wrote:
> >>>On Fri, Nov 18, 2016 at 10:58:42AM -0800, Stefano Stabellini wrote:
> >>>>On Thu, 17 Nov 2016, Julien Grall wrote:
> >>>>>Hi Stefano,
> >>>>>
> >>>>>On 17/11/2016 11:26, Stefano Stabellini wrote:
> >>>>>>On Mon, 14 Nov 2016, Julien Grall wrote:
> >>>>>>>On 11/11/2016 13:55, Stefano Stabellini wrote:
> >>>>>>>>On Fri, 11 Nov 2016, Julien Grall wrote:
> >>>>>>>>>On 11/11/2016 02:24, Stefano Stabellini wrote:
> >>>>>>>>>>On Thu, 10 Nov 2016, Julien Grall wrote:
> >>>>>>>>>>>(CC Stefano and change the title)
> >>>>>>>>>>>On 10/11/16 12:13, casionwoo wrote:
> >>>>>>>>>>>>I’m pleased about your reply and you have a lot of code to
> >>>>>>>>>>>>clean-up.
> >>>>>>>>>>>>
> >>>>>>>>>>>>As you mentioned, It’s really huge to digest at once. Thank you
> >>>>>>>>>>>>for
> >>>>>>>>>>>>understanding me.
> >>>>>>>>>>>>
> >>>>>>>>>>>>And that’s why i need a small fix up and todo list.
> >>>>>>>>>>>>
> >>>>>>>>>>>>I feel familiar with ARM and c language and there’s no specific
> >>>>>>>>>>>>area
> >>>>>>>>>>>>yet.
> >>>>>>>>>>>>
> >>>>>>>>>>>>I think that i can find interesting area with following up the
> >>>>>>>>>>>>codes.
> >>>>>>>>>>>>
> >>>>>>>>>>>>I’m looking forward to being stuck on Xen.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Then it would be easier for me to understand about Xen on ARM.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Please let me know the TODO and bug-fix lists.
> >>>>>>>>>>>
> >>>>>>>>>>>Stefano, before giving a list of code clean-up, do you have any
> >>>>>>>>>>>small
> >>>>>>>>>>>TODO
> >>>>>>>>>>>on
> >>>>>>>>>>>ARM in mind?
> >>>>>>>>>>
> >>>>>>>>>>A simple task we talked about recently is to enable the vuart
> >>>>>>>>>>(xen/arch/arm/vuart.c) for all guests. At the moment it is only
> >>>>>>>>>>emulated
> >>>>>>>>>>for Dom0, but some guests, in particular BareMetal guests
> >>>>>>>>>>(https://en.wikipedia.org/wiki/BareMetal), would benefit from it.
> >>>>>>>>>>
> >>>>>>>>>>It would be best to introduce an option in libxl to explicitly
> >>>>>>>>>>enable/disable the vuart for DomUs. Something like vuart=1 in the VM
> >>>>>>>>>>config file.
> >>>>>>>>>
> >>>>>>>>>The vuart has not been enabled for DomU because it the UART region may
> >>>>>>>>>clash
> >>>>>>>>>with the guest memory layout (which is static).
> >>>>>>>>>
> >>>>>>>>>I don't think this option should be available until we allow the guest
> >>>>>>>>>to
> >>>>>>>>>use
> >>>>>>>>>the same memory layout as the host (see e820_host parameter for x86).
> >>>>>>>>
> >>>>>>>>Actually there is no reason for the vuart to use the same address as
> >>>>>>>>the physical uart on the platform, is there?
> >>>>>>>>In fact it doesn't even
> >>>>>>>>have to prentend to be the same uart as the one on the board, right?
> >>>>>>>>The vuart MMIO address could be completely configurable and independent
> >>>>>>>>from the one of the physical uart.
> >>>>>>>
> >>>>>>>There is no reason to use the same information as the physical UART.
> >>>>>>>
> >>>>>>>However, the vuart requires quite a few information (e.g base address,
> >>>>>>>offset
> >>>>>>>of different register... see vuart_info structure in include/xen/serial.h
> >>>>>>>for
> >>>>>>>more details) in order to fully work.
> >>>>>>>
> >>>>>>>IHMO this is a lot of works for the user to configure. I would much prefer
> >>>>>>>to
> >>>>>>>see a PL011 emulated at a specific base address and let the user select
> >>>>>>>whether he wants a UART to debug or not.
> >>>>>>
> >>>>>>So you envision the configuration of the MMIO base address to be done as
> >>>>>>part of a new dynamic guest memory map?
> >>>>>
> >>>>>For guest using dynamic memory map, I would expect to expose an uncompleted
> >>>>>emulation of the physical UART (e.g it would only be possible to write) at the
> >>>>>exact same address as on the host.
> >>>>
> >>>>Why? Is this a requirement for baremetal guests?
> >>>>
> >>>>I would have actually opted for always emulating a PL011 even for guests
> >>>>using a dynamic memory map (which of course one way or another need to
> >>>>be able to choose the address of the UART, the memory and the rest).
> >>>
> >>>I guess it's not black and white but trying to reduce the gap towards
> >>>being able to run unmodified SW for a given platform as a guest would
> >>>be nice.
> >>>
> >>>Some times things are quite relaxed and we can recompile the SW for Xen,
> >>>add new drivers etc. Other times perhaps SW has been certified and users
> >>>may not be able to change anything.
> >>>
> >>>For apps where the UARTs are only used for console data, vuarts at
> >>>configurable locations would be nice IMO.
> >>
> >>All right, so I take that same UART as baremetal is easier than always
> >>PL011?
> >
> >I think so, yes.
> >
> >To comply with the SBSA, depending on the guest, we'll probably need to allow for optional emulation of pl011 though...
> >
> >Having a flexible setup so that vm.cfgs can instantiate vuarts or emulated pl011 at specific addresses, that sounds good to me.
> 
> I am more in favor to have a different approach depending on the memory
> layout (static vs dynamic) of the guest.

I see your points. I'll admit I was focusing on the dynamic case.


> 
> Exposing the vuart to a guest with static memory layout is overly complex
> (you have a bunch information to configure) and it is much easier to require
> a guest using pl011 (implementing a small driver for it is very easy). Note
> that the emulation could just use the vuart for now. But the user would just
> have to say pl011 = true in the vm.cfg.
> 
> For the emulated pl011, I would not support user configuration (e.g address)
> when using the static memory layout for similar reason as above. Only
> dynamic layout could support an extend configuration. Even though, I am not
> convince of the usefulness of a pl011 for baremetal app (we are supposed to
> only emulate the hardware).
> 
> Regards,
> 
> -- 
> Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2016-11-21 21:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAMguKxbBxZ_0Za8dAUVUbz1hPT5+QfTsycZCftpi99YsJZ0+Vg@mail.gmail.com>
     [not found] ` <36d47cc0-839b-bd4d-fd73-334435e2dca1@arm.com>
2016-11-10 12:13   ` [Xen Question] casionwoo
2016-11-10 12:24     ` Xen ARM small task (WAS: Re: [Xen Question]) Julien Grall
2016-11-11  2:24       ` Stefano Stabellini
2016-11-11  9:46         ` Julien Grall
2016-11-11 16:59           ` Edgar E. Iglesias
2016-11-14  4:07             ` 유정우
2016-11-11 19:55           ` Stefano Stabellini
2016-11-14 20:12             ` Julien Grall
2016-11-17 17:26               ` Stefano Stabellini
2016-11-17 17:57                 ` Julien Grall
2016-11-18 18:58                   ` Stefano Stabellini
2016-11-21 19:50                     ` Edgar E. Iglesias
2016-11-21 21:01                       ` Stefano Stabellini
2016-11-21 21:13                         ` Edgar E. Iglesias
2016-11-21 21:24                           ` Julien Grall
2016-11-21 21:57                             ` Edgar E. Iglesias [this message]
2016-11-22 19:06                             ` Stefano Stabellini
2016-11-22 19:36                               ` Julien Grall
2016-11-23 15:10                                 ` Artem Mygaiev
2016-11-23 15:19                                   ` Julien Grall
2016-11-23 16:26                                     ` Artem Mygaiev
2016-11-23 16:38                                       ` Edgar E. Iglesias
2016-11-23 18:32                                         ` Julien Grall
2016-11-24 13:29                                           ` Edgar E. Iglesias
2016-11-23 19:55                                 ` Stefano Stabellini
2016-11-25 16:52                                   ` Julien Grall
2016-12-01  2:07                                     ` Stefano Stabellini
2016-12-01 15:47                                       ` Julien Grall
2016-12-01 21:33                                         ` Stefano Stabellini
2016-12-05 14:13                                           ` Julien Grall
2016-12-05 20:25                                             ` Stefano Stabellini
2016-12-06 16:05                                               ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161121215746.GV9606@toto \
    --to=edgar.iglesias@gmail.com \
    --cc=casionwoo@gmail.com \
    --cc=edgar.iglesias@xilinx.com \
    --cc=julien.grall@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).