diff options
-rw-r--r-- | cmd/console.c | 11 | ||||
-rw-r--r-- | doc/board/ti/am62x_sk.rst | 25 | ||||
-rw-r--r-- | doc/build/documentation.rst | 3 | ||||
-rw-r--r-- | doc/develop/docstyle.rst | 29 | ||||
-rw-r--r-- | doc/develop/index.rst | 1 | ||||
-rw-r--r-- | doc/usage/cmd/coninfo.rst | 55 | ||||
-rw-r--r-- | doc/usage/index.rst | 1 | ||||
-rw-r--r-- | include/efi_loader.h | 3 | ||||
-rw-r--r-- | lib/efi_loader/efi_boottime.c | 4 | ||||
-rw-r--r-- | lib/efi_loader/efi_memory.c | 2 | ||||
-rw-r--r-- | lib/efi_loader/efi_runtime.c | 2 | ||||
-rw-r--r-- | lib/efi_loader/helloworld.c | 13 | ||||
-rw-r--r-- | lib/efi_loader/initrddump.c | 5 | ||||
-rw-r--r-- | lib/efi_selftest/efi_selftest_exitbootservices.c | 2 | ||||
-rw-r--r-- | lib/efi_selftest/efi_selftest_load_file.c | 20 |
15 files changed, 149 insertions, 27 deletions
diff --git a/cmd/console.c b/cmd/console.c index 620a961..58c2cf1 100644 --- a/cmd/console.c +++ b/cmd/console.c @@ -9,6 +9,7 @@ */ #include <common.h> #include <command.h> +#include <iomux.h> #include <stdio_dev.h> extern void _do_coninfo (void); @@ -33,9 +34,15 @@ static int do_coninfo(struct cmd_tbl *cmd, int flag, int argc, (dev->flags & DEV_FLAGS_OUTPUT) ? "O" : ""); for (l = 0; l < MAX_FILES; l++) { - if (stdio_devices[l] == dev) { - printf("| |-- %s\n", stdio_names[l]); + if (CONFIG_IS_ENABLED(CONSOLE_MUX)) { + if (iomux_match_device(console_devices[l], + cd_count[l], dev) >= 0) + printf("| |-- %s\n", stdio_names[l]); + } else { + if (stdio_devices[l] == dev) + printf("| |-- %s\n", stdio_names[l]); } + } } return 0; diff --git a/doc/board/ti/am62x_sk.rst b/doc/board/ti/am62x_sk.rst index b1b7d99..27d7b52 100644 --- a/doc/board/ti/am62x_sk.rst +++ b/doc/board/ti/am62x_sk.rst @@ -229,3 +229,28 @@ Image formats: | | SPL DTB 1...N | | | +-------------------+ | +-----------------------+ + +Switch Setting for Boot Mode +---------------------------- + +Boot Mode pins provide means to select the boot mode and options before the +device is powered up. After every POR, they are the main source to populate +the Boot Parameter Tables. + +The following table shows some common boot modes used on AM62 platform. More +details can be found in the Technical Reference Manual: +https://www.ti.com/lit/pdf/spruiv7 under the `Boot Mode Pins` section. + +*Boot Modes* + +============ ============= ============= +Switch Label SW2: 12345678 SW3: 12345678 +============ ============= ============= +SD 01000000 11000010 +OSPI 00000000 11001110 +EMMC 00000000 11010010 +UART 00000000 11011100 +USB DFU 00000000 11001010 +============ ============= ============= + +For SW2 and SW1, the switch state in the "ON" position = 1. diff --git a/doc/build/documentation.rst b/doc/build/documentation.rst index 896264d..011cd34 100644 --- a/doc/build/documentation.rst +++ b/doc/build/documentation.rst @@ -26,6 +26,9 @@ The *htmldocs* target is used to build the HTML documentation. It uses the # Display the documentation in a graphical web browser x-www-browser doc/output/index.html +The HTML documentation is published at https://u-boot.readthedocs.io. The build +process for that site is controlled by the file *.readthedocs.yml*. + Infodoc documentation --------------------- diff --git a/doc/develop/docstyle.rst b/doc/develop/docstyle.rst new file mode 100644 index 0000000..f9ba83a --- /dev/null +++ b/doc/develop/docstyle.rst @@ -0,0 +1,29 @@ +.. SPDX-License-Identifier: GPL-2.0+: + +Documentation Style +=================== + +Documentation is crucial for the U-Boot project. It has to encompass the needs +of different reader groups from first time users to developers and maintainers. +This requires different types of documentation like tutorials, how-to-guides, +explanatory texts, and reference. + +We want to be able to generate documentation in different target formats. We +therefore use `Sphinx <https://www.sphinx-doc.org>`_ for the generation of +documents from reStructured text. + +We apply the following rules: + +* Documentation files are located in *doc/* or its sub-directories. +* Each documentation file is added to an index page to allow navigation + to the document. +* For documentation we use reStructured text conforming to the requirements + of `Sphinx <https://www.sphinx-doc.org>`_. +* For documentation within code we follow the Linux kernel guide + `Writing kernel-doc comments <https://docs.kernel.org/doc-guide/kernel-doc.html>`_. +* We try to stick to 80 columns per line in documents. +* For tables we prefer simple tables over grid tables. We avoid list tables + as they make the reStructured text documents hard to read. +* Before submitting documentation patches we build the HTML documentation and + fix all warnings. The build process is described in + :doc:`/build/documentation`. diff --git a/doc/develop/index.rst b/doc/develop/index.rst index a52ad63..ddbf8da 100644 --- a/doc/develop/index.rst +++ b/doc/develop/index.rst @@ -11,6 +11,7 @@ General codingstyle designprinciples + docstyle patman process release_cycle diff --git a/doc/usage/cmd/coninfo.rst b/doc/usage/cmd/coninfo.rst new file mode 100644 index 0000000..f913148 --- /dev/null +++ b/doc/usage/cmd/coninfo.rst @@ -0,0 +1,55 @@ +.. SPDX-License-Identifier: GPL-2.0+: + +coninfo command +=============== + +Synopsis +-------- + +:: + + coninfo + +Description +----------- + +The coninfo command provides a list of available console input and output +devices and their assignment as stdin, stdout, stderr console devices. + +If CONFIG_SYS_CONSOLE_IS_IN_ENV=y, the assignment is controlled by the +environment variables stdin, stdout, stderr which contain a comma separated +list of device names. + +Example +-------- + +.. code-block:: console + + => coninfo + List of available devices + |-- pl011@9000000 (IO) + | |-- stdin + | |-- stdout + | |-- stderr + |-- serial (IO) + |-- usbkbd (I) + => setenv stdin pl011@9000000,usbkbd + => coninfo + List of available devices + |-- pl011@9000000 (IO) + | |-- stdin + | |-- stdout + | |-- stderr + |-- serial (IO) + |-- usbkbd (I) + | |-- stdin + +Configuration +------------- + +The coninfo command is only available if CONFIG_CMD_CONSOLE=y. + +Return value +------------ + +The return value $? is always 0 (true). diff --git a/doc/usage/index.rst b/doc/usage/index.rst index 729541b..cdf7109 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -39,6 +39,7 @@ Shell commands cmd/cbsysinfo cmd/cls cmd/cmp + cmd/coninfo cmd/conitrace cmd/cyclic cmd/dm diff --git a/include/efi_loader.h b/include/efi_loader.h index 4b89b98..b395eef9 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -513,9 +513,6 @@ struct efi_register_notify_event { struct list_head handles; }; -/* List of all events registered by RegisterProtocolNotify() */ -extern struct list_head efi_register_notify_events; - /* called at pre-initialization */ int efi_init_early(void); /* Initialize efi execution environment */ diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index caaab68..d5065f2 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -35,7 +35,7 @@ LIST_HEAD(efi_obj_list); __efi_runtime_data LIST_HEAD(efi_events); /* List of queued events */ -LIST_HEAD(efi_event_queue); +static LIST_HEAD(efi_event_queue); /* Flag to disable timer activity in ExitBootServices() */ static bool timers_enabled = true; @@ -44,7 +44,7 @@ static bool timers_enabled = true; bool efi_st_keep_devices; /* List of all events registered by RegisterProtocolNotify() */ -LIST_HEAD(efi_register_notify_events); +static LIST_HEAD(efi_register_notify_events); /* Handle of the currently executing image */ static efi_handle_t current_image; diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c index 8f82496..e2ca78d 100644 --- a/lib/efi_loader/efi_memory.c +++ b/lib/efi_loader/efi_memory.c @@ -36,7 +36,7 @@ struct efi_mem_list { #define EFI_CARVE_OVERLAPS_NONRAM -3 /* This list contains all memory map items */ -LIST_HEAD(efi_mem); +static LIST_HEAD(efi_mem); #ifdef CONFIG_EFI_LOADER_BOUNCE_BUFFER void *efi_bounce_buffer; diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index cee96bf..bf54d6a 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -32,7 +32,7 @@ struct efi_runtime_mmio_list { }; /* This list contains all runtime available mmio regions */ -LIST_HEAD(efi_runtime_mmio); +static LIST_HEAD(efi_runtime_mmio); static efi_status_t __efi_runtime EFIAPI efi_unimplemented(void); diff --git a/lib/efi_loader/helloworld.c b/lib/efi_loader/helloworld.c index 49fa8cc..6405f58 100644 --- a/lib/efi_loader/helloworld.c +++ b/lib/efi_loader/helloworld.c @@ -197,8 +197,10 @@ efi_status_t EFIAPI efi_main(efi_handle_t handle, print_config_tables(); /* Get the loaded image protocol */ - ret = boottime->handle_protocol(handle, &loaded_image_guid, - (void **)&loaded_image); + ret = boottime->open_protocol(handle, &loaded_image_guid, + (void **)&loaded_image, NULL, NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL); + if (ret != EFI_SUCCESS) { con_out->output_string (con_out, u"Cannot open loaded image protocol\r\n"); @@ -219,9 +221,10 @@ efi_status_t EFIAPI efi_main(efi_handle_t handle, (con_out, u"Missing device handle\r\n"); goto out; } - ret = boottime->handle_protocol(loaded_image->device_handle, - &device_path_guid, - (void **)&device_path); + ret = boottime->open_protocol(loaded_image->device_handle, + &device_path_guid, + (void **)&device_path, NULL, NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL); if (ret != EFI_SUCCESS) { con_out->output_string (con_out, u"Missing device path for device handle\r\n"); diff --git a/lib/efi_loader/initrddump.c b/lib/efi_loader/initrddump.c index 971a3b6..5b470f4 100644 --- a/lib/efi_loader/initrddump.c +++ b/lib/efi_loader/initrddump.c @@ -291,8 +291,9 @@ static efi_status_t get_initrd(void **initrd, efi_uintn_t *initrd_size) error(u"Load File2 protocol not found\r\n"); return ret; } - ret = bs->handle_protocol(handle, &load_file2_guid, - (void **)&load_file2_prot); + ret = bs->open_protocol(handle, &load_file2_guid, + (void **)&load_file2_prot, NULL, NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL); ret = load_file2_prot->load_file(load_file2_prot, dp, false, initrd_size, NULL); if (ret != EFI_BUFFER_TOO_SMALL) { diff --git a/lib/efi_selftest/efi_selftest_exitbootservices.c b/lib/efi_selftest/efi_selftest_exitbootservices.c index 11b43fd..b090ce7 100644 --- a/lib/efi_selftest/efi_selftest_exitbootservices.c +++ b/lib/efi_selftest/efi_selftest_exitbootservices.c @@ -27,7 +27,7 @@ struct notification_context { static struct efi_boot_services *boottime; static struct efi_event *efi_st_event_notify; -struct notification_record record; +static struct notification_record record; struct notification_context context_before = { .record = &record, diff --git a/lib/efi_selftest/efi_selftest_load_file.c b/lib/efi_selftest/efi_selftest_load_file.c index 8784a76..14df761 100644 --- a/lib/efi_selftest/efi_selftest_load_file.c +++ b/lib/efi_selftest/efi_selftest_load_file.c @@ -206,11 +206,11 @@ static efi_status_t decompress(u8 **image) * @buffer_size: (required) buffer size * @buffer: buffer to which the file is to be loaded */ -efi_status_t EFIAPI load_file(struct efi_load_file_protocol *this, - struct efi_device_path *file_path, - bool boot_policy, - efi_uintn_t *buffer_size, - void *buffer) +static efi_status_t EFIAPI load_file(struct efi_load_file_protocol *this, + struct efi_device_path *file_path, + bool boot_policy, + efi_uintn_t *buffer_size, + void *buffer) { ++load_file_call_count; if (memcmp(file_path, dp_lf_file_remainder, @@ -243,11 +243,11 @@ efi_status_t EFIAPI load_file(struct efi_load_file_protocol *this, * @buffer_size: (required) buffer size * @buffer: buffer to which the file is to be loaded */ -efi_status_t EFIAPI load_file2(struct efi_load_file_protocol *this, - struct efi_device_path *file_path, - bool boot_policy, - efi_uintn_t *buffer_size, - void *buffer) +static efi_status_t EFIAPI load_file2(struct efi_load_file_protocol *this, + struct efi_device_path *file_path, + bool boot_policy, + efi_uintn_t *buffer_size, + void *buffer) { ++load_file2_call_count; if (memcmp(file_path, dp_lf2_file_remainder, |