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

Re: [PATCH v2 2/3] ns16550: "com<N>=" command line options are x86-specific


  • To: Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • From: Rahul Singh <Rahul.Singh@xxxxxxx>
  • Date: Tue, 24 Nov 2020 09:50:55 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GZFaB2/bXfxcggfsHvRMUSk/hZxdtuFFLn0thbD2pBk=; b=nkL6l/5nnNzqo6nbGJu4lBlwXbadKWXCLDNpe2Bo2fGfDX0bQy4puQbFKMOraiqbMZ+r+OCT4xobfr1J6cDCkWywsQ5uVCyEk9yN4r9yRIAnM1XSc5DFxop9ZnwoyztT9wlTmFgT3uRaskC2oHYzInxUKNGwe+ALoZcwl1pzyQuIJ5l5YMAgnox9HLw92LAlzlpYrphPuQ6CCSyF/pi+2dECIpdhvWNPCjgiqlL6vObDDgEAomnxixrStwe67NDQMVTpfx0GkkJzat6oW7fDJ3qMfxsLsM4jEq13JgDmgYaqQTzRDcGTwYSdalv8ZDj7X7xIjVioSmRpt/NKVOhspA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JYHx4qkIBnYHL76NY0JpGVqi0juEQ1kmsHyWcYZeuJG234fbe+dqZmaITRs9eKtOJIY8fBTxirBQgkX/+c3BvPL0GiDKMKwczJqPAXNn+DAOELarTR/pqBwEqzWC/6CHljLj/1N3sYrUXhgwvD9hRJ99TisGtM1JOVfi0aKhAWmcL4pMQ2vKgAeZz8DbcLQP1wfRjuQrnEhMP2o0+v8tr5k4uDpbs4oUE91nTyfTnPF9nNdujuIly2lJmWNeuRQT7eZ7vZIrJc5mHjDvFmLHGOSY+BaJRf3Q70LbVTFAzxRDtO0AB3c1VSfWC40PlwH2ZmFwEOKy/0kruSzV0lcxjg==
  • Authentication-results-original: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=arm.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Tue, 24 Nov 2020 09:51:09 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHWwZqpPJPxxO+xfkyOkLGUgNSyN6nWaXmAgACh7IA=
  • Thread-topic: [PATCH v2 2/3] ns16550: "com<N>=" command line options are x86-specific

Hello Jan,

> On 24 Nov 2020, at 12:11 am, Stefano Stabellini <sstabellini@xxxxxxxxxx> 
> wrote:
> 
> On Mon, 23 Nov 2020, Jan Beulich wrote:
>> Pure code motion (plus the addition of "#ifdef CONFIG_X86); no
>> functional change intended.
>> 
>> Reported-by: Julien Grall <julien@xxxxxxx>
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> Great cleanup
> 
> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>

Reviewed-by: Rahul Singh <rahul.singh@xxxxxxx>

Regards,
Rahul
> 
> 
>> ---
>> v2: Re-base over new earlier patch.
>> 
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -318,8 +318,8 @@ Interrupts.  Specifying zero disables CM
>> Flag to indicate whether to probe for a CMOS Real Time Clock irrespective of
>> ACPI indicating none to be there.
>> 
>> -### com1
>> -### com2
>> +### com1 (x86)
>> +### com2 (x86)
>>> `= 
>>> <baud>[/<base-baud>][,[DPS][,[<io-base>|pci|amt][,[<irq>|msi][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
>> 
>> Both option `com1` and `com2` follow the same format.
>> --- a/xen/drivers/char/ns16550.c
>> +++ b/xen/drivers/char/ns16550.c
>> @@ -31,38 +31,6 @@
>> #include <asm/fixmap.h>
>> #endif
>> 
>> -/*
>> - * Configure serial port with a string:
>> - *   
>> <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
>> - * The tail of the string can be omitted if platform defaults are 
>> sufficient.
>> - * If the baud rate is pre-configured, perhaps by a bootloader, then 'auto'
>> - * can be specified in place of a numeric baud rate. Polled mode is 
>> specified
>> - * by requesting irq 0.
>> - */
>> -static char __initdata opt_com1[128] = "";
>> -static char __initdata opt_com2[128] = "";
>> -string_param("com1", opt_com1);
>> -string_param("com2", opt_com2);
>> -
>> -enum serial_param_type {
>> -    baud,
>> -    clock_hz,
>> -    data_bits,
>> -    io_base,
>> -    irq,
>> -    parity,
>> -    reg_shift,
>> -    reg_width,
>> -    stop_bits,
>> -#ifdef CONFIG_HAS_PCI
>> -    bridge_bdf,
>> -    device,
>> -    port_bdf,
>> -#endif
>> -    /* List all parameters before this line. */
>> -    num_serial_params
>> -};
>> -
>> static struct ns16550 {
>>     int baud, clock_hz, data_bits, parity, stop_bits, fifo_size, irq;
>>     u64 io_base;   /* I/O port or memory-mapped I/O address. */
>> @@ -98,32 +66,6 @@ static struct ns16550 {
>> #endif
>> } ns16550_com[2] = { { 0 } };
>> 
>> -struct serial_param_var {
>> -    char name[12];
>> -    enum serial_param_type type;
>> -};
>> -
>> -/*
>> - * Enum struct keeping a table of all accepted parameter names for parsing
>> - * com_console_options for serial port com1 and com2.
>> - */
>> -static const struct serial_param_var __initconst sp_vars[] = {
>> -    {"baud", baud},
>> -    {"clock-hz", clock_hz},
>> -    {"data-bits", data_bits},
>> -    {"io-base", io_base},
>> -    {"irq", irq},
>> -    {"parity", parity},
>> -    {"reg-shift", reg_shift},
>> -    {"reg-width", reg_width},
>> -    {"stop-bits", stop_bits},
>> -#ifdef CONFIG_HAS_PCI
>> -    {"bridge", bridge_bdf},
>> -    {"dev", device},
>> -    {"port", port_bdf},
>> -#endif
>> -};
>> -
>> #ifdef CONFIG_HAS_PCI
>> struct ns16550_config {
>>     u16 vendor_id;
>> @@ -674,6 +616,19 @@ static struct uart_driver __read_mostly
>> #endif
>> };
>> 
>> +static void ns16550_init_common(struct ns16550 *uart)
>> +{
>> +    uart->clock_hz  = UART_CLOCK_HZ;
>> +
>> +    /* Default is no transmit FIFO. */
>> +    uart->fifo_size = 1;
>> +
>> +    /* Default lsr_mask = UART_LSR_THRE */
>> +    uart->lsr_mask  = UART_LSR_THRE;
>> +}
>> +
>> +#ifdef CONFIG_X86
>> +
>> static int __init parse_parity_char(int c)
>> {
>>     switch ( c )
>> @@ -1217,6 +1172,64 @@ pci_uart_config(struct ns16550 *uart, bo
>> #endif /* CONFIG_HAS_PCI */
>> 
>> /*
>> + * Configure serial port with a string:
>> + *   
>> <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
>> + * The tail of the string can be omitted if platform defaults are 
>> sufficient.
>> + * If the baud rate is pre-configured, perhaps by a bootloader, then 'auto'
>> + * can be specified in place of a numeric baud rate. Polled mode is 
>> specified
>> + * by requesting irq 0.
>> + */
>> +static char __initdata opt_com1[128] = "";
>> +static char __initdata opt_com2[128] = "";
>> +string_param("com1", opt_com1);
>> +string_param("com2", opt_com2);
>> +
>> +enum serial_param_type {
>> +    baud,
>> +    clock_hz,
>> +    data_bits,
>> +    io_base,
>> +    irq,
>> +    parity,
>> +    reg_shift,
>> +    reg_width,
>> +    stop_bits,
>> +#ifdef CONFIG_HAS_PCI
>> +    bridge_bdf,
>> +    device,
>> +    port_bdf,
>> +#endif
>> +    /* List all parameters before this line. */
>> +    num_serial_params
>> +};
>> +
>> +struct serial_param_var {
>> +    char name[12];
>> +    enum serial_param_type type;
>> +};
>> +
>> +/*
>> + * Enum struct keeping a table of all accepted parameter names for parsing
>> + * com_console_options for serial port com1 and com2.
>> + */
>> +static const struct serial_param_var __initconst sp_vars[] = {
>> +    {"baud", baud},
>> +    {"clock-hz", clock_hz},
>> +    {"data-bits", data_bits},
>> +    {"io-base", io_base},
>> +    {"irq", irq},
>> +    {"parity", parity},
>> +    {"reg-shift", reg_shift},
>> +    {"reg-width", reg_width},
>> +    {"stop-bits", stop_bits},
>> +#ifdef CONFIG_HAS_PCI
>> +    {"bridge", bridge_bdf},
>> +    {"dev", device},
>> +    {"port", port_bdf},
>> +#endif
>> +};
>> +
>> +/*
>>  * Used to parse name value pairs and return which value it is along with
>>  * pointer for the extracted value.
>>  */
>> @@ -1504,17 +1517,6 @@ static void __init ns16550_parse_port_co
>>     serial_register_uart(uart - ns16550_com, &ns16550_driver, uart);
>> }
>> 
>> -static void ns16550_init_common(struct ns16550 *uart)
>> -{
>> -    uart->clock_hz  = UART_CLOCK_HZ;
>> -
>> -    /* Default is no transmit FIFO. */
>> -    uart->fifo_size = 1;
>> -
>> -    /* Default lsr_mask = UART_LSR_THRE */
>> -    uart->lsr_mask  = UART_LSR_THRE;
>> -}
>> -
>> void __init ns16550_init(int index, struct ns16550_defaults *defaults)
>> {
>>     struct ns16550 *uart;
>> @@ -1541,6 +1543,8 @@ void __init ns16550_init(int index, stru
>>     ns16550_parse_port_config(uart, (index == 0) ? opt_com1 : opt_com2);
>> }
>> 
>> +#endif /* CONFIG_X86 */
>> +
>> #ifdef CONFIG_HAS_DEVICE_TREE
>> static int __init ns16550_uart_dt_init(struct dt_device_node *dev,
>>                                        const void *data)
>> 
> 




 


Rackspace

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