Hi Team,
My customer is evaluating GPU performance on AM62x SK, they will run QNX screen test project, and QNX BSP/OS is downloaded from QNX website, but screen test project run failed as attachment show,
# screen -c /usr/lib/graphics/jacinto7/graphics.conf ERROR: Unhandled External Abort received on 0x80000000 from S-EL1 ERROR: exception reason=0 syndrome=0xbf000000 Unhandled Exception from EL0 x0 = 0x000000000005023c x1 = 0x0000004077a7d688 x2 = 0x00000022ee831000 x3 = 0x000000000000012a x4 = 0x0000000000000000 x5 = 0x0000000000050058 x6 = 0x0000000000050054 x7 = 0x0000000000050050 x8 = 0x000000000005004c x9 = 0x0000000000050048 x10 = 0x0000000000050044 x11 = 0x0000000000100000 x12 = 0x0000000000000000 x13 = 0x0000000000000040 x14 = 0x0000000000000001 x15 = 0x0000000000000000 x16 = 0x0000004077a1c978 x17 = 0x00000040779b0500 x18 = 0x0000003283e1caf7 x19 = 0x00000050357e4040 x20 = 0x0000000000000000 x21 = 0x00000050357e4b88 x22 = 0x0000004077a9c000 x23 = 0x0000000000000005 x24 = 0x0000000000000001 x25 = 0x0000000000000000 x26 = 0x00000000000002c8 x27 = 0x00000050357e4040 x28 = 0x00000000ffffffff x29 = 0x0000003283e1d850 x30 = 0x0000004077a76014 scr_el3 = 0x000000000000073d sctlr_el3 = 0x0000000030cd183f cptr_el3 = 0x0000000000000000 tcr_el3 = 0x0000000080803520 daif = 0x00000000000002c0 mair_el3 = 0x00000000004404ff spsr_el3 = 0x0000000060000000 elr_el3 = 0x0000004077a61df8 ttbr0_el3 = 0x000000009e7910c0 esr_el3 = 0x00000000bf000000 far_el3 = 0xee7f4cf7800c0a0c spsr_el1 = 0x0000000080000000 elr_el1 = 0x00000040779b0510 spsr_abt = 0x0000000000000000 spsr_und = 0x0000000000000000 spsr_irq = 0x0000000000000000 spsr_fiq = 0x0000000000000000 sctlr_el1 = 0x0000000034d5db1d actlr_el1 = 0x0000000000000000 cpacr_el1 = 0x0000000000000000 csselr_el1 = 0x0000000000000002 sp_el1 = 0xffffff80818df000 esr_el1 = 0x0000000056000051 ttbr0_el1 = 0x00130000f982e000 ttbr1_el1 = 0x000000008000b000 mair_el1 = 0xff000044eeaa0400 amair_el1 = 0x0000000000000000 tcr_el1 = 0x00000012b5983599 tpidr_el1 = 0x0000000000000000 tpidr_el0 = 0x0000000000000000 tpidrro_el0 = 0x0000003283e1def0 par_el1 = 0x0000000000000000 mpidr_el1 = 0x0000000080000000 afsr0_el1 = 0x0000000000000000 afsr1_el1 = 0x0000000000000000 contextidr_el1 = 0x0000000000000000 vbar_el1 = 0xffffff806008a000 cntp_ctl_el0 = 0x0000000000000000 cntp_cval_el0 = 0x0000000000000000 cntv_ctl_el0 = 0x0000000000000005 cntv_cval_el0 = 0x0000000b3ad2a6c8 cntkctl_el1 = 0x0000000000000002 sp_el0 = 0x000000009e78b440 isr_el1 = 0x0000000000000040 dacr32_el2 = 0x0000000000000000 ifsr32_el2 = 0x0000000000000000 cpuectlr_el1 = 0x0000000000000040 cpumerrsr_el1 = 0x0000000000040535 l2merrsr_el1 = 0x00000000100c5048 cpuactlr_el1 = 0x00001000090ca000
U-Boot SPL 2021.01-g2dd2e1d366 (Sep 27 2022 - 16:44:36 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') Trying to boot from MMC2 Loading Environment from MMC... *** Warning - No MMC card found, using default environment Starting ATF on ARM64 core... NOTICE: BL31: v2.7(release):v2.7.0-dirty NOTICE: BL31: Built : 16:38:45, Sep 27 2022 U-Boot SPL 2021.01-g2dd2e1d366 (Sep 27 2022 - 16:43:29 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') Trying to boot from MMC2 U-Boot 2021.01-g2dd2e1d366 (Sep 27 2022 - 16:43:29 +0000) SoC: AM62X SR1.0 GP Model: Texas Instruments AM625 SK EEPROM not available at 0x50, trying to read at 0x51 Board: AM62-SKEVM rev E3 DRAM: 2 GiB MMC: mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2 Loading Environment from MMC... OK In: serial@2800000 Out: serial@2800000 Err: serial@2800000 Net: eth0: ethernet@8000000port@1 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device SD/MMC found on device 1 Failed to load 'boot.scr' 1549 bytes read in 3 ms (503.9 KiB/s) Loaded env from uEnv.txt Importing environment from mmc1 ... Running uenvcmd ... Device: mmc@fa00000 Manufacturer ID: 3 OEM: 5344 Name: SL16G Bus Speed: 50000000 Mode: SD High Speed (50MHz) Rd Block Len: 512 SD version 3.0 High Capacity: Yes Capacity: 14.8 GiB Bus Width: 4-bit Erase Group Size: 512 Bytes 39991724 bytes read in 1701 ms (22.4 MiB/s) ## Starting application at 0x80080000 ... MMU: 16-bit ASID 40-bit PA TCR_EL1=b5183519 ARM GIC-500 r1p1, arch v3.0 detected gic_v3_lpi_add_entry for vectors 8192 -> 8447, Ok gic_v3_lpi_add_entry for vectors 8448 -> 65535, Ok No SPI intrinfo. Add default entry for 32 -> 287 vectors, Ok LPI config table #1 @ 000000008000f000, callout vaddr: ffffff8040291000 aarch64_cpuspeed: core speed 1250 cpu0: MPIDR=80000000 cpu0: MIDR=410fd034 Cortex-A53 r0p4 cpu0: CWG=4 ERG=4 Dminline=4 Iminline=4 VIPT cpu0: CLIDR=a200023 LoUU=1 LoC=2 LoUIS=1 cpu0: L1 Icache 32K linesz=64 set/way=256/2 cpu0: L1 Dcache 32K linesz=64 set/way=128/4 cpu0: L2 Unified 512K linesz=64 set/way=512/16 Enabling ITS 0 ITS queue at 0000000080020000, num slots: 256 Issue MAPC/SYNC/INVALL commands for ICID 0 update CWRITER to 0x00000060 Waiting for all commands to be processed ... Done in 1 tries Enable LPIs in GICR_CTLR @ 0000000001880000 for CPU0 Display set to A72 DSS init_usb_host: USB0 SYSFW ABI: 3.1 (firmware rev 8 '8.4.7--v08.04.07 (Jolly Jellyfi' init_usb_host: USB1 Loading IFS...decompressing...done aarch64_cpuspeed: core speed 1250 cpu1: MPIDR=80000001 cpu1: MIDR=410fd034 Cortex-A53 r0p4 cpu1: CWG=4 ERG=4 Dminline=4 Iminline=4 VIPT cpu1: CLIDR=a200023 LoUU=1 LoC=2 LoUIS=1 cpu1: L1 Icache 32K linesz=64 set/way=256/2 cpu1: L1 Dcache 32K linesz=64 set/way=128/4 cpu1: L2 Unified 512K linesz=64 set/way=512/16 ITS 0 already Enabled ITS queue at 0000000080020000, num slots: 256 Issue MAPC/SYNC/INVALL commands for ICID 1 update CWRITER to 0x000000c0 Waiting for all commands to be processed ... Done in 1 tries Enable LPIs in GICR_CTLR @ 00000000018a0000 for CPU1 aarch64_cpuspeed: core speed 1250 cpu2: MPIDR=80000002 cpu2: MIDR=410fd034 Cortex-A53 r0p4 cpu2: CWG=4 ERG=4 Dminline=4 Iminline=4 VIPT cpu2: CLIDR=a200023 LoUU=1 LoC=2 LoUIS=1 cpu2: L1 Icache 32K linesz=64 set/way=256/2 cpu2: L1 Dcache 32K linesz=64 set/way=128/4 cpu2: L2 Unified 512K linesz=64 set/way=512/16 ITS 0 already Enabled ITS queue at 0000000080020000, num slots: 256 Issue MAPC/SYNC/INVALL commands for ICID 2 update CWRITER to 0x00000120 Waiting for all commands to be processed ... Done in 1 tries Enable LPIs in GICR_CTLR @ 00000000018c0000 for CPU2 aarch64_cpuspeed: core speed 1250 cpu3: MPIDR=80000003 cpu3: MIDR=410fd034 Cortex-A53 r0p4 cpu3: CWG=4 ERG=4 Dminline=4 Iminline=4 VIPT cpu3: CLIDR=a200023 LoUU=1 LoC=2 LoUIS=1 cpu3: L1 Icache 32K linesz=64 set/way=256/2 cpu3: L1 Dcache 32K linesz=64 set/way=128/4 cpu3: L2 Unified 512K linesz=64 set/way=512/16 ITS 0 already Enabled ITS queue at 0000000080020000, num slots: 256 Issue MAPC/SYNC/INVALL commands for ICID 3 update CWRITER to 0x00000180 Waiting for all commands to be processed ... Done in 1 tries Enable LPIs in GICR_CTLR @ 00000000018e0000 for CPU3 System page at phys:0000000080023000 user:ffffff80402b5000 kern:ffffff80402b2000 Starting next program at vffffff8060089280 All ClockCycles offsets within tolerance Welcome to QNX Neutrino 7.1.0 on TI_AM62x_SK_EVM_Board 2022-11-21 15:30! Starting I2C driver ... start serial driver Starting MMC/SD memory card driver... eMMC Starting MMC/SD memory card driver... SD Starting XHCI driver on USB3SS0 and USB3SS1 Starting networking ... Starting shell ... # Path=0 - am65x target=0 lun=0 Direct-Access(0) - SDMMC: S0J56X Rev: 1.0
After checked with QNX support team, we got below feedback:
--------
For the EL0 issue
ERROR: Unhandled External Abort received on 0x80000000 from S-EL1
ERROR: exception reason=0 syndrome=0xbf000000
Unhandled Exception from EL0
There are two possibilities to this issue:
1. ATF issue
You will need an updated firmware to allow exceptions to be passed through to the OS. Please contact your TI support person on this.
2. GPU init issue
If the gpu is not initialized in the BSP startup, then a SIGBUS will be raised. Just check the BSP startup code.
------
As above question is related to ATF and GPU init, it is TI component part, so I ticket the question here:
Does tisdk-default-image-am62xx-evm.wic.xz tispl.bin &u-boot.img enable GPU by default or need some configuration?
Or any other debug suggestion?
Thanks
-Thomas