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.

PROCESSOR-SDK-AM62X: Linux kernel boot failed due to Unhandled Exception in EL3

Part Number: PROCESSOR-SDK-AM62X
Other Parts Discussed in Thread: SK-AM62, AM625, AM623

Hello,

We built a custom board based on am6234 processor, without GPU and with 2Go of RAM.

I build the SDK 08.04.01.04 and prepare an environment for network boot.

A TFTP/BOOTP server provide the bootloader (u-boot) to the board.

The kernel and device tree are download via tftp then the filesystem is provided by NFS to the kernel via the bootargs command line.

The components not available on our board has been disable in the device tree.

We test the kernel on both board am62x evaluation board (SK-AM62 rev E2) and our custom design.

The kernel boots successfully on AM62x EVM but not on our custom board.

Could you help me to fix the error Unhandled Exception in EL3 that seems to freeze the boot process ?

Let me know if you need more information on the configuration.

Regards,

Alexis.

Here is the boot log :

=> setenv serverip 10.0.0.1
=> setenv ipaddr 10.0.0.5
=> setenv bootargs console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/nfs rootfstype=nfs ip=dhcp nfsroot=10.0.0.28:/netboot/nfs,nfsvers=3,tcp nomodeset
=> setenv default_device_tree k3-am625-sk.dtb
=> setenv fdtfile k3-am625-sk.dtb
=> setenv name_fdt k3-am625-sk.dtb
=> name_kern=Image
=> tftp ${fdtaddr} ${serverip}:${name_fdt}
link up on port 1, speed 1000, full duplex
Using ethernet@8000000port@1 device
TFTP from server 10.0.0.1; our IP address is 10.0.0.5
Filename 'k3-am625-sk.dtb'.
Load address: 0x88000000
Loading: ####
         2.1 MiB/s
done
Bytes transferred = 49676 (c20c hex)
=> tftp ${kernel_addr_r} ${serverip}:${name_kern}
link up on port 1, speed 1000, full duplex
Using ethernet@8000000port@1 device
TFTP from server 10.0.0.1; our IP address is 10.0.0.5
Filename 'Image'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##########################T #######################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ############################
         1.5 MiB/s
done
Bytes transferred = 18536960 (11ada00 hex)
=> booti ${loadaddr} ${rd_spec} ${fdtaddr}
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 000000008fff0000, end 000000008ffff20b ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.140-g5e63ae91b2 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (ar3
[    0.000000] Machine model: Texas Instruments AM625 SK
[    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
[    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 13 MiB
[    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009d900000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9d900000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 13 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@9da00000, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
[    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
[    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
[    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
[    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] cma: Reserved 512 MiB at 0x00000000dd000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 22 pages/cpu s50008 r8192 d31912 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/nfs rootfstype=nfs ip=dhcp nfsroot=10.0.0.28:/media/t
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1456508K/2097152K available (10880K kernel code, 1142K rwdata, 4196K rodata, 1792K init, 430K bss, 116356K reserved, 524288K cma-reser)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000080030000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000004] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008516] Console: colour dummy device 80x25
[    0.013107] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023789] pid_max: default: 32768 minimum: 301
[    0.028596] LSM: Security Framework initializing
[    0.033382] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.040962] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.050723] rcu: Hierarchical SRCU implementation.
[    0.055903] Platform MSI: msi-controller@1820000 domain created
[    0.062207] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.071454] EFI services will not be available.
[    0.076370] smp: Bringing up secondary CPUs ...
[    0.081650] Detected VIPT I-cache on CPU1
[    0.081688] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
[    0.081704] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
[    0.081769] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.082443] Detected VIPT I-cache on CPU2
[    0.082467] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
[    0.082481] GICv3: CPU2: using allocated LPI pending table @0x0000000080060000
[    0.082516] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.083135] Detected VIPT I-cache on CPU3
[    0.083156] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
[    0.083167] GICv3: CPU3: using allocated LPI pending table @0x0000000080070000
[    0.083201] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.083271] smp: Brought up 1 node, 4 CPUs
[    0.163007] SMP: Total of 4 processors activated.
[    0.167820] CPU features: detected: 32-bit EL0 Support
[    0.173091] CPU features: detected: CRC32 instructions
[    0.186017] CPU: All CPU(s) started at EL2
[    0.190225] alternatives: patching kernel code
[    0.195948] devtmpfs: initialized
[    0.205599] KASLR disabled due to lack of seed
[    0.210352] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.220330] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.241770] pinctrl core: initialized pinctrl subsystem
[    0.247793] DMI not present or invalid.
[    0.252413] NET: Registered protocol family 16
[    0.258651] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.265996] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.274064] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.282783] thermal_sys: Registered thermal governor 'step_wise'
[    0.282788] thermal_sys: Registered thermal governor 'power_allocator'
[    0.289497] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.303219] ASID allocator initialised with 65536 entries
[    0.329721] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.336604] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.343478] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.350330] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.358225] cryptd: max_cpu_qlen set to 1000
[    0.365445] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
[    0.374523] vcc_5v0: supplied by vmain_pd
[    0.379043] vcc_3v3_sys: supplied by vmain_pd
[    0.383935] vcc_1v8: supplied by vcc_3v3_sys
[    0.389141] iommu: Default domain type: Translated
[    0.394471] SCSI subsystem initialized
[    0.398680] mc: Linux media interface: v0.10
[    0.403067] videodev: Linux video capture interface: v2.00
[    0.408744] pps_core: LinuxPPS API ver. 1 registered
[    0.413819] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.423168] PTP clock support registered
[    0.427205] EDAC MC: Ver: 3.0.0
[    0.431050] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
[    0.438167] FPGA manager framework
[    0.441750] Advanced Linux Sound Architecture Driver Initialized.
[    0.448892] clocksource: Switched to clocksource arch_sys_counter
[    0.455349] VFS: Disk quotas dquot_6.6.0
[    0.459415] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.471821] NET: Registered protocol family 2
[    0.476566] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.485299] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.494080] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.502284] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.510019] TCP: Hash tables configured (established 16384 bind 16384)
[    0.516926] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.523819] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.531295] NET: Registered protocol family 1
[    0.536210] RPC: Registered named UNIX socket transport module.
[    0.542283] RPC: Registered udp transport module.
[    0.547120] RPC: Registered tcp transport module.
[    0.551934] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.558531] PCI: CLS 0 bytes, default 64
[    0.563386] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.575388] Initialise system trusted keyrings
[    0.580145] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.590485] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.597046] NFS: Registering the id_resolver key type
[    0.602251] Key type id_resolver registered
[    0.606526] Key type id_legacy registered
[    0.610687] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.617542] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.625293] 9p: Installing v9fs 9p2000 file system support
[    0.665295] Key type asymmetric registered
[    0.669494] Asymmetric key parser 'x509' registered
[    0.674519] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.682085] io scheduler mq-deadline registered
[    0.686717] io scheduler kyber registered
[    0.692661] pinctrl-single 4084000.pinctrl: 34 pins, size 136
[    0.699022] pinctrl-single f4000.pinctrl: 171 pins, size 684
[    0.711535] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.730889] brd: module loaded
[    0.741124] loop: module loaded
[    0.745206] megasas: 07.714.04.00-rc1
[    0.752329] tun: Universal TUN/TAP device driver, 1.6
[    0.758034] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    0.764456] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.770564] sky2: driver version 1.30
[    0.775155] VFIO - User Level meta-driver version: 0.3
[    0.781409] i2c /dev entries driver
[    0.786503] sdhci: Secure Digital Host Controller Interface driver
[    0.792861] sdhci: Copyright(c) Pierre Ossman
[    0.797562] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.804301] ledtrig-cpu: registered to indicate activity on CPUs
[    0.810744] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.818362] optee: probing for conduit method.
[    0.822975] optee: revision 3.18 (8e155bae)
[    0.823247] optee: dynamic shared memory is enabled
[    0.832745] optee: initialized driver
[    0.838410] NET: Registered protocol family 17
[    0.843120] 9pnet: Installing 9P2000 support
[    0.847567] Key type dns_resolver registered
[    0.852148] Loading compiled-in X.509 certificates
[    0.865686] ti-sci 44043000.system-controller: ti,ctx-memory-region is required for suspend but not provided.
[    0.875863] ti-sci 44043000.system-controller: ti_sci_init_suspend failed, mem suspend will be non-functional.
[    0.886104] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi')
[    0.922478] davinci-mcasp 2b10000.mcasp: IRQ common not found
[    0.932068] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    0.939772] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
[    0.946037] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
[    0.954446] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    0.963814] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    0.972865] ti-bcdma 485c0100.dma-controller: Number of rings: 82
[    0.981021] ti-bcdma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
[    0.992165] ti-pktdma 485c0000.dma-controller: Number of rings: 150
[    1.002284] ti-pktdma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
[    1.012633] printk: console [ttyS2] disabled
[    1.017084] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 19, base_baud = 3000000) is a 8250
[    1.025851] printk: console [ttyS2] enabled
[    1.025851] printk: console [ttyS2] enabled
[    1.034301] printk: bootconsole [ns16550a0] disabled
[    1.034301] printk: bootconsole [ns16550a0] disabled
[    1.048166] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    1.055092] spi-nor: probe of spi0.0 failed with error -2
[    1.066178] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.112922] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.122461] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.130561] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver unknown
[    1.138492] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000002
[    1.151416] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
[    1.157682] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
[    1.164807] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.171483] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.183895] rtc-ti-k3 2b1f0000.rtc: registered as rtc0
[    1.189087] rtc-ti-k3 2b1f0000.rtc: setting system clock to 1970-01-01T00:00:22 UTC (22)
[    1.300980] davinci-mcasp 2b10000.mcasp: IRQ common not found
[    1.318817] pca953x 1-0022: supply vcc not found, using dummy regulator
[    1.325562] pca953x 1-0022: using AI
[    1.353023] pca953x 1-0022: failed writing register
[    1.358040] pca953x: probe of 1-0022 failed with error -121
[    1.369081] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    1.378781] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
[    1.387969] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[    1.401577] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
[    1.410916] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
[    1.422104] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
[    1.433351] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [Generic PHY] (irq=POLL)
[    1.442765] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
[    1.452657] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[    1.472892] Sending DHCP requests ..
[    5.501623] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[    8.900888] ., OK
[    8.918835] IP-Config: Got DHCP answer from 192.168.100.1, my address is 10.0.0.5
[    8.926325] IP-Config: Complete:
[    8.929555]      device=eth0, hwaddr=34:08:e1:87:76:a5, ipaddr=10.0.0.5, mask=255.0.0.0, gw=255.255.255.255
[    8.939279]      host=10.0.0.5, domain=, nis-domain=(none)
[    8.944754]      bootserver=10.0.0.1, rootserver=10.0.0.28, rootpath=
[    8.944758]      nameserver0=192.168.100.1
[    8.957132] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down
[    8.966511] ALSA device list:
[    8.969497]   No soundcards found.
[    8.984932] VFS: Mounted root (nfs filesystem) readonly on device 0:20.
[    8.992138] devtmpfs: mounted
[    8.996309] Freeing unused kernel memory: 1792K
[    9.008959] Run /sbin/init as init process
[    9.158044] systemd[1]: System time before build time, advancing clock.
[    9.206166] NET: Registered protocol family 10
[    9.216054] Segment Routing with IPv6
[    9.237865] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS )
[    9.259992] systemd[1]: Detected architecture arm64.

Welcome to Arago 2021.09!

[    9.306469] systemd[1]: Set hostname to <am62xx-evm>.
[    9.665278] random: systemd: uninitialized urandom read (16 bytes read)
[    9.672179] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[    9.684576] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[    9.695634] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[    9.717091] random: systemd: uninitialized urandom read (16 bytes read)
[    9.725019] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    9.749058] random: systemd: uninitialized urandom read (16 bytes read)
[    9.756703] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    9.777414] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password ???ts to Console Directory Watch.
[    9.801224] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R???uests to Wall Directory Watch.
[    9.825157] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[    9.841020] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    9.860989] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[    9.877015] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    9.894755] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[    9.917146] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[    9.943052] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[    9.965423] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[   10.004526] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[   10.014114] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[   10.037729] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[   10.054437] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[   10.078599] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[   10.101482] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[   10.125469] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[   10.145307] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[   10.173289] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[   10.195388] systemd[1]: Mounting Temporary Directory (/tmp)...
         Mounting Temporary Directory (/tmp)...
[   10.218231] systemd[1]: Starting Create list of static device nodes for the current kernel...
         Starting Create list of st???odes for the current kernel...
[   10.244883] systemd[1]: Starting Start psplash boot splash screen...
         Starting Start psplash boot splash screen...
[   10.274189] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[   10.298759] systemd[1]: Starting File System Check on Root Device...
         Starting File System Check on Root Device...
[   10.321670] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[   10.348022] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[   10.370139] systemd[1]: Starting udev Coldplug all Devices...
         Starting udev Coldplug all Devices...
[   10.382399] cryptodev: loading out-of-tree module taints kernel.
[   10.391077] cryptodev: driver 1.10 loaded.
[   10.395235] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[   10.414201] systemd[1]: Mounted Huge Pages File System.
[  OK  ] Mounted Huge Pages File System.
[   10.438007] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted Temporary Directory (/tmp).
[  OK  ] Started Create list of sta??? nodes for the current kernel.
[FAILED] Failed to start Start psplash boot splash screen.
See 'systemctl status psplash-start.service' for details.
[DEPEND] Dependency failed for Star???progress communication helper.
[  OK  ] Started File System Check on Root Device.
[  OK  ] Started Load Kernel Modules.
         Mounting Kernel Configuration File System...
         Starting Remount Root and Kernel File Systems...
         Starting Apply Kernel Variables...
[   10.672441] random: systemd-journal: uninitialized urandom read (16 bytes read)
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Started Remount Root and Kernel File Systems.
[   10.732394] random: systemd: uninitialized urandom read (16 bytes read)
         Starting Flush Journal to Persistent Storage   10.746215] random: systemd-journal: uninitialized urandom read (16 bytes read)
0m...
[   10.773122] systemd-journald[171]: Received client request to flush runtime journal.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /media/ram...
         Mounting /var/volatile...
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /media/ram.
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[   11.368973] random: crng init done
[   11.372426] random: 63 urandom warning(s) missed due to ratelimiting
[  OK  ] Started Network Time Synchronization.
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target System Time Set.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Reached target Timers.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started D-Bus System Message Bus.
         Starting Print notice about GPLv3 packages...
Unhandled Exception in EL3.
x30            = 0x000000009e780f88
x0             = 0xffff80001162d090
x1             = 0xffff000000ee7000
x2             = 0x0000000000000000
x3             = 0xffff000001b87f00
x4             = 0xffff00000021a210
x5             = 0x000000000e0f1000
x6             = 0x000000000000008b
x7             = 0x0000000000000041
x8             = 0xffff80001109a48c
x9             = 0xffff8000111b2000
x10            = 0x0000000000001000
x11            = 0xffff80001162f000
x12            = 0xffff80001162f000
x13            = 0x0000000000000000
x14            = 0x000000000000029d
x15            = 0x0000000000000000
x16            = 0x0000000000000000
x17            = 0x0000000000000000
x18            = 0x0000000000000000
x19            = 0xffff0000048c2a80
x20            = 0xffff00000021a010
x21            = 0xffff0000048c2a90
x22            = 0xffff00000021a000
x23            = 0xffff0000048c2b20
x24            = 0x000000000000002c
x25            = 0xffff800011161070
x26            = 0x0000000000000003
x27            = 0xffff8000100f60c0
x28            = 0xffff0000003f7000
x29            = 0xffff8000116fb920
scr_el3        = 0x000000000000073d
sctlr_el3      = 0x0000000030cd183f
cptr_el3       = 0x0000000000000000
tcr_el3        = 0x0000000080803520
daif           = 0x00000000000002c0
mair_el3       = 0x00000000004404ff
spsr_el3       = 0x0000000080000005
elr_el3        = 0xffff800008b88340
ttbr0_el3      = 0x000000009e7910c0
esr_el3        = 0x0000000092000010
far_el3        = 0xffff80001162d090
spsr_el1       = 0x0000000020000000
elr_el1        = 0x0000ffffb92653a4
spsr_abt       = 0x0000000000000000
spsr_und       = 0x0000000000000000
spsr_irq       = 0x0000000000000000
spsr_fiq       = 0x0000000000000000
sctlr_el1      = 0x0000000034d4d91d
actlr_el1      = 0x0000000000000000
cpacr_el1      = 0x0000000000300000
csselr_el1     = 0x0000000000000000
sp_el1         = 0xffff8000116fb920
esr_el1        = 0x000000009600000b
ttbr0_el1      = 0x0000000084a33000
ttbr1_el1      = 0x00a6000082ece000
mair_el1       = 0x000c0400bb44ffff
amair_el1      = 0x0000000000000000
tcr_el1        = 0x00000032b5d03590
tpidr_el1      = 0xffff80006ec5e000
tpidr_el0      = 0x0000ffffa43c4b40
tpidrro_el0    = 0x0000000000000000
par_el1        = 0x0000000000000000
mpidr_el1      = 0x0000000080000002
afsr0_el1      = 0x0000000000000000
afsr1_el1      = 0x0000000000000000
contextidr_el1 = 0x0000000000000000
vbar_el1       = 0xffff800010010800
cntp_ctl_el0   = 0x0000000000000005
cntp_cval_el0  = 0x0000000279348723
cntv_ctl_el0   = 0x0000000000000000
cntv_cval_el0  = 0x0000000000000000
cntkctl_el1    = 0x00000000000000d6
sp_el0         = 0xffff000000ee7000
isr_el1        = 0x0000000000000040
dacr32_el2     = 0x0000000000000000
ifsr32_el2     = 0x0000000000000000
cpuectlr_el1   = 0x0000000000000040
cpumerrsr_el1  = 0x00000000110805ce
l2merrsr_el1   = 0x0000000010000000
cpuactlr_el1   = 0x00001000090ca000

  • I mage a memory test from u-boot :

    => mtest 0x80000000 0xA0000000 EE 10
    Testing 80000000 ... a0000000:
    Pattern FFFFFFFFFFFFFF11 Writing... Reading...Tested 16 iteration(s) with 0 errors.

    => md 0x9FFFFF00
    9fffff00: fbffff31 ffffffff fbffff30 ffffffff 1.......0.......
    9fffff10: fbffff2f ffffffff fbffff2e ffffffff /...............
    9fffff20: fbffff2d ffffffff fbffff2c ffffffff -.......,.......
    9fffff30: fbffff2b ffffffff fbffff2a ffffffff +.......*.......
    9fffff40: fbffff29 ffffffff fbffff28 ffffffff ).......(.......
    9fffff50: fbffff27 ffffffff fbffff26 ffffffff '.......&.......
    9fffff60: fbffff25 ffffffff fbffff24 ffffffff %.......$.......
    9fffff70: fbffff23 ffffffff fbffff22 ffffffff #.......".......
    9fffff80: fbffff21 ffffffff fbffff20 ffffffff !....... .......
    9fffff90: fbffff1f ffffffff fbffff1e ffffffff ................
    9fffffa0: fbffff1d ffffffff fbffff1c ffffffff ................
    9fffffb0: fbffff1b ffffffff fbffff1a ffffffff ................
    9fffffc0: fbffff19 ffffffff fbffff18 ffffffff ................
    9fffffd0: fbffff17 ffffffff fbffff16 ffffffff ................
    9fffffe0: fbffff15 ffffffff fbffff14 ffffffff ................
    9ffffff0: fbffff13 ffffffff fbffff12 ffffffff ................

    But if metest is used after a reset without parameters, I got an Error:

    => mtest
    Testing 00000000 ... 00001000:
    Pattern 00000000  Writing...            
    ERROR:   Unhandled External Abort received on 0x80000000 from EL3
    ERROR:   exception reason=0 syndrome=0xbf000000
    PANIC in EL3.
    x30            = 0x000000009e784588
    x0             = 0x0000000002800000
    x1             = 0x0000000000000060
    x2             = 0x0000000000000060
    x3             = 0x0000000000000008
    x4             = 0x0000000000000062
    x5             = 0x000000000000003b
    x6             = 0x000000000000000b
    x7             = 0x0000000000000000
    x8             = 0x00000000f7ef19f8
    x9             = 0x0000000041033020
    x10            = 0x000000000000073d
    x11            = 0x0000000000000010
    x12            = 0x0000000000000006
    x13            = 0x000000000001869f
    x14            = 0x00000000f7ef1d40
    x15            = 0x0000000000000001
    x16            = 0x00000000fff66fa4
    x17            = 0x0000000000000000
    x18            = 0x0000000000000000
    x19            = 0x0000000000000003
    x20            = 0x0000000000000000
    x21            = 0x00000000bf000000
    x22            = 0x0000000000000000
    x23            = 0x0000000000000001
    x24            = 0x0000000000000000
    x25            = 0x0000000000000000
    x26            = 0x00000000fffb7092
    x27            = 0x0000000000000000
    x28            = 0x0000000000000000
    x29            = 0x000000009e78b450
    scr_el3        = 0x000000000000073d
    sctlr_el3      = 0x0000000030cd183f
    cptr_el3       = 0x0000000000000000
    tcr_el3        = 0x0000000080803520
    daif           = 0x00000000000003c0
    mair_el3       = 0x00000000004404ff
    spsr_el3       = 0x00000000200002cd
    elr_el3        = 0x000000009e787d94
    ttbr0_el3      = 0x000000009e7910c0
    esr_el3        = 0x00000000bf000000
    far_el3        = 0x7ec3bbef181d418c
    spsr_el1       = 0x0000000000000000
    elr_el1        = 0x0000000000000000
    spsr_abt       = 0x0000000000000000
    spsr_und       = 0x0000000000000000
    spsr_irq       = 0x0000000000000000
    spsr_fiq       = 0x0000000000000000
    sctlr_el1      = 0x0000000030d00801
    actlr_el1      = 0x0000000000000000
    cpacr_el1      = 0x0000000000000000
    csselr_el1     = 0x0000000000000000
    sp_el1         = 0x0000000000000000
    esr_el1        = 0x0000000000000000
    ttbr0_el1      = 0x0000000000000000
    ttbr1_el1      = 0x0000000000000000
    mair_el1       = 0x0000000000000000
    amair_el1      = 0x0000000000000000
    tcr_el1        = 0x0000000000800080
    tpidr_el1      = 0x0000000000000000
    tpidr_el0      = 0x0000000000000000
    tpidrro_el0    = 0x0000000000000000
    par_el1        = 0x0000000000000000
    mpidr_el1      = 0x0000000080000000
    afsr0_el1      = 0x0000000000000000
    afsr1_el1      = 0x0000000000000000
    contextidr_el1 = 0x0000000000000000
    vbar_el1       = 0x0000000000000000
    cntp_ctl_el0   = 0x0000000000000000
    cntp_cval_el0  = 0x0000000000000000
    cntv_ctl_el0   = 0x0000000000000000
    cntv_cval_el0  = 0x0000000000000000
    cntkctl_el1    = 0x0000000000000000
    sp_el0         = 0x000000009e78b450
    isr_el1        = 0x0000000000000000
    dacr32_el2     = 0x0000000000000000
    ifsr32_el2     = 0x0000000000000000
    cpuectlr_el1   = 0x0000000000000040
    cpumerrsr_el1  = 0x00000000190c04e3
    l2merrsr_el1   = 0x0000000010080000
    cpuactlr_el1   = 0x00001000090ca000

  • Hello,

    Please allow a few days to look into this issue, thanks.

  • Hello Judith,

    Alexis has noticed that he could boot Linux by disabling TEE in the kernel. Of course in the long term, TEE has to remain enabled, but this may point to the root cause of the issue.

    The issue could be that the processor in their EVM (which Alexis acquired about 1 year ago) be a General Purpose (GP) device, when the devices on his customer boards are HS-FS (High Security - Field Securable) ones? Assuming that's the root cause, does the 8.4 SDK that Alexis currently use support HS-FS devices, or should he migrate to 8.6? Please note that the preferred solution is to remain on 8.4 with a workaround for HS-FS as Alexis will have to migrate to the SDK 9.0, so let's avoid one migration step if possible. If he has to migrate to 8.6, are HS-FS supported out of the box, or is there anything to enable using HS-FS?

    Thank you.


    Best regards,
    François.

  • Hello Francois,

    For AM62x, 8.4 release did not include support for HS-FS device. We released FW for HS-FS device on 08.06 release. 8.6 release also boots HS-FS device by default. To boot the GP device, please boot with tiboot3.bin named 'tiboot3-am62x-gp-evm.bin'. Remove the original 'tiboot3.bin' and rename 'tiboot3-am62x-gp-evm.bin' to 'tiboot3.bin'.

    8.4 release has not been tested in our test farm for HS-FS device, so I recommend migrating to the latest or 8.6.

    regards,

    Judith

  • A few questions for clarity:

    - Has HS-FS device been booted with 8.4 release?
    - With which SoC type (GP or HS-FS) did you receive this EL3 error?

    regards,

    Judith

  • Hello Judith,

    Thank you for the quick response. Let's see what the customer feedback is.


    Best regards,
    François.

  • Hello Judith,

    I use Soc on the SK-AM62x board provided by François, I don't know which type of Soc it is GP or HS-FS. But on this board Linux boot.

    The Soc on our custom  board has been purchase from the TI web store, I don't remember that Soc type GP or HS-FS has been given, and on this board the  EL3 error is raised.

    How could I check this information do you have a u-boot/Linux command I can execute or a register that I can read by JTAG ?

    I'm going to test again with the 'tiboot3-am62x-gp-evm.bin' to check if our board boot with this binary.

    Could you provide me a full guide line that explains how to configure optee and the security feature on the AM62x Soc ?

    Regards,

    Alexis.

  • There is no OSPI eeprom mounted on our custom design. I don't know if is it required ?

  • I my build directory  I have the linhk point on the tiboot3-am62x-gp-evm.bin file:

    ls ./build/arago-tmp-external-arm-glibc/deploy/images/am62xx-evm/

    lrwxrwxrwx 2 user user        24 Apr 26 10:14 tiboot3.bin -> tiboot3-am62x-gp-evm.bin

    I give a try replacing tiboot3.bin by  tiboot3-am62x-gp-evm.bin file but the EL3 exception is still there.

    In my yocto recipe I use the ethernet boot configuration.

    So, I edit tisdk/sources/meta-ti/conf/machine/am62xx-evm-k3r5.conf, and set U_BOOT_MACHINE="am62x_evm_r5_ethboot_defconfig"

    Regards,

    Alexis.

  • Hello Alexis,

    Can you try to identify the SoC type with the following instructions: software-dl.ti.com/.../Foundational_Components_Migration_Guide.html

    The UART bootmode pin settings are: SW2:00000000 SW1:11011100

  • Hello Judith,

    The Soc type of our custom board is :

    -----------------------
    SoC ID Header Info:
    -----------------------
    ('NumBlocks            :', 1)
    -----------------------
    SoC ID Public ROM Info:
    -----------------------
    ('SubBlockId           :', 1)
    ('SubBlockSize         :', 26)
    ('DeviceName           :', 'am62x')
    ('DeviceType           :', 'GP  ')
    ('DMSC ROM Version     :', [0, 1, 0, 1])
    ('R5 ROM Version       :', [0, 1, 0, 1])

    The Soc type of sk-am62x-evm development board is:

    -----------------------
    SoC ID Header Info:
    -----------------------
    ('NumBlocks :', 1)
    -----------------------
    SoC ID Public ROM Info:
    -----------------------
    ('SubBlockId :', 1)
    ('SubBlockSize :', 26)
    ('DeviceName :', 'am62x')
    ('DeviceType :', 'GP ')
    ('DMSC ROM Version :', [0, 1, 0, 1])
    ('R5 ROM Version :', [0, 1, 0, 1])

  • Hello Alexis,

    It seems like you have GP devices only. The 08.04 image should boot the GP device by default. The 08.06 image should boot HS-FS device by default. Is there a reason why you don't want to try 08.06?

    Could you try with 08.06. Simply remove the original 'tiboot3.bin' and rename the 'tiboot3.bin-am62x-gp-evm.bin' to 'tiboot3.bin'.

    regards

    Judith

  • Hello Judith,

    We have ported xenomai 3 realtime on sdk 08.04.01.04, so that why we can't currently upgrade the sdk to 08.06.

    You wrote that sdk 08.04 will boot GP device, but it seems it is not working on our device.

    As explain the Linux kernel works on the TI sk-am62x evaluation board, with the same software package.

    So I suggest that the issue comes from a difference between our custom design and the TI evaluation board. 

    Could you tell me what could lead to the EL3 exception ? Does the OSPI flash is required ?

    Regards,

    Alexis.

  • Hello Alexis,

    This seems to be a message from ATF. My guess is there is a driver accessing a location that is restricted. What is your configuration setup?

    regards,

    Judith

  • It seems there is an issue with AM623X device. It seems rti15 is causing a crash. Could you try to disable with the following:

    &main_rti15 {
        status = "disabled";
    };

    Since AM623x does not have a GPU, the PD_GPU and rti15 do not exist.

  • Hello Judith,

    I updated the device tree and disabled the RTI15, and the EL3 exception disappeared.

    I check the TRM for AM623 and AM625 but I didn't find a note describing explicitly the hardware block that is not present in the AM623.

    Could you confirms that the only different between the AM623 and the AM625 is the GPU and the RTI15 that must be disable.

    It will be a big work to compare the TRM and the two SoC.

    Do you have any document that compare the two SoC ?

    Do you have a specific device tree for the am623, because in the SDK 08.04 there is only the DTS is for AM62 and include the RTI15 by default.

    I now rebuilding my full SDK to validate that this fix work on my linux system.

    I will let you know asap.

    By the way what has been your method to identify this issue ? It will help me to identify further issue by myself ?

    Thank you very much.

    Regards,

    Alexis.

  • Hello Alexis,

    I confirm the the only functional difference between AM623 and AM625 is the GPU. The devices also have different id's as documented in the Device Comparison table of the datasheet.

    I will let Judith respond to the other points.


    Best regards,
    François.

  • Hello Alexis,

    We do not have a way of testing every device in our test farm unfortunately. These types of issues may be caught before release or not. In this case, this issue was recently discovered by a customer, see the following thread: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1218039/am623-stuck-in-sd-card-after-boot-up.

    If you look at table 4.12.2.3 you can see RTI15 power domain is PD_GPU. We do not have GPU on AM623, see the following link that shows some device comparisons: dev.ti.com/.../sysdesign-am62x-variants.html.

    We usually add support in Linux kernel for the fully featured device, in this case AM625, that is why we do not have a device tree specifically for AM623 device.

    regards,

    Judith

  • Hello Judith, Francois,

    Thank you very much for the information, it will be useful.

    The EL3 error is no more raised for our SDK 08.04 with our custom board.

    This issue is resolved.

    Have a nice day.

    Regards,

    Alexis