I am not using the mezzanine UART (ie: http://www.96boards.org/products/mezzanine/uarts/).
I am guessing my UART3 pins are connected properly as I can see output later on.
I forced all the firmware (ARM Trusted Firmware, UEFI) to be on UART0 (debug UART) and they print properly.
When ARM Trusted Firmware display on UART3, I can see its output when there are some PSCI SMC calls when I switched off Linux kernel. That means when the kernel reconfigures the UART, ARM Trusted Firmware can print.
I am now suspecting the pin multiplexing… UART3 is shared with GPIO5. I am suspecting only Linux kernel setup the multiplexer to use UART3 instead of GPIO5.
In dmesg:
[ 0.773469] uart-pl011 f8015000.uart: ttyAMA0 at MMIO 0xf8015000 (irq = 68, base_baud = 0) is a PL011 rev2
[ 0.773970] uart-pl011 f7111000.uart: could not find pctldev for node /smb/pinmux@f7010000/uart1_pmx_func, deferring probe
[ 0.773985] amba f7111000.uart: Driver uart-pl011 requests probe deferral
[ 0.774175] uart-pl011 f7112000.uart: could not find pctldev for node /smb/pinmux@f7010000/uart2_pmx_func, deferring probe
[ 0.774184] amba f7112000.uart: Driver uart-pl011 requests probe deferral
[ 0.774367] uart-pl011 f7113000.uart: could not find pctldev for node /smb/pinmux@f7010000/uart3_pmx_func, deferring probe
[ 0.774377] amba f7113000.uart: Driver uart-pl011 requests probe deferral
[ 0.774581] uart-pl011 f7114000.uart: could not find pctldev for node /smb/pinmux@f7010000/uart4_pmx_func, deferring probe
[ 0.774591] amba f7114000.uart: Driver uart-pl011 requests probe deferral
(...)
[ 2.370867] pinctrl-single f7010000.pinmux: 159 pins at pa ffffff80000bc000 size 636
[ 2.371287] pinctrl-single f7010800.pinmux: 163 pins at pa ffffff80000be800 size 652
[ 2.371458] pinctrl-single f8001800.pinmux: 30 pins at pa ffffff80000c0800 size 120
(...)
[ 2.183025] i2c_designware f7100000.i2c: could not find pctldev for node /smb/pinmux@f7010000/i2c0_pmx_func, deferring probe
[ 2.183036] platform f7100000.i2c: Driver i2c_designware requests probe deferral
[ 2.183053] i2c_designware f7101000.i2c: could not find pctldev for node /smb/pinmux@f7010000/i2c1_pmx_func, deferring probe
[ 2.183062] platform f7101000.i2c: Driver i2c_designware requests probe deferral
[ 2.183079] i2c_designware f7102000.i2c: could not find pctldev for node /smb/pinmux@f7010000/i2c2_pmx_func, deferring probe
[ 2.183089] platform f7102000.i2c: Driver i2c_designware requests probe deferral
(...)
[ 3.298245] i2c /dev entries driver
[ 3.319053] hisi_thermal f7030700.tsensor: THERMAL ALARM: T > 50
Unfortunatly the pin multiplexing documentation has been stripped from the public data sheet: https://github.com/96boards/documentation/raw/master/hikey/Hi6220V100_Multi-Mode_Application_Processor_Function_Description.pdf
I am using ARM Trusted Firmware https://github.com/96boards/arm-trusted-firmware.git branch hikey
. The only code about pin multiplexing is related to SD card support.
I am now quite convince it is my issue (at least at the moment…).
I am using the ‘old’ hikey board. The one release at Linaro Connect last year.