|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/7] serial: Skip over PCIe device which have no quirks (fix AMT regression).
>>> On 07.03.14 at 20:01, Konrad Rzeszutek Wilk <konrad@xxxxxxxxxx> wrote:
> The "ns16550: Add support for UART present in Broadcom TruManage
> capable NetXtreme chips" implies that only devices that are have
> an MMIO BAR and are in the quirks table should be processed.
>
> Even the comment at the end says so:
>
> If we have an io_base, then we succeeded in the lookup
>
> But the code was checking for the !io_base - which is to say if
> the io_base was 0 then we would skip scanning. But io_base
> always has a value - it is set by 'ns16550_init' to a default
> value - so it would never hit the 'continue' path.
>
> This means that if we have an communication device followed by
> a serial AMT device we would pick the communication device instead
> of the AMT device.
>
> See:
> 00:16.0 Communication controller: Intel Corporation Cougar Point HECI
> Controller #1 (rev 04)
> Subsystem: Intel Corporation Device 2008
> Flags: bus master, fast devsel, latency 0, IRQ 11
> Memory at fb12a000 (64-bit, non-prefetchable) [size=16]
> 00:16.3 Serial controller: Intel Corporation Cougar Point KT Controller (rev
> 04) (prog-if 02 [16550])
> Subsystem: Intel Corporation Device 2008
> Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 17
> I/O ports at f0e0 [size=8]
> Memory at fb129000 (32-bit, non-prefetchable) [size=4K]
>
> pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
> pci 0000:00:16.3: [8086:1c3d] type 00 class 0x070002
>
> And Xen picks 00:16.0 as its console when using 'com1=115200,8n1,amt'.
>
> This patch fixes it and allows us to use AMT again by zeroing
> out io_base to zero. If the scan did not work, the io_base is
> set back to a default value (the 'pci_uart_config' does that
> already at its end).
>
> CC: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>
> CC: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>
> CC: Thomas Lendacky <Thomas.Lendacky@xxxxxxx>
> CC: Jan Beulich <jbeulich@xxxxxxxx>
> CC: Keir Fraser <keir@xxxxxxx>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> xen/drivers/char/ns16550.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 53e49a1..2fded08 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -616,6 +616,7 @@ pci_uart_config (struct ns16550 *uart, int skip_amt, int
> bar_idx)
> unsigned int b, d, f, nextf, i;
> u16 vendor, device;
>
> + uart->io_base = 0;
> /* NB. Start at bus 1 to avoid AMT: a plug-in card cannot be on bus 0. */
> for ( b = skip_amt ? 1 : 0; b < 0x100; b++ )
> {
> --
> 1.7.7.6
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |