Saya kembali ke masalah ini hampir setahun kemudian, sekarang saya berhasil menemukan solusi yang tepat.
Papan tempat saya bekerja memiliki u-boot yang cukup baru dalam BSP-nya . Untuk menonaktifkan konsol serial, saya harus melakukan hal berikut:
-
Tambahkan definisi berikut ke header konfigurasi papan (terletak di include/configs/board.h ):
#define CONFIG_DISABLE_CONSOLE #define CONFIG_SILENT_CONSOLE #define CONFIG_SYS_DEVICE_NULLDEV
-
Periksa apakah papan Anda memiliki early_init_f diaktifkan di file yang sama:
#define CONFIG_BOARD_EARLY_INIT_F 1
-
Temukan file arch(Sesuatu seperti arch/x86/cpu/architecture/architecture.c ) dan tambahkan panggilan ini ke early_init_f fungsi. Itu sebenarnya memodifikasi variabel data global papan untuk memiliki tanda-tanda ini:
gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
-
Papan saya tidak memilikinya, jadi saya harus menambahkan seluruh fungsi
int board_early_init_f(void) { gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE); return 0; }
Itu dia. Semoga ini bisa membantu orang lain!
Tidak ada cara untuk melakukannya, tanpa mengubah sumber (konfigurasi) U-Boot.
Untuk menonaktifkan konsol serial di U-Boot, Anda perlu mengkonfigurasi ulang U-Boot. Dokumentasi dari cabang master U-Boot:Readme.silent
Menurut yang itu, Anda perlu menyetel:
CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV
CONFIG_SILENT_U_BOOT_ONLY
juga diperlukan jika Anda ingin hanya U-Boot yang diam.
Anda mungkin juga perlu menguji dengan CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC
dan mungkin menambahkan silent 1
ke CONFIG_EXTRA_ENV_SETTINGS
.
==UPDATE ==
Lihat opsi berikut untuk solusi yang memungkinkan:
CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR
Opsi ini setidaknya akan memberi Anda cara meminta string ajaib untuk menghentikan boot. Mungkin cukup untuk membantu Anda. Lihat README.autoboot
Mengatur variabel lingkungan u-boot bootdelay
ke -2
menonaktifkan kemampuan UART untuk menghentikan proses boot pada U-Boot 2017.01
melepaskan. Tampaknya -1
adalah kasus khusus.
Lihat common/autoboot.c
dari pohon sumber U-Boot Anda untuk mengetahui detailnya.