This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: AM625x GPU initlization questions

Part Number: AM625

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