Branch data Line data Source code
1 : : /*
2 : : * Copyright (c) 2020 Intel Corporation
3 : : *
4 : : * SPDX-License-Identifier: Apache-2.0
5 : : */
6 : :
7 : : #include <zephyr/kernel.h>
8 : : #include <zephyr/init.h>
9 : : #include <zephyr/device.h>
10 : : #include <zephyr/version.h>
11 : :
12 : : #if defined(CONFIG_BOOT_DELAY) && (CONFIG_BOOT_DELAY > 0)
13 : : #define DELAY_STR STRINGIFY(CONFIG_BOOT_DELAY)
14 : : #define BANNER_POSTFIX " (delayed boot " DELAY_STR "ms)"
15 : : #else
16 : : #define BANNER_POSTFIX ""
17 : : #endif /* defined(CONFIG_BOOT_DELAY) && (CONFIG_BOOT_DELAY > 0) */
18 : :
19 : : #ifndef BANNER_VERSION
20 : : #if defined(BUILD_VERSION) && !IS_EMPTY(BUILD_VERSION)
21 : : #define BANNER_VERSION STRINGIFY(BUILD_VERSION)
22 : : #else
23 : : #define BANNER_VERSION KERNEL_VERSION_STRING
24 : : #endif /* BUILD_VERSION */
25 : : #endif /* !BANNER_VERSION */
26 : :
27 : 1 : void boot_banner(void)
28 : : {
29 : : #if defined(CONFIG_BOOT_DELAY) && (CONFIG_BOOT_DELAY > 0)
30 : : #ifdef CONFIG_BOOT_BANNER
31 : : printk("***** delaying boot " DELAY_STR "ms (per build configuration) *****\n");
32 : : #endif /* CONFIG_BOOT_BANNER */
33 : : k_busy_wait(CONFIG_BOOT_DELAY * USEC_PER_MSEC);
34 : : #endif /* defined(CONFIG_BOOT_DELAY) && (CONFIG_BOOT_DELAY > 0) */
35 : :
36 : : #if defined(CONFIG_BOOT_CLEAR_SCREEN)
37 : : /* \x1b[ = escape sequence
38 : : * 3J = erase scrollback
39 : : * 2J = erase screen
40 : : * H = move cursor to top left
41 : : */
42 : : printk("\x1b[3J\x1b[2J\x1b[H");
43 : : #endif /* CONFIG_BOOT_CLEAR_SCREEN */
44 : :
45 : : #ifdef CONFIG_BOOT_BANNER
46 : : printk("*** " CONFIG_BOOT_BANNER_STRING " " BANNER_VERSION BANNER_POSTFIX " ***\n");
47 : : #endif /* CONFIG_BOOT_BANNER */
48 : 1 : }
|