Hello,
In preparation for custom hardware, I want to switch the debug console from UART2 to UART4 on the iMX8M Plus EVK in Android 11 v2.6.0. I was successful changing this with Yocto linux, however when I ported the changes over to Android, the devkit only boots to "Starting Kernel..." and then resets. As seen below.
U-Boot SPL 2021.04-dirty (May 05 2022 - 19:00:43 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
WDT: Not found!
Trying to boot from MMC2
NOTICE: BL31: v2.4(release):automotive-11.0.0_2.5.0-0-g61a1ad5e5-dirty
NOTICE: BL31: Built : 19:01:31, May 5 2022
U-Boot 2021.04-dirty (May 05 2022 - 19:00:43 +0000)
CPU: i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 34C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 EVK board
DRAM: 6 GiB
TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x50]
SNK.Power3.0 on CC1
PDO 0: type 0, 5000 mV, 3000 mA [E]
PDO 1: type 0, 9000 mV, 3000 mA []
PDO 2: type 0, 15000 mV, 3000 mA []
PDO 3: type 0, 20000 mV, 2250 mA []
Requesting PDO 3: 20000 mV, 2250 mA
Source accept request
PD source ready!
tcpc_pd_receive_message: Polling ALERT register, TCPC_ALERT_RX_STATUS bit failed, ret = -62
Power supply on USB2
TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C1 0x50]
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment
[*]-Video Link 0adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
fail to get display timings
probe video device failed, ret -19
[0] lcd-controller@32e80000, video
[1] mipi_dsi@32e60000, video_bridge
[2] adv7535@3d, panel
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
fail to get display timings
probe video device failed, ret -19
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF 61a1ad5
flash target is MMC:2
Net: eth0: ethernet@30be0000, eth1: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
In boota get fastboot lock status error. Set lock status
Writing A/B metadata to disk.
verify OK, boot 'boot_a'
Kernel load addr 0x40480000 size 28933 KiB
kernel @ 40480000 (30670848)
ramdisk @ 44680000 (29789589)
fdt @ 42340400 (66082)
Moving Image from 0x40480000 to 0x40600000, end=42340000
## Flattened Device Tree blob at 42340400
Booting using the fdt blob at 0x42340400
Using Device Tree in place at 0000000042340400, end 0000000042353621
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
fail to get display timings
probe video device failed, ret -19
Starting kernel ...
I have attached all the changes I have made in form of git diff patches.
In Yocto I also needed to modify optee-os with the UART config, however I did not find anything similar in the Android source tree. The i.MX_Android_Security_User's_Guide.pdf does explain this process in section 3.2.5, but I cannot find the source for the Trusty os anywhere (I checked codeaurora as well).
I did find vendor/nxp/fsl-proprietary/uboot-firmware/imx8m/tee-imx8mp.bin that, I believe, is the result of building the trusty os.
Is there a way to get Android to boot using UART4? What am I missing?
Thank you,
Chris