mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-28 15:13:31 +08:00
fdt_support: Add multi-serial support for stdout fixup
Currently fdt_fixup_stdout() is using hard-coded CONFIG_CONS_INDEX constant. With multi-serial support, the CONS_INDEX may no longer represent actual console, so we should try to extract port number from the current stdio device name instead of always hard-coding the constant value. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: Gerald Van Baren <vanbaren@cideas.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
da0e5f7ee8
commit
3e303f748c
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <stdio_dev.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/global_data.h>
|
||||
@ -90,6 +91,23 @@ int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF_STDOUT_VIA_ALIAS
|
||||
|
||||
#ifdef CONFIG_SERIAL_MULTI
|
||||
static void fdt_fill_multisername(char *sername, size_t maxlen)
|
||||
{
|
||||
const char *outname = stdio_devices[stdout]->name;
|
||||
|
||||
if (strcmp(outname, "serial") > 0)
|
||||
strncpy(sername, outname, maxlen);
|
||||
|
||||
/* eserial? */
|
||||
if (strcmp(outname + 1, "serial") > 0)
|
||||
strncpy(sername, outname + 1, maxlen);
|
||||
}
|
||||
#else
|
||||
static inline void fdt_fill_multisername(char *sername, size_t maxlen) {}
|
||||
#endif /* CONFIG_SERIAL_MULTI */
|
||||
|
||||
static int fdt_fixup_stdout(void *fdt, int chosenoff)
|
||||
{
|
||||
int err = 0;
|
||||
@ -98,6 +116,8 @@ static int fdt_fixup_stdout(void *fdt, int chosenoff)
|
||||
char sername[9] = { 0 };
|
||||
const char *path;
|
||||
|
||||
fdt_fill_multisername(sername, sizeof(sername) - 1);
|
||||
if (!sername[0])
|
||||
sprintf(sername, "serial%d", CONFIG_CONS_INDEX - 1);
|
||||
|
||||
err = node = fdt_path_offset(fdt, "/aliases");
|
||||
|
Loading…
Reference in New Issue
Block a user