Torno su questo problema quasi un anno dopo, ora sono riuscito a trovare una soluzione adeguata.
La scheda su cui stavo lavorando aveva un u-boot ragionevolmente nuovo nel suo BSP . Per disabilitare la console seriale ho dovuto fare quanto segue:
-
Aggiungi le seguenti definizioni all'intestazione di configurazione della scheda (che si trova in include/configs/board.h ):
#define CONFIG_DISABLE_CONSOLE #define CONFIG_SILENT_CONSOLE #define CONFIG_SYS_DEVICE_NULLDEV
-
Controlla se la tua scheda ha early_init_f abilitato nello stesso file:
#define CONFIG_BOARD_EARLY_INIT_F 1
-
Trova il file arch (qualcosa come arch/x86/cpu/architecture/architecture.c ) e aggiungi questa chiamata al suo early_init_f funzione. In realtà modifica la variabile dati globale di board per avere questi flag:
gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
-
La mia scheda non ne aveva uno, quindi ho dovuto aggiungere l'intera funzione
int board_early_init_f(void) { gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE); return 0; }
Questo è tutto. Spero che questo aiuti qualcun altro!
Non c'è modo di farlo, senza modificare la sorgente (configurazione) di U-Boot.
Per disabilitare la console seriale in U-Boot, devi riconfigurare U-Boot. La documentazione dal ramo principale di U-Boot:Readme.silent
In base a quello, devi impostare:
CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV
CONFIG_SILENT_U_BOOT_ONLY
è necessario anche se vuoi che solo U-Boot sia silenzioso.
Potrebbe anche essere necessario testare con CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC
e possibilmente aggiungendo silent 1
a CONFIG_EXTRA_ENV_SETTINGS
.
==AGGIORNA ==
Consulta le seguenti opzioni per una possibile soluzione alternativa:
CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR
Queste opzioni ti daranno almeno un modo per richiedere una stringa magica per fermare l'avvio. Potrebbe bastare per aiutarti. Vedere README.autoboot
Impostazione della variabile d'ambiente u-boot bootdelay
a -2
disabilita la capacità dell'UART di interrompere il processo di avvio su U-Boot 2017.01
pubblicazione. Sembra che -1
è un caso speciale.
Vedi common/autoboot.c
dall'albero dei sorgenti di U-Boot per i dettagli.