forked from Mirrors/opensbi
		
	lib: utils: consider ':' in stdout-path
The value of the /chosen/stdout-path devicetree property is used to
determine the UART used by openSBI. According to the devicetree
specification the value may contain a hyphen, e.g.
	chosen {
                stdout-path = "/serial@f00:115200";
        };
If the character ':' is present, it terminates the path of the device.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							d9ba6536d3
						
					
				
				
					commit
					66c4fca532
				
			@@ -42,12 +42,21 @@ int fdt_serial_init(void)
 | 
			
		||||
	int pos, noff = -1, len, coff, rc;
 | 
			
		||||
	void *fdt = sbi_scratch_thishart_arg1_ptr();
 | 
			
		||||
 | 
			
		||||
	/* Find offset of node pointed by stdout-path */
 | 
			
		||||
	/* Find offset of node pointed to by stdout-path */
 | 
			
		||||
	coff = fdt_path_offset(fdt, "/chosen");
 | 
			
		||||
	if (-1 < coff) {
 | 
			
		||||
		prop = fdt_getprop(fdt, coff, "stdout-path", &len);
 | 
			
		||||
		if (prop && len)
 | 
			
		||||
			noff = fdt_path_offset(fdt, prop);
 | 
			
		||||
		if (prop && len) {
 | 
			
		||||
			const char *sep, *start = prop;
 | 
			
		||||
 | 
			
		||||
			/* The device path may be followed by ':' */
 | 
			
		||||
			sep = strchr(start, ':');
 | 
			
		||||
			if (sep)
 | 
			
		||||
				noff = fdt_path_offset_namelen(fdt, prop,
 | 
			
		||||
							       sep - start);
 | 
			
		||||
			else
 | 
			
		||||
				noff = fdt_path_offset(fdt, prop);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* First check DT node pointed by stdout-path */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user