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.

Linux/AM5728: EDMA use of DSP L2SRAM

Part Number: AM5728
Other Parts Discussed in Thread: SYSBIOS,

Tool/software: Linux

Hi.

we compled that DSP(c66x) send heap copying shared memoy(CMEM) of linux to McASP.

we knew that EDMA send heap memory to McASP above process.

but, When we run video decoding, deinterlace, GPU(vivante, SGX), EDMA have problem.

I knew that Sillicon Errat say "i868 — McASP to EDMA Synchronization Level Event Can Be Lost.".

and then, we try to modify from heap memory to L2SRAM of DSP. but we have run time error.

DSP.cfg

var HeapMem      = xdc.useModule('ti.sysbios.heaps.HeapMem');
var l2sramheapMemParams   = new HeapMem.Params;
l2sramheapMemParams.size   = 2560;
l2sramheapMemParams.sectionName = "L2SRAM"
Program.global.myHeap    = HeapMem.create(l2sramheapMemParams); 

audioSample_io.c

static Void prime(void)

#define L2SRAM_SUPPORT

 IHeap_Handle iheap;

...

#ifdef L2SRAM_SUPPORT
    iheap = HeapMem_Handle_to_xdc_runtime_IHeap(myHeap);
#else
   iheap = NULL;   /* default heap */   
#endif

 ...

 rxbuf[count] = Memory_calloc(iheap, rx_frame_size,BUFALIGN, &eb);

 ....

  /* rxbuf[0] addr(@00800000)  rxbuf[1] addr(@00800200) */
  Log_info2(" rxbuf[%d] addr(%p) \n", count, rxbuf[count] );        

...

status = mcaspSubmitChan(hMcaspRxChan, &(rxFrame[count]));

}

ti-processor-sdk-rtos\ipc_3_46_00_02\packages\ti\ipc\remoteproc\rsc_table_vayu_dsp.h

...

struct my_resource_table ti_ipc_remoteproc_ResourceTable = {

....

{
   TYPE_DEVMEM,
   DSP_PERIPHERAL_L2SRAM, L3_PERIPHERAL_L2SRAM,
   L2SRAM_SIZE, 0, 0, "DSP_L2SRAM",
    },

};

1. we find ** 2761 printk messages dropped ** [   10.377149] 44000000.ocp:L3 Standard Error: MASTER DSP1_DMA TARGET GPMC (Read): At Address: 0x40800308 : Data Access in Supervisor mode during Functional access */

   as follwing below.

#define DSP_PERIPHERAL_L2SRAM    0x40800000
#define L3_PERIPHERAL_L2SRAM    0x40800000
#define L2SRAM_SIZE       0x40000

2. we find  omap-iommu 40d01000.mmu: iommu fault: da 0x408001c0 flags 0x0

#define DSP_PERIPHERAL_L2SRAM    0x800000
#define L3_PERIPHERAL_L2SRAM    0x40800000
#define L2SRAM_SIZE       0x40000

2. we find  omap-iommu 40d01000.mmu: iommu fault: da 0x408001c0 flags 0x0

#define DSP_PERIPHERAL_L2SRAM    0x800000
#define L3_PERIPHERAL_L2SRAM    0x800000
#define L2SRAM_SIZE       0x40000

How do i EDMA use L2SRAM of DSP(c66x) ?

Thanks a lot.

  • The RTOS team have been notified. They will respond here.
  • JOONHO LEE said:

    1. we find ** 2761 printk messages dropped ** [   10.377149] 44000000.ocp:L3 Standard Error: MASTER DSP1_DMA TARGET GPMC (Read): At Address: 0x40800308 : Data Access in Supervisor mode during Functional access */

    In general, this error indicates an illegal access on the L3 bridge. This can be caused by trying to access a clock-gated module or a wrong address. This could be due to an incorrect change to DTS file, incorrect hardware/clocking design, software bug, etc. In this case, the log indicates the error occurs when DSP1 DMA tries to access L2SRAM.

    JOONHO LEE said:

    2. we find  omap-iommu 40d01000.mmu: iommu fault: da 0x408001c0 flags 0x0

    This error indicates the DSP address 0x408001c0 is missing from the resource table. 

    Can you attach your full boot log? Have you made any modifications to the DTS file?

    Also, please see if the following threads help resolve your issue:

  • session.log
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.28-geed43d1050 (jhlee@ubunto-TI) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #116 SMP PREEMPT Wed May 30 20:00:22 KST 2018
    [    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
    [    0.000000] CPU: div instructions available: patching division code
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    [    0.000000] OF: fdt:Machine model: TI AM572x EVM Rev A3
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
    [    0.000000] OF: reserved mem: initialized node ipu2_cma@95800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
    [    0.000000] OF: reserved mem: initialized node dsp1_cma@99000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000009d000000, size 32 MiB
    [    0.000000] OF: reserved mem: initialized node dsp2_cma@9d000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000009f000000, size 8 MiB
    [    0.000000] OF: reserved mem: initialized node ipu1_cma@9f000000, compatible id shared-dma-pool
    [    0.000000] cma: Reserved 24 MiB at 0x00000000fe400000
    [    0.000000] Memory policy: Data cache writealloc
    [    0.000000] OMAP4: Map 0x00000000ffd00000 to fe600000 for dram barrier
    [    0.000000] DRA752 ES2.0
    [    0.000000] percpu: Embedded 13 pages/cpu @dff35000 s22092 r8192 d22964 u53248
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 445760
    [    0.000000] Kernel command line: console=ttyO9,115200n8 root=PARTUUID=575e1d6c-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 1569492K/1789952K available (8192K kernel code, 313K rwdata, 2420K rodata, 2048K init, 296K bss, 32044K reserved, 188416K cma-reserved, 1241088K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
    [    0.000000]       .init : 0xc0e00000 - 0xc1000000   (2048 kB)
    [    0.000000]       .data : 0xc1000000 - 0xc104e660   ( 314 kB)
    [    0.000000]        .bss : 0xc1050000 - 0xc109a130   ( 297 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] OMAP clockevent source: timer1 at 32786 Hz
    [    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 6.14MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
    [    0.000004] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
    [    0.000016] Switching to timer-based delay loop, resolution 162ns
    [    0.000321] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000329] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000740] Console: colour dummy device 80x30
    [    0.000758] WARNING: Your 'console=ttyO9' has been replaced by 'ttyS9'
    [    0.000764] This ensures that you still see kernel messages. Please
    [    0.000770] update your kernel commandline.
    [    0.000787] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
    [    0.000801] pid_max: default: 32768 minimum: 301
    [    0.000904] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000914] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.001499] CPU: Testing write buffer coherency: ok
    [    0.001708] /cpus/cpu@0 missing clock-frequency property
    [    0.001724] /cpus/cpu@1 missing clock-frequency property
    [    0.001736] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    0.001754] Setting up static identity map for 0x80200000 - 0x80200060
    [    0.080065] EFI services will not be available.
    [    0.170312] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    [    0.170400] Brought up 2 CPUs
    [    0.170413] SMP: Total of 2 processors activated (24.59 BogoMIPS).
    [    0.170421] CPU: All CPU(s) started in HYP mode.
    [    0.170427] CPU: Virtualization extensions available.
    [    0.170848] devtmpfs: initialized
    [    0.197666] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
    [    0.197891] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.197908] futex hash table entries: 512 (order: 3, 32768 bytes)
    [    0.201282] pinctrl core: initialized pinctrl subsystem
    [    0.202088] NET: Registered protocol family 16
    [    0.202942] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.203900] omap_hwmod: l3_main_2 using broken dt data from ocp
    [    0.311312] omap_hwmod: dcan1: _wait_target_disable failed
    [    0.420356] cpuidle: using governor ladder
    [    0.450381] cpuidle: using governor menu
    [    0.460057] OMAP GPIO hardware version 0.1
    [    0.474831] irq: no irq domain found for /ocp/l4@4a000000/scm@2000/pinmux@1400 !
    [    0.500387] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
    [    0.500398] hw-breakpoint: maximum watchpoint size is 8 bytes.
    [    0.500775] omap4_sram_init:Unable to allocate sram needed to handle errata I688
    [    0.500786] omap4_sram_init:Unable to get sram pool needed to handle errata I688
    [    0.501311] OMAP DMA hardware revision 0.0
    [    0.551375] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
    [    0.552656] edma 43300000.edma: memcpy is disabled
    [    0.557338] edma 43300000.edma: TI EDMA DMA engine driver
    [    0.561716] omap-iommu 40d01000.mmu: 40d01000.mmu registered
    [    0.561881] omap-iommu 40d02000.mmu: 40d02000.mmu registered
    [    0.562032] omap-iommu 58882000.mmu: 58882000.mmu registered
    [    0.562183] omap-iommu 55082000.mmu: 55082000.mmu registered
    [    0.562440] omap-iommu 41501000.mmu: 41501000.mmu registered
    [    0.562615] omap-iommu 41502000.mmu: 41502000.mmu registered
    [    0.565306] palmas 0-0058: Irq flag is 0x00000008
    [    0.592234] palmas 0-0058: Muxing GPIO 2f, PWM 0, LED 0
    [    0.596002] vtt_fixed: supplied by smps3
    [    0.641388] random: fast init done
    [    0.671977] vdd_3v3: supplied by regen1
    [    0.672193] aic_dvdd_fixed: supplied by vdd_3v3
    [    0.675366] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.675955] omap_i2c 4807c000.i2c: bus 4 rev0.12 at 400 kHz
    [    0.676152] media: Linux media interface: v0.10
    [    0.676199] Linux video capture interface: v2.00
    [    0.676236] pps_core: LinuxPPS API ver. 1 registered
    [    0.676244] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.676264] PTP clock support registered
    [    0.676297] EDAC MC: Ver: 3.0.0
    [    0.676987] omap-mailbox 4883c000.mailbox: omap mailbox rev 0x400
    [    0.677280] omap-mailbox 4883e000.mailbox: omap mailbox rev 0x400
    [    0.677566] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
    [    0.677848] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
    [    0.678186] Advanced Linux Sound Architecture Driver Initialized.
    [    0.678993] clocksource: Switched to clocksource arch_sys_counter
    [    0.689602] NET: Registered protocol family 2
    [    0.690105] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.690143] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
    [    0.690210] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.690256] UDP hash table entries: 256 (order: 1, 8192 bytes)
    [    0.690277] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
    [    0.690393] NET: Registered protocol family 1
    [    0.690716] RPC: Registered named UNIX socket transport module.
    [    0.690725] RPC: Registered udp transport module.
    [    0.690732] RPC: Registered tcp transport module.
    [    0.690740] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.691642] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
    [    0.694537] workingset: timestamp_bits=14 max_order=19 bucket_order=5
    [    0.702002] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.702729] NFS: Registering the id_resolver key type
    [    0.702749] Key type id_resolver registered
    [    0.702757] Key type id_legacy registered
    [    0.702800] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.703966] bounce: pool size: 64 pages
    [    0.704103] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.704113] io scheduler noop registered
    [    0.704121] io scheduler deadline registered
    [    0.704251] io scheduler cfq registered (default)
    [    0.708612] pinctrl-single 4a003400.pinmux: please update dts to use #pinctrl-cells = <1>
    [    0.709155] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
    [    0.712530] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [    0.712542] OF: PCI:   No bus range found for /ocp/axi@0/pcie@51000000, using [bus 00-ff]
    [    0.712575] OF: PCI:    IO 0x20003000..0x20012fff -> 0x00000000
    [    0.712597] OF: PCI:   MEM 0x20013000..0x2fffffff -> 0x20013000
    [    1.713977] dra7-pcie 51000000.pcie: phy link never came up
    [    1.714148] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [    1.714165] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    1.714176] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
    [    1.714186] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
    [    1.714566] PCI: bus0: Fast back to back transfers disabled
    [    1.714679] PCI: bus1: Fast back to back transfers enabled
    [    1.714795] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff]
    [    1.714811] pci 0000:00:00.0: BAR 1: assigned [mem 0x20020000-0x2002ffff]
    [    1.714825] pci 0000:00:00.0: PCI bridge to [bus 01]
    [    1.715047] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
    [    1.716072] backlight supply power not found, using dummy regulator
    [    1.778126] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    1.781351] 48422000.serial: ttyS7 at MMIO 0x48422000 (irq = 301, base_baud = 3000000) is a 8250
    [    1.782207] 4ae2b000.serial: ttyS9 at MMIO 0x4ae2b000 (irq = 302, base_baud = 3000000) is a 8250
    [    2.753871] console [ttyS9] enabled
    [    2.759306] omap_rng 48090000.rng: OMAP Random Number Generator ver. 20
    [    2.766072] [drm] Initialized
    [    2.770958] OMAP DSS rev 6.1
    [    2.774294] omapdss_dss 58000000.dss: bound 58001000.dispc (ops dispc_component_ops)
    [    2.782650] omapdss_dss 58000000.dss: bound 58040000.encoder (ops hdmi5_component_ops)
    [    2.792438] AUPERS INFO : display.c omapdss_register_display() disp_num_counter:0 display:1 
    [    2.800941] DBG : dssdev->name(hdmi) at omapdss_register_display
    [    2.807307] display@0 supply vcc not found, using dummy regulator
    [    2.813578] AUPERS INFO : display.c omapdss_register_display() disp_num_counter:0 display:0 
    [    2.822073] DBG : dssdev->name(lcd) at omapdss_register_display
    [    2.828153] display@1 supply vcc not found, using dummy regulator
    [    2.834385] AUPERS INFO : display.c omapdss_register_display() disp_num_counter:0 display:2 
    [    2.842878] DBG : dssdev->name(lcd1) at omapdss_register_display
    [    2.879637] brd: module loaded
    [    2.907867] loop: module loaded
    [    2.911617] at24 0-0050: 4096 byte 24c32 EEPROM, writable, 1 bytes/write
    [    2.921283] libphy: Fixed MDIO Bus: probed
    [    2.979021] davinci_mdio 48485000.mdio: davinci mdio revision 1.6
    [    2.985146] libphy: 48485000.mdio: probed
    [    3.003752] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver Micrel KSZ9031 Gigabit PHY
    [    3.013494] davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver Micrel KSZ9031 Gigabit PHY
    [    3.023702] cpsw 48484000.ethernet: Detected MACID = fc:0f:4b:ad:57:a2
    [    3.030391] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
    [    3.038677] cpsw 48484000.ethernet: cpsw: Detected MACID = fc:0f:4b:ad:57:a3
    [    3.047078] mousedev: PS/2 mouse device common for all mice
    [    3.052999] i2c /dev entries driver
    [    3.059225] gpio-fan gpio_fan: GPIO fan initialized
    [    3.065444] tmp102 0-0048: initialized
    [    3.074349] omap_hsmmc 4809c000.mmc: Got CD GPIO
    [    3.149350] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr25 mode
    [    3.155732] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr12 mode
    [    3.299892] ledtrig-cpu: registered to indicate activity on CPUs
    [    3.310555] NET: Registered protocol family 10
    [    3.325679] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    3.332052] NET: Registered protocol family 17
    [    3.336655] Key type dns_resolver registered
    [    3.341052] omap_voltage_late_init: Voltage driver support not added
    [    3.347495] Power Management for TI OMAP4+ devices.
    [    3.352587] Registering SWP/SWPB emulation handler
    [    3.366337] dmm 4e000000.dmm: initialized all PAT entries
    [    3.399031] DBG : tryt to call omapdss_device_is_connected. at hdmic_connect
    [    3.429542] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    3.436194] [drm] No driver support for vblank timestamp query.
    [    3.444747] mmc1: new DDR MMC card at address 0001
    [    3.453785] [drm] Enabling DMM ywrap scrolling
    [    3.460013] mmcblk1: mmc1:0001 Q2J54A 3.64 GiB 
    [    3.470208] mmcblk1boot0: mmc1:0001 Q2J54A partition 1 2.00 MiB
    [    3.470372] mmcblk1boot1: mmc1:0001 Q2J54A partition 2 2.00 MiB
    [    3.471321]  mmcblk1: p1 p2
    [    3.538202] Console: switching to colour frame buffer device 240x45
    [    3.570580] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
    [    3.610520] hctosys: unable to open rtc device (rtc0)
    [    3.616139] aic_dvdd_fixed: disabling
    [    3.619840] vmmcwl_fixed: disabling
    [    3.623513] ldousb: disabling
    [    3.626757] ALSA device list:
    [    3.629750]   No soundcards found.
    [    3.657128] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    3.665346] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    3.674248] devtmpfs: mounted
    [    3.678387] Freeing unused kernel memory: 2048K (c0e00000 - c1000000)
    [    3.834112] systemd[1]: System time before build time, advancing clock.
    [    3.870060] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    [    3.888464] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2017.05!
    
    [    3.929511] systemd[1]: Set hostname to <am57xx-evm>.
    [    4.126337] systemd[1]: dropbear.socket: Found ordering cycle on dropbear.socket/stop
    [    4.134259] systemd[1]: dropbear.socket: Found dependency on sysinit.target/start
    [    4.141827] systemd[1]: dropbear.socket: Found dependency on alignment.service/start
    [    4.149646] systemd[1]: dropbear.socket: Found dependency on basic.target/start
    [    4.156991] systemd[1]: dropbear.socket: Found dependency on sockets.target/start
    [    4.164558] systemd[1]: dropbear.socket: Found dependency on dropbear.socket/stop
    [    4.172108] systemd[1]: dropbear.socket: Breaking ordering cycle by deleting job alignment.service/start
    [ SKIP ] Ordering cycle found, skipping alignment.service
    [  OK  ] Listening on udev Control Socket.
    [  OK  ] Reached target Swap.
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on Journal Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [  OK  ] Listening on Syslog Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Journal Socket (/dev/log).
    [  OK  ] Created slice System Slice.
             Mounting Debug File System...
    [  OK  ] Created slice system-getty.slice.
             Starting Remount Root and Kernel File Systems...
    [    4.550965] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
    [  OK  ] Created slice system-serial\x2dgetty.slice.
             Mounting POSIX Message Queue File System...
             Mounting Temporary Directory...
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
             Starting Create Static Device Nodes in /dev...
             Starting Journal Service...
             Starting Setup Virtual Console...
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Reached target Paths.
    [  OK  ] Reached target Remote File Systems.
    [  OK  ] Created slice User and Session Slice.
    [  OK  ] Reached target Slices.
             Starting Load Kernel Modules...
    [    4.965225] cmemk: loading out-of-tree module taints kernel.
    [    4.971672] CMEMK module: reference Linux version 4.9.28
    [    4.977655] allocated heap buffer 0x40500000 of size 0x100000
    [    4.988823] allocated heap buffer 0xa0100000 of size 0x12800000
    [    4.988837] DBG : cmem_cma_npools(0) at cmem_init
    [    4.988847] cmemk initialized
    [  OK  ] Mounted Debug File System.
    [    5.017294] cryptodev: driver 1.8 loaded.
    [  OK  ] Mounted POSIX Message Queue File System.
    [    5.031658] GC320 IRQ: 356
    [    5.037652] Galcore version 5.0.11.33433
    [  OK  ] Mounted Temporary Directory.
    [  OK  ] Started Journal Service.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Started Setup Virtual Console.
    [  OK  ] Started Load Kernel Modules.
             Starting Apply Kernel Variables...
             Mounting Configuration File System...
             Starting udev Kernel Device Manager...
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Coldplug all Devices...
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Mounted Configuration File System.
    [  OK  ] Mounted /var/volatile.
    [  OK  ] Mounted /media/ram.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Apply Kernel Variables.
    [    5.683358] systemd-journald[118]: Received request to flush runtime journal from PID 1
             Starting Load/Save Random Seed...
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Load/Save Random Seed.
    [    6.023835] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@9f000000
    [    6.065841] remoteproc remoteproc0: 58820000.ipu is available
    [  OK  ] Started udev Coldplug all Devices.
    [    6.090918] omap-rproc 55020000.ipu: assigned reserved memory node ipu2_cma@95800000
    [    6.105509] remoteproc remoteproc1: 55020000.ipu is available
    [    6.115208] omap-rproc 40800000.dsp: assigned reserved memory node dsp1_cma@99000000
    [    6.133388] remoteproc remoteproc2: 40800000.dsp is available
    [    6.171448] omap-rproc 41000000.dsp: assigned reserved memory node dsp2_cma@9d000000
    [    6.208144] remoteproc remoteproc3: 41000000.dsp is available
    [    6.372197] remoteproc remoteproc1: powering up 55020000.ipu
    [    6.378709] remoteproc remoteproc1: Booting fw image dra7-ipu2-fw.xem4, size 3743164
    [    6.397075] remoteproc remoteproc0: powering up 58820000.ipu
    [    6.397086] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 4872056
    [    6.397181] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
    [    6.397971] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
    [    6.400183] omap-des 480a5000.des: will run requests pump with realtime priority
    [    6.441866] palmas-rtc 48070000.i2c:tps659038@58:tps659038_rtc: rtc core: registered 48070000.i2c:tps659 as rtc1
    [    6.511255] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1
    [    6.553805] remoteproc remoteproc2: powering up 40800000.dsp
    [    6.553814] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 6787236
    [    6.560471] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [    6.560500] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [    6.560576] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [    6.572901] omap_rtc 48838000.rtc: rtc core: registered 48838000.rtc as rtc2
    [    6.649984] pixcir_ts 4-005c: pixcir_set_power_mode: can't read reg 0x33 : -121
    [    6.649988] pixcir_ts 4-005c: Failed to set IDLE mode
    [    6.650060] pixcir_ts: probe of 4-005c failed with error -121
    [    6.652122] mt9t11x 4-003c: input-clock-freq: 32000000
    [    6.652126] mt9t11x 4-003c: pixel-clock-freq: 96000000
    [    6.680864] mt9t11x 4-003c: Product ID error ffffff87
    [    6.713058] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin
    [    6.752932] remoteproc remoteproc3: powering up 41000000.dsp
    [    6.752942] remoteproc remoteproc3: Booting fw image dra7-dsp2-fw.xe66, size 4943592
    [    6.759606] omap_hwmod: mmu0_dsp2: _wait_target_disable failed
    [    6.759636] omap-iommu 41501000.mmu: 41501000.mmu: version 3.0
    [    6.759728] omap-iommu 41502000.mmu: 41502000.mmu: version 3.0
    [    6.767857] SCSI subsystem initialized
    [    6.786405] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    6.796837] vip 48990000.vip: loading firmware vpdma-1b8.bin
    [    6.811734] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
    [    6.819217] vpe 489d0000.vpe: Device registered as /dev/video0
    [    6.906719] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
    [    6.909262] omap-aes 4b500000.aes: will run requests pump with realtime priority
    [    6.949577] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
    [    6.960112] omap-aes 4b700000.aes: will run requests pump with realtime priority
    [    6.961065] ahci 4a140000.sata: SSS flag set, parallel bus scan disabled
    [    6.961085] ahci 4a140000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    [    6.961092] ahci 4a140000.sata: flags: 64bit ncq sntf stag pm led clo only pmp pio slum part ccc apst 
    [    7.099256] vip 48990000.vip: VPDMA firmware loaded
    [    7.170269] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    7.170290] remoteproc remoteproc0: registered virtio0 (type 7)
    [    7.170295] remoteproc remoteproc0: remote processor 58820000.ipu is now up
    [    7.201390] scsi host0: ahci
    [    7.201712] ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a1410ff] port 0x100 irq 345
    [    7.219335] [drm] Initialized pvr 1.14.3699939 20110701 on minor 1
    [    7.450147] virtio_rpmsg_bus virtio1: rpmsg host is online
    [    7.450174] remoteproc remoteproc1: registered virtio1 (type 7)
    [    7.450181] remoteproc remoteproc1: remote processor 55020000.ipu is now up
    [    7.494847] virtio_rpmsg_bus virtio1: creating channel rpmsg-rpc addr 0x65
    [    7.494960] virtio_rpmsg_bus virtio1: creating channel rpmsg-rpc addr 0x66
    [    7.495464] virtio_rpmsg_bus virtio2: rpmsg host is online
    [    7.495481] remoteproc remoteproc3: registered virtio2 (type 7)
    [    7.495486] remoteproc remoteproc3: remote processor 41000000.dsp is now up
    [    7.509148] virtio_rpmsg_bus virtio2: creating channel rpmsg-proto addr 0x3d
    [    7.512134] virtio_rpmsg_bus virtio3: rpmsg host is online
    [    7.512157] remoteproc remoteproc2: registered virtio3 (type 7)
    [    7.512162] remoteproc remoteproc2: remote processor 40800000.dsp is now up
    [    7.517390] ------------[ cut here ]------------
    [    7.517403] WARNING: CPU: 0 PID: 526 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x25c/0x36c
    [    7.517408] 44000000.ocp:L3 Standard Error: MASTER DSP1_MDMA TARGET GPMC (Read): At Address: 0x408001C0 : Data Access in User mode during Functional access
    [    7.517477] Modules linked in: pvrsrvkm(O) ahci_platform libahci_platform omap_aes_driver libahci omap_sham pruss_soc_bus libata ti_vip omap_wdt scsi_mod ti_vpe ti_sc ti_csc ti_vpdma rtc_omap dwc3_omap extcon_palmas extcon_core mt9t11x pixcir_i2c_ts rtc_palmas omap_des des_generic crypto_engine omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel uio_module_drv(O) uio gdbserverproxy(O) galcore(O) cryptodev(O) cmemk(O)
    
    Hi.

    we modify dra7.dtsi  as you indicate url related L3 interconnect .

    < dra7.dtsi >

    dsp1: dsp@40800000 {

    compatible = "ti,dra7-dsp";

    reg = <0x40800000 0x40000>,

         <0x40e00000 0x8000>,

         <0x40f00000 0x8000>;

    reg-names = "l2ram", "l1pram", "l1dram";

    ti,hwmods = "dsp1";

    syscon-bootreg = <&scm_conf 0x55c>;

    iommus = <&mmu0_dsp1>, <&mmu1_dsp1>;

    ti,rproc-standby-info = <0x4a005420>;

    status = "okay";

    };

    It always have error(you can see session.log(attached file))  whenever c66x run mcaspSubmitChan of audioSample_io.c above source(status = mcaspSubmitChan(hMcaspRxChan, &(rxFrame[count]));)

    If I add infinite sleep before calling mcaspSubmitChan, It don't have error.

    then, I wonder if EDMA can access l2sram of dsp1  when EDMA have this src address(l2sram of dsp1).

    static Void prime(void)

    {

    ...

    /* rxbuf[0] addr(@00800000)  rxbuf[1] addr(@00800200) */

     Log_info2(" rxbuf[%d] addr(%p) \n", count, rxbuf[count] );        

    ...

    rxFrame[count].addr = (void*)(getGlobalAddr((uint32_t)rxbuf[count])); // /* rxFrame[0] addr(@40800000)   */

    ..

    Task_sleep(999999999);// infinite sleep

    status = mcaspSubmitChan(hMcaspRxChan, &(rxFrame[count]));

    ...

    }

    our resource information of dsp1(c66x) is as below.

    <rsc_table_vayu_dsp.h>

    #define DSP_PERIPHERAL_L2SRAM 0x40800000
    #define L3_PERIPHERAL_L2SRAM 0x40800000
    #define L2SRAM_SIZE    0x40000

    our dsp1.map is as following.

    OUTPUT FILE NAME:   <bin/debug/server_dsp1.xe66>
    ENTRY POINT SYMBOL: "ti_sysbios_family_c64p_Hwi0"  address: 950fe400


    MEMORY CONFIGURATION

             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      L2SRAM                00800000   00040000  00000a00  0003f600  RW X
      OCMC_RAM1             40300000   00080000  00000000  00080000  RW X
      OCMC_RAM2             40400000   00100000  00000000  00100000  RW X
      OCMC_RAM3             40500000   00100000  00002580  000fda80  RW X
      EXT_CODE              95000000   03000000  0150137e  01afec82  RW X
      EXT_DATA              98000000   00200000  0000fe42  001f01be  RW X
      EXT_HEAP              98200000   00200000  00000000  00200000  RW X
      TRACE_BUF             9f000000   00060000  00010004  0004fffc  RW X
      EXC_DATA              9f060000   00010000  00000000  00010000  RW X
      PM_DATA               9f070000   00020000  00000000  00020000  RW X

    we found that  edma can access l2sram of dsp at https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/109418.

    we knew if EDMA access l2sram of DSP1, this address is from 0x40800000.

    but we don't find differnt thing between our souce/config and  https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/109418.

    Thanks a lot.

  • Hello,

    The AM5728 has 3 EDMAs total, one for each DSP and one SoC EDMA. Do you know which EDMA you are using?

    By default, the McASP example uses EDMA instance 0 which corresponds to the SoC EDMA. You can see this defined in mcasp_cfg.h as "EDMACC_NUM." The ARM is probably using the SoC EDMA as well, which would be causing conflicts.

    The easiest solution would be to change your EDMA instance to 1 so that you are using the local DSP EDMA instead of the SoC EDMA. Give this a try and let me know how it goes.
  • Hi.
    We can solve it as you say about EDMA instance 0 and 1.
    I can say that how to EDMA access L2SRAM of DSP as below it.
    1. #define EDMACC_NUM 1 at mcasp_cfg.h
    2. rxFrame[count].addr must be from 00800000 not 0x40800000, because It use EDMA of DSP.

    Thanks very a lot.
  • Thank you for providing the update. I'm glad to hear it's been resolved.