Why FIQ_DEBUGGER is enabled by default in Hikey960


Can somebody please explain why the following FIQ_DEBUGGER features are enabled by default in hikey960_defconfig? And where is it used?


If we disable ‘CONFIG_FIQ_DEBUGGER_CONSOLE’, serial console Rx is not working.
Our understanding is serial console uses polling mechanism, but in hikey the FIQ is used for serial console?


Firstly FIQ debugger doesn’t use FIQ anymore, just a normal interrupt. It is basically just a debug console that doesn’t need any userspace running to gather useful information to help diagnose problems with the board.

In addition to this I believe it also provides a tty wrapper on top of the calls it uses to TX/RX serial data (ttyFIQ0). For obvious reasons if you disable this console then ttyFIQ0 disappears. If you disable to entire of FIQ debugger than the UART should probe correctly using the PL011 driver (e.g. you’ll get an extra ttyAMAx).