Solución:
Vuelvo a este problema casi un año después, ahora me las arreglé para encontrar una solución adecuada.
El tablero en el que estaba trabajando tenía un aspecto razonablemente nuevo. u-boot en su BSP. Para deshabilitar la consola serial tuve que hacer lo siguiente:
-
Agregue las siguientes definiciones al encabezado de configuración de la placa (ubicado en incluir / configs / board.h):
#define CONFIG_DISABLE_CONSOLE #define CONFIG_SILENT_CONSOLE #define CONFIG_SYS_DEVICE_NULLDEV
-
Comprueba si tu placa tiene early_init_f habilitado en el mismo archivo:
#define CONFIG_BOARD_EARLY_INIT_F 1
-
Encuentra el archivo arch (algo como arch / x86 / cpu / architecture / architecture.c) y agregue esta llamada a su early_init_f función. En realidad, modifica la variable de datos global de la placa para tener estas banderas:
gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
-
Mi tablero no tenía uno, así que tuve que agregar toda la función
int board_early_init_f(void) { gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE); return 0; }
Eso es todo. ¡Espero que esto ayude a alguien más!
No hay forma de hacer esto sin modificar la fuente (configuración) de U-Boot.
Para deshabilitar la consola serie en U-Boot, debe volver a configurar U-Boot. La documentación de la rama maestra de U-Boot: Readme.silent
De acuerdo con ese, necesitas configurar:
CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV
CONFIG_SILENT_U_BOOT_ONLY
también es necesario si desea que solo U-Boot sea silencioso.
Es posible que también deba realizar la prueba con CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC
y posiblemente agregando silent 1
para CONFIG_EXTRA_ENV_SETTINGS
.
== ACTUALIZAR ==
Consulte las siguientes opciones para obtener una posible solución:
CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR
Estas opciones al menos le darán una forma de requerir una cuerda mágica para detener el arranque. Podría ser suficiente para ayudarte. Ver README.autoboot
Configuración de la variable de entorno u-boot bootdelay
para -2
desactiva la capacidad de la UART para interrumpir el proceso de arranque en U-Boot 2017.01
liberación. Parece que -1
es un caso especial.
Ver common/autoboot.c
en el árbol de fuentes de U-Boot para obtener más detalles.