[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V1 17/29] xen/arm: Mark each device used by Xen as disabled in DOM0 FDT
On 08/29/2013 02:19 AM, Bamvor Jian Zhang wrote: > Hi Julien Hi Bamvor, >> On some board, there is no alias to the UART. To avoid modification in >> the device tree, dt-uart should also search device by path. >> >> To distinguish an alias from a path, dt-uart will check the first character. >> If it's a / then it's path, otherwise it's an alias. >> >> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> >> Acked-by: Ian Cambell <ian.campbell@xxxxxxxxxx> >> --- >> xen/drivers/char/dt-uart.c | 16 ++++++++++------ >> 1 file changed, 10 insertions(+), 6 deletions(-) >> >> diff --git a/xen/drivers/char/dt-uart.c b/xen/drivers/char/dt-uart.c >> index 93bb0f5..d7204fb 100644 >> --- a/xen/drivers/char/dt-uart.c >> +++ b/xen/drivers/char/dt-uart.c >> @@ -26,9 +26,10 @@ >> >> /* >> * Configure UART port with a string: >> - * alias,options >> + * path,options >> * >> - * @alias: alias used in the device tree for the UART >> + * @path: full path used in the device tree for the UART. If the path >> + * doesn't start with '/', we assuming that it's an alias. >> * @options: UART speficic options (see in each UART driver) >> */ >> static char __initdata opt_dtuart[30] = ""; >> @@ -38,7 +39,7 @@ void __init dt_uart_init(void) >> { >> struct dt_device_node *dev; >> int ret; >> - const char *devalias = opt_dtuart; >> + const char *devpath = opt_dtuart; >> char *options; >> >> if ( !console_has("dtuart") || !strcmp(opt_dtuart, "") ) >> @@ -53,12 +54,15 @@ void __init dt_uart_init(void) >> else >> options = ""; >> >> - early_printk("Looking for UART console %s\n", devalias); >> - dev = dt_find_node_by_alias(devalias); >> + early_printk("Looking for UART console %s\n", devpath); >> + if ( *devpath == '/' ) >> + dev = dt_find_node_by_path(devpath); >> + else >> + dev = dt_find_node_by_alias(devpath); > if '/' start an alias, it should be From the ePAR (http://www.power.org/resources/downloads/Power_ePAPR_APPROVED_v1.0.pdf) section 3.3: an alias name must match the following pattern: [0-9a-z-]+ So we can't find '/' in the alias. > + if ( *devpath == '/' ) > + dev = dt_find_node_by_alias(devpath); > + else > + dev = dt_find_node_by_path(devpath); A path always start by '/'. With your solution, it won't be possible to get the UART by path. -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |