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.

TMDS64GPEVM: AM64X PCIe end-point

Part Number: TMDS64GPEVM

There isn't enough tutorial in Processor SDK Linux for AM64X.

Even tutorial says, "The default dts is configured to be used in root complex mode. In order to use it in endpoint mode, the following changes have to be made in dts file." but there is not any information about changes.

  • Hi,

    Thanks for reporting the issue, we also just discovered the incomplete documentation a couple weeks ago and a ticket has been filed to our Dev team to get the issue fixed.

    Meanwhile please refer the PCIe endpoint document for J7 devices:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_02_00_03/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/PCIe/PCIe_End_Point.html

  • not works for AM6442.

  • what do you mean by "not working"?

  • I mean, did everyting in SDK J7 but endpoint not booting up

    EP device is frozen.

    U-Boot SPL 2021.01-g44a87e3ab8 (May 05 2022 - 17:45:29 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0016 '22.1.1--v2022.01 (Terrific Llam')
    SPL initial stack usage: 13392 bytes
    Trying to boot from MMC2
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.5(release):08.03.00.002-dirty
    NOTICE:  BL31: Built : 17:39:31, May  5 2022
    
    U-Boot SPL 2021.01-g44a87e3ab8 (May 05 2022 - 17:43:49 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0016 '22.1.1--v2022.01 (Terrific Llam')
    Trying to boot from MMC2
    
    
    U-Boot 2021.01-g44a87e3ab8 (May 05 2022 - 17:43:49 +0000)
    
    SoC:   AM64X SR1.0
    Model: Texas Instruments AM642 EVM
    Board: AM64-GPEVM rev B
    DRAM:  2 GiB
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    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'
    1490 bytes read in 2 ms (727.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    Running uenvcmd ...
    1 bytes read in 2 ms (0 Bytes/s)
    Already setup.
    18299392 bytes read in 760 ms (23 MiB/s)
    42085 bytes read in 4 ms (10 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 000000008fff2000, end 000000008ffff464 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.100-rt62-g204ec708dc () (aarch64-none-linux-gnu-gcc (GNU Toolchain for the 
    A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2
    -2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP PREEMPT_RT Fri Jul 29 09:36:06 +03 2022
    [    0.000000] Machine model: Texas Instruments AM642 EVM
    [    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 0x00000000a0000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a3000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a3100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@a4000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-memory@a4100000, 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-0x000000009e7fffff]
    [    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a57fffff]
    [    0.000000]   node   0: [mem 0x00000000a5800000-0x00000000ffffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000] On node 0 totalpages: 524288
    [    0.000000]   DMA zone: 8192 pages used for memmap
    [    0.000000]   DMA zone: 0 pages reserved
    [    0.000000]   DMA zone: 524288 pages, LIFO batch:63
    [    0.000000] cma: Reserved 24 MiB at 0x00000000fb800000
    [    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 18 pages/cpu s34752 r8192 d30784 u73728
    [    0.000000] pcpu-alloc: s34752 r8192 d30784 u73728 alloc=18*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 
    [    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 mtdparts=fc40000.spi.0:1
    m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.ph
    ypattern) root=PARTUUID=aaeb814c-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] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 1899416K/2097152K available (10688K kernel code, 1166K rwdata, 4156K rodata, 1728K init, 436K bs
    s, 173160K reserved, 24576K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, 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=2.
    [    0.000000] rcu:     RCU priority boosting: priority 1 delay 500 ms.
    [    0.000000] rcu:     RCU_SOFTIRQ processing moved to rcuc kthreads.
    [    0.000000]  No expedited grace period (rcu_normal_after_boot).
    [    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=2
    [    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:0x0000000001840000
    [    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] random: get_random_bytes called from start_kernel+0x320/0x4c8 with crng_init=0
    [    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: 44079521063
    4 ns
    [    0.000001] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008511] Console: colour dummy device 80x25
    [    0.013104] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023776] pid_max: default: 32768 minimum: 301
    [    0.028602] LSM: Security Framework initializing
    [    0.033392] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.040970] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.050963] rcu: Hierarchical SRCU implementation.
    [    0.056473] Platform MSI: msi-controller@1820000 domain created
    [    0.062902] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.072229] EFI services will not be available.
    [    0.077187] smp: Bringing up secondary CPUs ...
    [    0.082969] Detected VIPT I-cache on CPU1
    [    0.087107] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
    [    0.094140] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
    [    0.101576] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.108404] smp: Brought up 1 node, 2 CPUs
    [    0.112634] SMP: Total of 2 processors activated.
    [    0.117456] CPU features: detected: 32-bit EL0 Support
    [    0.122721] CPU features: detected: CRC32 instructions
    [    0.135820] CPU: All CPU(s) started at EL2
    [    0.140028] alternatives: patching kernel code
    [    0.145807] devtmpfs: initialized
    [    0.157854] KASLR disabled due to lack of seed
    [    0.162641] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.172616] futex hash table entries: 512 (order: 4, 65536 bytes, linear)
    [    0.180729] pinctrl core: initialized pinctrl subsystem
    [    0.186812] DMI not present or invalid.
    [    0.191374] NET: Registered protocol family 16
    [    0.198214] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [    0.205646] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.213780] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.222679] thermal_sys: Registered thermal governor 'step_wise'
    [    0.223193] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.236378] ASID allocator initialised with 65536 entries
    [    0.273549] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.280498] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.287373] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.294236] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.302412] cryptd: max_cpu_qlen set to 1000
    [    0.310709] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR1.0 JTAGID[0x0bb3802f] Detected
    [    0.320107] vsys_5v0: supplied by evm_12v0
    [    0.325028] vsys_3v3: supplied by evm_12v0
    [    0.330113] vddb_3v3_display: supplied by vsys_3v3
    [    0.336422] iommu: Default domain type: Translated 
    [    0.341964] SCSI subsystem initialized
    [    0.346677] mc: Linux media interface: v0.10
    [    0.351116] videodev: Linux video capture interface: v2.00
    [    0.356869] pps_core: LinuxPPS API ver. 1 registered
    [    0.361968] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.371315] PTP clock support registered
    [    0.375368] EDAC MC: Ver: 3.0.0
    [    0.379501] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
    [    0.386467] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
    [    0.393300] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
    [    0.400875] FPGA manager framework
    [    0.404527] Advanced Linux Sound Architecture Driver Initialized.
    [    0.411941] clocksource: Switched to clocksource arch_sys_counter
    [    0.418512] VFS: Disk quotas dquot_6.6.0
    [    0.422604] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.437167] NET: Registered protocol family 2
    [    0.441925] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.450996] tcp_listen_portaddr_hash hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.459894] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.468200] TCP bind hash table entries: 16384 (order: 7, 917504 bytes, linear)
    [    0.476734] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.483803] UDP hash table entries: 1024 (order: 5, 131072 bytes, linear)
    [    0.490944] UDP-Lite hash table entries: 1024 (order: 5, 131072 bytes, linear)
    [    0.498726] NET: Registered protocol family 1
    [    0.503867] RPC: Registered named UNIX socket transport module.
    [    0.509990] RPC: Registered udp transport module.
    [    0.514799] RPC: Registered tcp transport module.
    [    0.519603] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.526195] PCI: CLS 0 bytes, default 64
    [    0.531104] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.544236] Initialise system trusted keyrings
    [    0.549097] workingset: timestamp_bits=46 max_order=19 bucket_order=0
    [    0.562047] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.568890] NFS: Registering the id_resolver key type
    [    0.574158] Key type id_resolver registered
    [    0.578440] Key type id_legacy registered
    [    0.582638] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.589491] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.597360] 9p: Installing v9fs 9p2000 file system support
    [    0.646959] Key type asymmetric registered
    [    0.651208] Asymmetric key parser 'x509' registered
    [    0.656304] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.663877] io scheduler mq-deadline registered
    [    0.668521] io scheduler kyber registered
    [    0.675473] pinctrl-single f4000.pinctrl: 180 pins, size 720
    [    0.682649] pinctrl-single a40000.timesync-router: 512 pins, size 2048
    [    0.701454] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.727324] brd: module loaded
    [    0.741550] loop: module loaded
    [    0.745803] megasas: 07.714.04.00-rc1
    [    0.754952] tun: Universal TUN/TAP device driver, 1.6
    [    0.761119] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.767585] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.773748] sky2: driver version 1.30
    [    0.779033] VFIO - User Level meta-driver version: 0.3
    [    0.785659] i2c /dev entries driver
    [    0.790649] sdhci: Secure Digital Host Controller Interface driver
    [    0.797023] sdhci: Copyright(c) Pierre Ossman
    [    0.802325] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.809941] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.818329] optee: probing for conduit method.
    [    0.823025] optee: revision 3.12 (3d47a131)
    [    0.823650] optee: initialized driver
    [    0.834735] NET: Registered protocol family 17
    [    0.839586] 9pnet: Installing 9P2000 support
    [    0.844076] Key type dns_resolver registered
    [    0.848897] printk: bootconsole [ns16550a0]: printing thread started
    [    0.848970] Loading compiled-in X.509 certificates
    [    0.868014] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0016 '22.1.1--v2022.01 (Terrific Llam')
    [    0.929787] random: fast init done
    [    0.936663] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
    [    0.936691] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    0.939367] omap_i2c 20000000.i2c: bus 0 rev0.12 at 100 kHz
    [    0.945296] pca953x 1-0022: supply vcc not found, using dummy regulator
    [    0.945472] pca953x 1-0022: using AI
    [    0.967986] omap_i2c 20010000.i2c: Arbitration lost
    [    0.979957] pca953x 1-0022: failed writing register
    [    0.980177] pca953x: probe of 1-0022 failed with error -11
    [    0.980360] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
    [    0.981791] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
    [    0.983174] omap_i2c 20030000.i2c: bus 3 rev0.12 at 100 kHz
    [    0.983697] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created
    [��  0.984090] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created
    [    0.984579] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.031776] printk: console [ttyS2]: printing thread started
    [    1.002966] ti-bcdma 485c0100.dma-controller: Number of rings: 68
    [    1.031812] printk: console [ttyS2] enabled
    [    1.031817] printk: bootconsole [ns16550a0] disabled
    [    1.052724] printk: bootconsole [ns16550a0]: printing thread stopped
    [    1.070166] spi-nor spi0.0: s28hs512t (65536 Kbytes)
    [    1.070210] 7 cmdlinepart partitions found on MTD device fc40000.spi.0
    [    1.070216] Creating 7 MTD partitions on "fc40000.spi.0":
    [    1.070225] 0x000000000000-0x000000100000 : "ospi.tiboot3"
    [    1.076316] 0x000000100000-0x000000300000 : "ospi.tispl"
    [    1.077821] 0x000000300000-0x000000700000 : "ospi.u-boot"
    [    1.079180] 0x000000700000-0x000000740000 : "ospi.env"
    [    1.080785] 0x000000740000-0x000000780000 : "ospi.env.backup"
    [    1.082273] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
    [    1.083680] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
    [    1.159958] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.162119] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    1.162266] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903
     Ports: 3 quirks:00000002
    [    1.163608] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
    [    1.164262] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
    [    1.164278] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    1.165176] pps pps0: new PPS source ptp0
    [    1.165519] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [    1.180119] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
    [    1.184261] mmc0: CQHCI version 5.10
    [    1.202186] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
    [    1.221322] ALSA device list:
    [    1.221338]   No soundcards found.
    [    1.229243] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    1.248152] Waiting for root device PARTUUID=aaeb814c-02...
    [    1.321521] mmc0: Command Queue Engine enabled
    [    1.321555] mmc0: new HS400 MMC card at address 0001
    [    1.322426] mmcblk0: mmc0:0001 S0J56X 14.8 GiB 
    [    1.322669] mmcblk0boot0: mmc0:0001 S0J56X partition 1 31.5 MiB
    [    1.322888] mmcblk0boot1: mmc0:0001 S0J56X partition 2 31.5 MiB
    [    1.323136] mmcblk0rpmb: mmc0:0001 S0J56X partition 3 4.00 MiB, chardev (237:0)
    

  • Is this on AM64x EVM or your custom board?

    Does Linux boot before you did the modification for PCIe endpoint mode?

  • No, it's not a custom board we are using AM64X EVM.

    And yes linux boots before (If I don't plug PCIe extension cable then it boots)

  • Is there anyone?

  • Please attach your kernel patch.

  • I use default ti-processor-sdk-linux-rt-am64xx-evm-08.02.00.23 linux kernel (linux-rt-5.10.100+gitAUTOINC+204ec708dc-g204ec708dc) without any modification or patches.

    Just changed configs to enable endpoint and device-tree for PCI endpoint mode mentioned in J7-SDK

  • Just changed configs to enable endpoint and device-tree for PCI endpoint mode mentioned in J7-SDK

    I need to see the diff of your configs and the diff of the device tree changes.

  • 3872..config.zip (default config file tisdk_am64xx-evm-rt_defconfig)

    Here is diff of config:

    1805c1805
    < CONFIG_PCI_ENDPOINT_TEST=m
    ---
    > CONFIG_PCI_ENDPOINT_TEST=y
    

    and device-tree of endpoint (k3-am642-evm.dts)

    @@ -711,13 +711,14 @@ &pcie0_rc {
            phys = <&serdes0_pcie_link>;
            phy-names = "pcie-phy";
            num-lanes = <1>;
    +       status = "disabled";
     };
     
     &pcie0_ep {
            phys = <&serdes0_pcie_link>;
            phy-names = "pcie-phy";
            num-lanes = <1>;
    -       status = "disabled";
    +       status = "okay";
     };
     
     &tscadc0 {

    And lastly here is Root-complex's device-tree

    diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
    index 96f90ebf28..11ce30d948 100644
    --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
    @@ -694,6 +694,7 @@ &mailbox0_cluster7 {
     
     &serdes_ln_ctrl {
            idle-states = <AM64_SERDES0_LANE0_PCIE0>;
    +       status = "okay";
     };
     
     &serdes0 {
    @@ -706,11 +707,16 @@ serdes0_pcie_link: phy@0 {
            };
     };
     
    +&serdes_wiz0 {
    +       status = "okay";
    +};
    +
     &pcie0_rc {
            reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
            phys = <&serdes0_pcie_link>;
            phy-names = "pcie-phy";
            num-lanes = <1>;
    +       status = "okay";
     };
     
     &pcie0_ep {

  • I am applying these patches and will test it on my EVM.

    And yes linux boots before (If I don't plug PCIe extension cable then it boots)

    Meanwhile, can you please confirm if Linux boots with the PCIe endpoint mode without PCIe cable connected?

    You mentioned two variables - PCIe RC/EP mode and with/without PCIe cable. I want to know which scenarios boot and which don't.

  • I set CONFIG_PCI_ENDPOINT_TEST=y in kernel config and enabled &pcie0_ep in k3-am642-evm.dts, but I can still boot into Linux login prompt with the new kernel Image and k3-am642-evm.dtb. I don't have the PCIe cable plugged in though, but I doubt it affects Linux boot.

    I suspect your issue is not PCIe related, but something in the SD card detect. Please try with different SD card (different speed class).

  • If I don't plug PCIe extension cable, then Yes, Endpoint linux boots and I see login prompt. But our purpose is using it as pci endpoint and we follow every instruction in J7 SDK manual.

    Let me try to use mmc and OSPI bootmode. I will inform soon.

  • I used OSPI and linux boots. (I don't understand why cannot use SD card which come from AM64 box)

    And I see this message on Host device: "01:00.0 Non-VGA unclassified device: Cadence Design Systems, Inc. Device 0100"

    But I cannot see /dev/pci* on the Endpoint device.

  • Hi! The subject owner is currently out of the office. Please allow a couple of days for a response. Thanks.

  • Mr Dannenberg,

    Is it possible to communicate two AM64GPEVM board via PCIe?

  • Is there any progress?

  • Onur, thanks for your patience. I checked, the subject owner only will be back around middle of this week. Please allow some additional time. Thanks.

  • Isn't there anyone else in Texas Instruments who can help us?