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.

AM62P: Custom 2GB SOM bring up problems

Part Number: AM62P

Tool/software:

We are currently trying to setup a som using the am62p5 processor. We have successfully booted u-boot, however we hang during kernel boot.

We first hang at this line due to PARAVIRT:

[ 0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns

Disabling PARAVIRT gets us to hang at this line:

[    2.392841] optee: probing for conduit method.

We are unsure of what exactly is causing this issue, however a notable difference between our board and the ti evm (whose u-boot and kernel configuration we are using for reference) is that our board only has 2GB of RAM while the evm has 8GB.

Is there something in the way u-boot or the kernel are setup / configured for the am62p5 processor that depends on there being more then 2 GB of RAM available?

Thank you,

    Joshua Bourgeot

  • Hi Joshua,

    Which SDK version do you use on AM62P5?

  • Hello Bin,

    We are using the 10.00.07 SDK release (https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM62P).

    Thank you,

        Joshua Bourgeot

  • Hi Joshua,

    Please apply the following U-Boot patch and rebuild U-Boot to see if it resolves the kernel boot issue.

    diff --git a/configs/am62px_evm_r5_defconfig b/configs/am62px_evm_r5_defconfig
    index b5c8ba1a0fe3..c40fa0edaac6 100644
    --- a/configs/am62px_evm_r5_defconfig
    +++ b/configs/am62px_evm_r5_defconfig
    @@ -138,3 +138,4 @@ CONFIG_SPL_TIMER=y
     CONFIG_OMAP_TIMER=y
     CONFIG_LIB_RATIONAL=y
     CONFIG_SPL_LIB_RATIONAL=y
    +CONFIG_SYS_MEM_TOP_HIDE=0x4000000

  • Hello Bin,

        This patch did not appear to make any difference.

    Thank you,

        Joshua Bourgeot

  • Hi Joshua,

    Please attach the full console log.

  • Hello Bin,

        Attached is the current boot log. Something I noticed recently that seems to be out of the ordinary is there does not appear to be any allocation for the "Normal' Zone range:

    [ 0.000000] Zone ranges:
    [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff]
    [ 0.000000] DMA32 empty
    [ 0.000000] Normal empty

    Could this be causing the hang we are seeing?

    Thank you,

        Joshua Bourgeot

    U-Boot SPL 2024.04-00060-g9351419b816-dirty (Nov 11 2024 - 16:48:07 -0500)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Limiting LPDDR4 to 2GB
    SPL initial stack usage: 17048 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b8
    NOTICE:  BL31: Built : 15:08:12, Nov 11 2024
    I/TC: 
    I/TC: OP-TEE version: 4.2.0 (gcc version 13.3.1 20240614 (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24))) #1 Mon Nov 11 20:08:09 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04-00060-g9351419b816-dirty (Nov 11 2024 - 16:48:22 -0500)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    SPL initial stack usage: 1776 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04-00060-g9351419b816-dirty (Nov 11 2024 - 16:48:22 -0500)
    
    SoC:   AM62PX SR1.0 HS-FS
    Model: Critical Link MitySOM-AM62px
    Error - Factory Configuration Invalid
    Info - You must set the factory configuration to make permanent
    Info - Setting configuration to defaults
    Info - Didn't find block type 2 index 0
    Info - Didn't find block type 3 index 0
    MitySOM-62x - Model No:  Serial No: 0 Part Number: 
    DRAM:  Error - Factory Configuration Invalid
    Info - You must set the factory configuration to make permanent
    Info - Setting configuration to defaults
    Info - Didn't find block type 2 index 0
    Info - Didn't find block type 3 index 0
    ERROR: Unknown LPDDR4 ram size, Limiting LPDDR4 to 2GB
    2 GiB
    Core:  102 devices, 29 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from FAT... Unable to read "uboot.env" from mmc1:1... 
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Error - Factory Configuration Invalid
    Info - You must set the factory configuration to make permanent
    Info - Setting configuration to defaults
    Info - Didn't find block type 2 index 0
    Info - Didn't find block type 3 index 0
    I2C Error reading factory config block
    Net:   eth0: ethernet@8000000port@1, eth1: ethernet@8000000port@2
    Hit any key to stop autoboot:  0 
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    574 bytes read in 9 ms (61.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    27668992 bytes read in 1157 ms (22.8 MiB/s)
    67153 bytes read in 14 ms (4.6 MiB/s)
    Working FDT set to 88000000
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008feec000, end 000000008fffffff ... OK
    Working FDT set to 8feec000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.6.32-01360-gfb975c302bb6-dirty (jbourgeot@laptop-183) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712, GNU ld (Arm GNU Toolcha4
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Critical Link MitySOM-AM62px
    [    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 CMA memory pool at 0x00000000dc000000, size 576 MiB
    [    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000dc000000..0x00000000ffffffff (589824 KiB) map reusable linux,cma
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB
    [    0.000000] OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000
    [    0.000000] OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000
    [    0.000000] OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
    [    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-0x000000009b4fffff]
    [    0.000000]   node   0: [mem 0x000000009b500000-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] 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.4
    [    0.000000] percpu: Embedded 29 pages/cpu s81064 r8192 d29528 u118784
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Kernel command line: console=ttyS2,115200n8 maxcpus=1 earlycon=ns16550a,mmio32,0x02800000 root=PARTUUID=076c4a2a-02 rw rootfstype=ext4 rootwait
    [    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] Built 1 zonelists, mobility grouping on.  Total pages: 516096
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: area num 4.
    [    0.000000] software IO TLB: mapped [mem 0x00000000d5800000-0x00000000d9800000] (64MB)
    [    0.000000] Memory: 1296564K/2097152K available (14656K kernel code, 2252K rwdata, 4940K rodata, 5056K init, 454K bss, 210764K reserved, 589824K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] ftrace: allocating 48045 entries in 188 pages
    [    0.000000] ftrace: allocated 188 pages with 5 groups
    [    0.000000] trace event string verifier disabled
    [    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]  Rude variant of Tasks RCU enabled.
    [    0.000000]  Tracing 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] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    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 @0x00000000801a0000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000801b0000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008639] Console: colour dummy device 80x25
    [    0.013242] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023917] pid_max: default: 32768 minimum: 301
    [    0.028723] LSM: initializing lsm=capability,integrity
    [    0.034090] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.041659] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.051775] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
    [    0.059107] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
    [    0.066829] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
    [    0.074785] rcu: Hierarchical SRCU implementation.
    [    0.079683] rcu:     Max phase no-delay instances is 1000.
    [    0.085339] Platform MSI: msi-controller@1820000 domain created
    [    0.091717] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.101181] EFI services will not be available.
    [    0.106148] smp: Bringing up secondary CPUs ...
    [    0.110831] smp: Brought up 1 node, 1 CPU
    [    0.114954] SMP: Total of 1 processors activated.
    [    0.119777] CPU features: detected: 32-bit EL0 Support
    [    0.125037] CPU features: detected: CRC32 instructions
    [    0.130360] CPU: All CPU(s) started at EL2
    [    0.134544] alternatives: applying system-wide alternatives
    [    0.142211] devtmpfs: initialized
    [    0.155019] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.165043] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.194625] pinctrl core: initialized pinctrl subsystem
    [    0.200708] DMI not present or invalid.
    [    0.205817] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.212851] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [    0.220196] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.228225] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.236398] audit: initializing netlink subsys (disabled)
    [    0.242143] audit: type=2000 audit(0.156:1): state=initialized audit_enabled=0 res=1
    [    0.250592] thermal_sys: Registered thermal governor 'step_wise'
    [    0.250600] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.256799] cpuidle: using governor menu
    [    0.267619] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.274593] ASID allocator initialised with 65536 entries
    [    0.285473] platform 4084000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/bus@4000000/pinctrl@4084000/mcu-p3-default-pins
    [    0.297343] platform 4084000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/bus@4000000/pinctrl@4084000/mcu-system-default-pins
    [    0.309453] platform 4084000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/bus@4000000/pinctrl@4084000/mcu-uart1-default-pins
    [    0.321466] platform 4084000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/bus@4000000/pinctrl@4084000/jtag-default-pins
    [    0.333027] platform 4084000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/bus@4000000/pinctrl@4084000/mcu_system_pins_default
    [    0.349056] platform f4000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/pinctrl@f4000/gpio-p3-default-pins
    [    0.359557] platform f4000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/pinctrl@f4000/main-system-default-pins
    [    0.374483] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/tfp410@38
    [    0.386213] platform hdmi_connector: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/tfp410@38
    [    0.395849] platform usb_microb_connector: Fixed dependency cycle(s) with /bus@f0000/usb@f900000/usb@31000000
    [    0.406533] Modules: 25888 pages in range for non-PLT usage
    [    0.406542] Modules: 517408 pages in range for PLT usage
    [    0.416813] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.441211] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.455631] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.470577] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.480987] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.495932] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.510350] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.521292] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.537486] k3-chipinfo 43000014.chipid: Family:AM62PX rev:SR1.0 JTAGID[0x0bb9d02f] Detected
    [    0.562007] iommu: Default domain type: Translated
    [    0.570992] iommu: DMA domain TLB invalidation policy: strict mode
    [    0.585668] SCSI subsystem initialized
    [    0.593962] usbcore: registered new interface driver usbfs
    [    0.607613] usbcore: registered new interface driver hub
    [    0.617081] usbcore: registered new device driver usb
    [    0.626885] pps_core: LinuxPPS API ver. 1 registered
    [    0.639978] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.657330] PTP clock support registered
    [    0.665548] EDAC MC: Ver: 3.0.0
    [    0.673776] scmi_core: SCMI protocol bus registered
    [    0.683117] FPGA manager framework
    [    0.686685] Advanced Linux Sound Architecture Driver Initialized.
    [    0.706012] vgaarb: loaded
    [    0.713294] clocksource: Switched to clocksource arch_sys_counter
    [    0.725683] VFS: Disk quotas dquot_6.6.0
    [    0.733317] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.759569] NET: Registered PF_INET protocol family
    [    0.769490] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.787039] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
    [    0.805316] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.821303] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.837394] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
    [    0.853886] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.869481] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.881327] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.897536] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.909867] RPC: Registered named UNIX socket transport module.
    [    0.921287] RPC: Registered udp transport module.
    [    0.933286] RPC: Registered tcp transport module.
    [    0.941287] RPC: Registered tcp-with-tls transport module.
    [    0.953286] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.965295] NET: Registered PF_XDP protocol family
    [    0.977310] PCI: CLS 0 bytes, default 64
    [    0.987040] Initialise system trusted keyrings
    [    0.997541] workingset: timestamp_bits=46 max_order=19 bucket_order=0
    [    1.009640] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    1.025590] NFS: Registering the id_resolver key type
    [    1.033318] Key type id_resolver registered
    [    1.045287] Key type id_legacy registered
    [    1.053306] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    1.065288] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    1.140998] Key type asymmetric registered
    [    1.153288] Asymmetric key parser 'x509' registered
    [    1.161354] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
    [    1.177454] io scheduler mq-deadline registered
    [    1.185289] io scheduler kyber registered
    [    1.193326] io scheduler bfq registered
    [    1.204801] pinctrl-single 4084000.pinctrl: 34 pins, size 136
    [    1.222189] pinctrl-single f4000.pinctrl: 171 pins, size 684
    [    1.249606] Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
    [    1.285713] loop: module loaded
    [    1.294149] megasas: 07.725.01.00-rc1
    [    1.309449] tun: Universal TUN/TAP device driver, 1.6
    [    1.322201] thunder_xcv, ver 1.0
    [    1.329334] thunder_bgx, ver 1.0
    [    1.332653] nicpf, ver 1.0
    [    1.341479] e1000: Intel(R) PRO/1000 Network Driver
    [    1.353286] e1000: Copyright (c) 1999-2006 Intel Corporation.
    [    1.365312] e1000e: Intel(R) PRO/1000 Network Driver
    [    1.373286] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    1.385309] igb: Intel(R) Gigabit Ethernet Network Driver
    [    1.397285] igb: Copyright (c) 2007-2014 Intel Corporation.
    [    1.409323] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    1.421286] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    1.433425] sky2: driver version 1.30
    [    1.442299] VFIO - User Level meta-driver version: 0.3
    [    1.453943] usbcore: registered new interface driver usb-storage
    [    1.469959] i2c_dev: i2c /dev entries driver
    [    1.479040] sdhci: Secure Digital Host Controller Interface driver
    [    1.493296] sdhci: Copyright(c) Pierre Ossman
    [    1.501630] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.513860] of_pwm_get(): can't parse "pwms" property
    [    1.525292] leds_pwm leds: error -ENOENT: unable to request PWM for devkit-d1
    [    1.541287] leds_pwm: probe of leds failed with error -2
    [    1.553483] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.565632] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    1.577733] usbcore: registered new interface driver usbhid
    [    1.589288] usbhid: USB HID core driver
    [    1.597569] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fca100
    [    1.613510] omap-mailbox 29010000.mailbox: omap mailbox rev 0x66fca100
    [    1.625366] omap-mailbox 29020000.mailbox: no available mbox devices found
    [    1.641328] omap-mailbox 29030000.mailbox: no available mbox devices found
    [    1.657524] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    1.674007] optee: probing for conduit method.
    
    

  • Hello Bin,

        We were able to seemingly reproduce our issues on the evm by limiting the amount of RAM to 2GB in the device tree in u-boot. See this patch:

    diff --git a/arch/arm/dts/k3-am62p5-sk.dts b/arch/arm/dts/k3-am62p5-sk.dts
    index 516b49c8cbe..3f1a87e72f8 100644
    --- a/arch/arm/dts/k3-am62p5-sk.dts
    +++ b/arch/arm/dts/k3-am62p5-sk.dts
    @@ -38,8 +38,7 @@
     
            memory@80000000 {
                    /* 8G RAM */
    -               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    -                     <0x00000008 0x80000000 0x00000001 0x80000000>;
    +               reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
                    device_type = "memory";
                    bootph-pre-ram;
            };
    

    Thank you,

        Joshua Bourgeot

  • Hi Joshua,

    Let me replicate it on the EVM and look into it.

  • Hello Bin,

         Were you able to successfully replicate the issue on the EVM?

         We've been doing some additional debugging and it appears that the issue may be relate to the SMC communication with optee. Both hangs listed in the original post seem to at their core be due to a "arm_smccc" call:

    The first failure is due to line 144 in arch/arm64/kernel/paravirt.c:
    "arm_smccc_1_1_invoke(ARM_SMCCC_ARCH_FEATURES_FUNC_ID, ARM_SMCCC_HV_PV_TIME_FEATURES, &res);"

    Second failure is due to line 1263 in drivers/tee/optee/smc_abi.c:
    "invoke_fn(OPTEE_SMC_CALLS_UID, 0, 0, 0, 0, 0, 0, 0, &res);" which actually is a function pointer to "arm_smccc_smc".

    Let me know if there is anything else we can do on our end to speed up the process, we appreciate the work you have done so far.

    Thank you,

        Joshua Bourgeot

  • Hi Joshua,

    Can you please apply the U-Boot patch attached below to see if this resolves the issue?

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_arm_2D00_mach_2D00_k3_2D00_am62p_2D00_Fixup_2D00_TF_2D00_A_2D00_OP_2D00_TEE_2D00_reserved_2D00_memory_2D00_.patch

  • Hello Bin,

        I have just applied the patch and everything appears to be working perfectly even on our custom som.

    Thank you very much,

        Joshua Bourgeot

  • Hi Joshua,

    Glad to hear this fixes the issue. Thanks for the update.

    I believe this patch is already in TI u-boot repo and will be in the next SDK release.

  • I believe this patch is already in TI u-boot repo and will be in the next SDK release.

    Thanks Bin.  I confirmed it is in the ti-u-boot-2024.04 branch.