diff options
author | Pali Rohár <pali@kernel.org> | 2020-04-01 00:35:14 +0200 |
---|---|---|
committer | Lokesh Vutla <lokeshvutla@ti.com> | 2020-05-11 10:16:49 +0530 |
commit | b5f7cf50179c8d77ab4ee7240d3479437c5725c1 (patch) | |
tree | cf4bc10d17be04b427de9d268e4c01a58bf847f3 /board | |
parent | f5cfdbf9c996c577f4530a31a5af9ffcf870f7fc (diff) | |
download | u-boot-b5f7cf50179c8d77ab4ee7240d3479437c5725c1.tar.gz u-boot-b5f7cf50179c8d77ab4ee7240d3479437c5725c1.tar.bz2 u-boot-b5f7cf50179c8d77ab4ee7240d3479437c5725c1.zip |
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')
-rw-r--r-- | board/nokia/rx51/rx51.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c index c8ef26f940..a282fe68a6 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"); |