|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/3] xen/ns16550: Make ns16550 driver usable on ARM with HAS_PCI enabled.
On Thu, 19 Nov 2020, Rahul Singh wrote:
> > On 19/11/2020 09:53, Jan Beulich wrote:
> >> On 19.11.2020 10:21, Julien Grall wrote:
> >>> Hi Jan,
> >>>
> >>> On 19/11/2020 09:05, Jan Beulich wrote:
> >>>> On 18.11.2020 16:50, Julien Grall wrote:
> >>>>> On 16/11/2020 12:25, Rahul Singh wrote:
> >>>>>> NS16550 driver has PCI support that is under HAS_PCI flag. When HAS_PCI
> >>>>>> is enabled for ARM, compilation error is observed for ARM architecture
> >>>>>> because ARM platforms do not have full PCI support available.
> >>>>> >
> >>>>>> Introducing new kconfig option CONFIG_HAS_NS16550_PCI to support
> >>>>>> ns16550 PCI for X86.
> >>>>>>
> >>>>>> For X86 platforms it is enabled by default. For ARM platforms it is
> >>>>>> disabled by default, once we have proper support for NS16550 PCI for
> >>>>>> ARM we can enable it.
> >>>>>>
> >>>>>> No functional change.
> >>>>>
> >>>>> NIT: I would say "No functional change intended" to make clear this is
> >>>>> an expectation and hopefully will be correct :).
> >>>>>
> >>>>> Regarding the commit message itself, I would suggest the following to
> >>>>> address Jan's concern:
> >>>>
> >>>> While indeed this is a much better description, I continue to think
> >>>> that the proposed Kconfig option is undesirable to have.
> >>>
> >>> I am yet to see an argument into why we should keep the PCI code
> >>> compiled on Arm when there will be no-use....
> >> Well, see my patch suppressing building of quite a part of it.
> >
> > I will let Rahul figuring out whether your patch series is sufficient to
> > fix compilation issues (this is what matters right now).
>
> I just checked the compilation error for ARM after enabling the HAS_PCI on
> ARM. I am observing the same compilation error what I observed previously.
> There are two new errors related to struct uart_config and struct part_param
> as those struct defined globally but used under X86 flags.
>
> At top level:
> ns16550.c:179:48: error: ‘uart_config’ defined but not used
> [-Werror=unused-const-variable=]
> static const struct ns16550_config __initconst uart_config[] =
> ^~~~~~~~~~~
> ns16550.c:104:54: error: ‘uart_param’ defined but not used
> [-Werror=unused-const-variable=]
> static const struct ns16550_config_param __initconst uart_param[] = {
>
>
> >
> >>>> Either,
> >>>> following the patch I've just sent, truly x86-specific things (at
> >>>> least as far as current state goes - if any of this was to be
> >>>> re-used by a future port, suitable further abstraction may be
> >>>> needed) should be guarded by CONFIG_X86 (or abstracted into arch
> >>>> hooks), or the HAS_PCI_MSI proposal would at least want further
> >>>> investigating as to its feasibility to address the issues at hand.
> >>>
> >>> I would be happy with CONFIG_X86, despite the fact that this is only
> >>> deferring the problem.
> >>>
> >>> Regarding HAS_PCI_MSI, I don't really see the point of introducing given
> >>> that we are not going to use NS16550 PCI on Arm in the forseeable
> >>> future.
> >> And I continue to fail to see what would guarantee this: As soon
> >> as you can plug in such a card into an Arm system, people will
> >> want to be able use it. That's why we had to add support for it
> >> on x86, after all.
> >
> > Well, plug-in PCI cards on Arm has been available for quite a while... Yet
> > I haven't heard anyone asking for NS16550 PCI support.
> >
> > This is probably because SBSA compliant server should always provide an
> > SBSA UART (a cut-down version of the PL011). So why would bother to lose a
> > PCI slot for yet another UART?
> >
> >> >> So why do we need a finer graine Kconfig?
> >> Because most of the involved code is indeed MSI-related?
> >
> > Possibly, yet it would not be necessary if we don't want NS16550 PCI
> > support...
>
> To fix compilation error on ARM as per the discussion there are below options
> please suggest which one to use to proceed further.
>
> 1. Use the newly introduced CONFIG_HAS_NS16550_PCI config options. This helps
> also non-x86 architecture in the future not to have compilation error
> what we are observing now when HAS_PCI is enabled.
>
> 2. Guard the remaining x86 specific code with CONFIG_X86 and introduce the
> new CONFIG_HAS_PCI_MSI options to fix the MSI related compilation error.
> Once we have proper support for MSI and PCI for ARM (HAS_PCI_MSI and HAS_PCI
> enabled for ARM in Kconfig ) I am not sure if NS16550 PCI will work out of
> the box on ARM .In that case, we might need to come back again to fix NS16550
> driver.
It doesn't matter too much to me, let's just choose one option so that you
get unblocked soon.
It looks like Jan prefers option 2) and both Julien and I are OK with
it. So let's do 2). Jan, please confirm too :-)
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |