|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] 16550: Add command line parsing adjustments
On 05/01/17 19:47, Swapnil Paratey wrote:
> Add parsing options for reg_width and reg_shift in bootup command line
> parameters. This adds flexibility in setting register values
> for MMIO UART devices.
>
> Increase length of opt_com1 and opt_com2 buffer to accommodate more
> command line parameters.
>
> eg. com1=115200,8n1,0x3f8,4 (legacy IO)
> eg. com1=115200/3000000/4/2,8n1,0xfedc9000,4 (MMIO adjustments)
>
> Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
> Signed-off-by: Swapnil Paratey <swapnil.paratey@xxxxxxx>
> ---
> docs/misc/xen-command-line.markdown | 2 +-
> xen/drivers/char/ns16550.c | 20 +++++++++++++++++---
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/docs/misc/xen-command-line.markdown
> b/docs/misc/xen-command-line.markdown
> index 0138978..3297646 100644
> --- a/docs/misc/xen-command-line.markdown
> +++ b/docs/misc/xen-command-line.markdown
> @@ -291,7 +291,7 @@ Flag to indicate whether to probe for a CMOS Real Time
> Clock irrespective of
> ACPI indicating none to be there.
>
> ### com1,com2
> -> `=
> <baud>[/<base-baud>][,[DPS][,[<io-base>|pci|amt][,[<irq>][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
> +> `=
> <baud>[/[<base-baud>][/[<reg-width>][/[<reg-shift>]]]][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]]`
>
> Both option `com1` and `com2` follow the same format.
>
Please also add two bullet points to the list just out of context below
this.
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 1da103a..e076b29 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -33,14 +33,14 @@
>
> /*
> * Configure serial port with a string:
> - *
> <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
> + *
> <baud>[/[<base-baud>][/[<reg-width>][/[<reg-shift>]]]][,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[30] = "";
> -static char __initdata opt_com2[30] = "";
> +static char __initdata opt_com1[50] = "";
> +static char __initdata opt_com2[50] = "";
I'd up these to 64, to be a nice power of two. Its initdata, so size
(on this scale) isn't a problem.
Otherwise, looks good.
~Andrew
> string_param("com1", opt_com1);
> string_param("com2", opt_com2);
>
> @@ -1118,6 +1118,20 @@ static void __init ns16550_parse_port_config(
> uart->clock_hz = simple_strtoul(conf, &conf, 0) << 4;
> }
>
> + if ( *conf == '/' )
> + {
> + conf++;
> + if ( *conf != '/' && *conf != ',' )
> + uart->reg_width = simple_strtol(conf, &conf, 0);
> + }
> +
> + if ( *conf == '/' )
> + {
> + conf++;
> + if ( *conf != '/' && *conf != ',' )
> + uart->reg_shift = simple_strtol(conf, &conf, 0);
> + }
> +
> if ( *conf == ',' && *++conf != ',' )
> {
> uart->data_bits = simple_strtoul(conf, &conf, 10);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |