aboutsummaryrefslogtreecommitdiff
path: root/board/nokia
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2020-04-01 00:35:14 +0200
committerLokesh Vutla <lokeshvutla@ti.com>2020-05-11 10:16:49 +0530
commitb5f7cf50179c8d77ab4ee7240d3479437c5725c1 (patch)
treecf4bc10d17be04b427de9d268e4c01a58bf847f3 /board/nokia
parentf5cfdbf9c996c577f4530a31a5af9ffcf870f7fc (diff)
downloadu-boot-b5f7cf50179c8d77ab4ee7240d3479437c5725c1.zip
u-boot-b5f7cf50179c8d77ab4ee7240d3479437c5725c1.tar.gz
u-boot-b5f7cf50179c8d77ab4ee7240d3479437c5725c1.tar.bz2
Nokia RX-51: Remember setup_console_atag option
When variable setup_console_atag is unset then read default value from OMAP atags which passed NOLO bootloader to U-Boot. This would allow to boot Maemo Linux kernel from U-Boot with serial console settings configured in NOLO bootloader (which loads U-Boot). So serial console needs to be enabled only at one place, globally in NOLO. Signed-off-by: Pali Rohár <pali@kernel.org>
Diffstat (limited to 'board/nokia')
-rw-r--r--board/nokia/rx51/rx51.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index c8ef26f..a282fe6 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -87,6 +87,7 @@ static char *boot_reason_ptr;
static char *hw_build_ptr;
static char *nolo_version_ptr;
static char *boot_mode_ptr;
+static int serial_was_console_enabled;
/*
* Routine: init_omap_tags
@@ -143,6 +144,13 @@ static void reuse_omap_atags(struct tag_omap *t)
strcpy(boot_mode_ptr, version);
}
break;
+ case OMAP_TAG_UART:
+ if (!t->u.uart.enabled_uarts)
+ serial_was_console_enabled = 1;
+ break;
+ case OMAP_TAG_SERIAL_CONSOLE:
+ serial_was_console_enabled = 1;
+ break;
default:
break;
}
@@ -233,10 +241,17 @@ void setup_board_tags(struct tag **in_params)
return;
str = env_get("setup_console_atag");
- if (str && str[0] == '1')
- setup_console_atag = 1;
- else
- setup_console_atag = 0;
+ if (str && str[0]) {
+ if (str[0] == '1')
+ setup_console_atag = 1;
+ else
+ setup_console_atag = 0;
+ } else {
+ if (serial_was_console_enabled)
+ setup_console_atag = 1;
+ else
+ setup_console_atag = 0;
+ }
setup_boot_reason_atag = env_get("setup_boot_reason_atag");
setup_boot_mode_atag = env_get("setup_boot_mode_atag");