mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
dt-uart: use ':' as separator between path and options
',' is a valid character in a device-tree path (see ePAPR v1.1 Table 2-1), in fact ',' is actually pretty common in node names. Using ',' as a separator breaks for example on fast models. If you use the full path (/smb/motherboard/iofpga@3,00000000/uart@090000) rather than the alias then earlyprintk gives: (XEN) Looking for UART console /smb/motherboard/iofpga@3 (XEN) Unable to find device "/smb/motherboard/iofpga@3" (XEN) Bad console= option 'dtuart' I actually noticed this on Jetson where the uart is "/serial@0,70006300" and there happened to be no alias defined. Instead use ':' as the separator, it is defined to terminate the path in the context of /chosen/stdout-path (Table 3-4) which is pretty closely analogous to the dtuart= option and so makes a pretty good choice (especially since the next patch adds support for stdout-path). Since no DT aware driver current supports any options there is no point in retaining support for ',' for backwards compatibility. Additionally, expand the buffer for the dtuart option, a path can be far longer than 30 characters (in fact the maximum size of a single node name is 31, so it's not even necessarily enough for an alias). 128 is completely arbitrary and allows for paths at least 8 deep even with worst case node names. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Reviewed-by: Julien Grall <julien.grall@linaro.org>
This commit is contained in:
1 parent
7c9fb01e02
commit
f01af57300
2 files changed
+4
-4
No files matched your search
@@ -558,7 +558,7 @@ Pin dom0 vcpus to their respective pcpus
|
||||
Flag that makes a 64bit dom0 boot in PVH mode. No 32bit support at present.
|
||||
|
||||
### dtuart (ARM)
|
||||
> `= path [,options]`
|
||||
> `= path [:options]`
|
||||
|
||||
> Default: `""`
|
||||
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
|
||||
/*
|
||||
* Configure UART port with a string:
|
||||
* path,options
|
||||
* path:options
|
||||
*
|
||||
* @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] = "";
|
||||
static char __initdata opt_dtuart[256] = "";
|
||||
string_param("dtuart", opt_dtuart);
|
||||
|
||||
void __init dt_uart_init(void)
|
||||
@@ -50,7 +50,7 @@ void __init dt_uart_init(void)
|
||||
return;
|
||||
}
|
||||
|
||||
options = strchr(opt_dtuart, ',');
|
||||
options = strchr(opt_dtuart, ':');
|
||||
if ( options != NULL )
|
||||
*(options++) = '\0';
|
||||
else
|
||||
|
||||