Estoy volviendo a este problema casi un año después, ahora he logrado encontrar una solución adecuada.
La placa en la que estaba trabajando tenía un u-boot razonablemente nuevo en su BSP . Para deshabilitar la consola serial tuve que hacer lo siguiente:
-
Agregue las siguientes definiciones al encabezado de configuración del tablero (ubicado en include/configs/board.h ):
#define CONFIG_DISABLE_CONSOLE #define CONFIG_SILENT_CONSOLE #define CONFIG_SYS_DEVICE_NULLDEV
-
Compruebe si su tablero tiene early_init_f habilitado en el mismo archivo:
#define CONFIG_BOARD_EARLY_INIT_F 1
-
Encuentra el archivo arch (Algo así 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 globales 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 la función completa
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 manera 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 eso, debe configurar:
CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV
CONFIG_SILENT_U_BOOT_ONLY
también es necesario si solo desea que U-Boot esté en silencio.
Es posible que también deba probar con CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC
y posiblemente agregando silent 1
al CONFIG_EXTRA_ENV_SETTINGS
.
==ACTUALIZAR ==
Consulte las siguientes opciones para una posible solución alternativa:
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 cadena 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
a -2
desactiva la capacidad de UART para interrumpir el proceso de arranque en U-Boot 2017.01
liberar. Parece que -1
es un caso especial.
Ver common/autoboot.c
de su árbol de fuentes de U-Boot para más detalles.