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.

OMAP-L137 - ARM + DSP system - DSPLINK + EDMA

Other Parts Discussed in Thread: DA8XX

Dear Sir/Madam,

I have a system with DSP and ARM. ARM and DSP exchange some data via two channels build by DSPLINK between them. When I want to configure EDMA on DSP side, EDMA3 driver creation by EDMA3_DRV_create function is halted and the execution does not exit. By the way, when I run the DSP code on Code Composer Studio without ARM involved all thing is OK and the EDMA is configured. The .tcf file is uploaded.

My memory configuration is as follows:


MEMORY CONFIGURATION

name       origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
IRAM                       11808000 00030000 00000cf0 0002f310 RWIX
CACHE_L2           11838000 00008000 00000000 00008000 RWIX
CACHE_L1P         11e00000 00008000 00000000 00008000 RWIX
CACHE_L1D         11f00000 00008000 00000000 00008000 RWIX
L3_CBA_RAM       80000000 00020000 00020000 00000000 RWIX
SDRAM0                c2000000 01e00000 00e3395c 00fcc6a4 RWIX
RESET_VECTOR c3e00000 00000080 00000000 00000080 RWIX
SDRAM                   c3e00080 000fff80 000e9d8b 000161f5 RWIX
DSPLINKMEM       c3f00000 00030000 00000000 00030000 RWIX
POOLMEM              c3f30000 000d0000 00000000 000d0000 RWIX

My code to configure EDMA3 is as follows:

EDMA3_DRV_Result edma3Result = EDMA3_DRV_SOK;
;EDMA3_DRV_GblConfigParams *globalConfig = &sampleEdma3GblCfgParamsOMAPL137; //set global config to defaults in sample Params (located in bios_edma3_drv_sample_OMAPL137_cfg.c)
EDMA3_RM_MiscParam miscParam; // used in DRV_create() function to specify master/slave
EDMA3_DRV_InitConfig initCfg;
EDMA3_DRV_InstanceInitConfig *instanceConfig = &sampleInstInitConfigOMAPL137; // located in bios_edma3_drv_sample_OMAPL137_cfg.c
initCfg.isMaster = TRUE;
initCfg.regionId = (EDMA3_RM_RegionId)1u; // user must specify region (LLD/DRV does not support "global" region)
initCfg.drvSemHandle = &OsSem; // OsSem added statically in the .tcf file with an initial count of 1*/
initCfg.drvInstInitConfig = instanceConfig; // device-specific configuration - resources owned by region 1
initCfg.gblerrCb = NULL; // callback function to catch channel controller errors such as TCC error, queue threshold exceeded, etc.
initCfg.gblerrData = NULL; // any data required by the error callback function

miscParam.isSlave = FALSE; //ARM + DSP, specify who is the master, single-chip = use FALSE

edma3Result = EDMA3_DRV_create(edma3InstanceId, globalConfig, (void *)&miscParam); //the execution is stopped at this point

 TCF.zipI would be very very thankful if somebody can help me.

Regards,

J.J.

 

  • Hi,
    For which peripheral are you configuring the EDMA3 driver.
    Please make sure that you have not used the same EDMA3 channel in Linux driver.

    You can refer to the following link for avoiding the resource conflict.
    processors.wiki.ti.com/.../OMAP-L137_Audio_Drivers_in_the_DSP_%2B_Linux

    You can refer to the below E2E post, its from DM6446 but its also davinci and ARM+DSP processor with video core.

    https://e2e.ti.com/support/embedded/linux/f/354/p/104964/504621

  • Dear Titus,

    Thank you for your response but In the driver creation step by EDMA3_DRV_create(), channel configuration is not done. 

    Regards,

    J.J.

  • My problem have not be yet solved. When I want to run EDMA3_DRV_create(). The function does not exit and the system is halted. 

    J.J.

  • Hi Jone,
    Sorry for the delayed response.
    I request you to disable the SPI,MMC,Audio,McBSP support in linux kernel through "make menuconfig" option and do EDMA related stuff since EDMA3 support might be enabled in linux too.

    Also provide the linux boot up log of both old and newly modified kernel (disabled EDMA related peripherals; SPI,MMC,Audio,McBSP)

    Please try this and let me know how goes....
  • Dear Titus,
    Thank you
    There is an important point here. Not in this step but in the following steps I will need Audio, MMC, and SPI on Linux side. Therefore, this peripherals should be included in the Linux OS. The current Linux boot up log as follows:

    U-Boot 1.3.3 (Jun 28 2012 - 13:59:37)
    I2C: ready
    DRAM: 64 MB
    In: serial
    Out: serial
    Err: serial
    ARM Clock : 300000000 Hz
    More than one PHY detected.
    Hit any key to stop autoboot: 0
    4096 KiB W25Q32 at 0:0 is now current device
    ## Booting kernel from Legacy Image at c0700000 ...
    Image Name: Linux-2.6.18_pro500-da830_omapl1
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 1808112 Bytes = 1.7 MB
    Load Address: c0008000
    Entry Point: c0008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux......................................................................................................................... done, booting the kernel.
    Linux version 2.6.18_pro500-da830_omapl137_evm-arm_v5t_le (naser@linuxnaser) (gcc version 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)) #1 PREEMPT Sun Aug 11 13:28:57 3
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    Machine: DaVinci DA8XX EVM
    Memory policy: ECC disabled, Data cache writethrough
    DA830 variant 0x9
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    Built 1 zonelists. Total pages: 8192
    Kernel command line: console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=172.16.3.101:/home/naser/workdir/filesys,nolock mem=32M
    PID hash table entries: 256 (order: 8, 1024 bytes)
    Clock event device timer0_0 configured with caps set: 07
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    Memory: 32MB = 32MB total
    Memory: 28508KB available (3100K code, 634K data, 176K init)
    Security Framework v1.0.0 initialized
    Capability LSM initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    DaVinci: 128 gpio irqs
    Generic PHY: Registered new driver
    usbcore: registered new driver usbfs
    usbcore: registered new driver hub
    NET: Registered protocol family 2
    IP route cache hash table entries: 256 (order: -2, 1024 bytes)
    TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    TCP bind hash table entries: 512 (order: -1, 2048 bytes)
    TCP: Hash tables configured (established 1024 bind 512)
    TCP reno registered
    NetWinder Floating Point Emulator V0.97 (double precision)
    VFS: Disk quotas dquot_6.5.1
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    squashfs: version 3.1 (2006/08/19) Phillip Lougher
    JFFS version 1.0, (C) 1999, 2000 Axis Communications AB
    JFFS2 version 2.2. (NAND) (SUMMARY) (C) 2001-2006 Red Hat, Inc.
    yaffs Aug 11 2013 13:26:52 Installing.
    SGI XFS with no debug enabled
    Initializing Cryptographic API
    io scheduler noop registered
    io scheduler anticipatory registered (default)
    LTT : ltt-facilities init
    LTT : ltt-facility-core init in kernel
    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec
    Serial: 8250/16550 driver $Revision: 1.90 $ 3 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO map 0x1c42000 mem 0xfec42000 (irq = 25) is a 16550A
    serial8250.0: ttyS1 at MMIO map 0x1c20400 mem 0xfed0c000 (irq = 53) is a 16550A
    serial8250.0: ttyS2 at MMIO map 0x1d0d000 mem 0xfed0d000 (irq = 61) is a 16550A
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    Davinci EMAC MII Bus: probed
    MAC address is 00:0e:99:03:18:e8
    TI DaVinci EMAC Linux version updated 4.0
    i2c /dev entries driver
    Creating 3 MTD partitions on "Windbond spi nand flash":
    0x00000000-0x00040000 : "U-Boot"
    0x00040000-0x00044000 : "U-Boot Environment"
    0x00044000-0x00400000 : "Linux"
    dm_spi.0: davinci SPI Controller driver at 0xc285c000 (irq = 20) use_dma=1
    dm_spi.1: davinci SPI Controller driver at 0xc285e000 (irq = 56) use_dma=1
    ohci ohci.0: DA8xx OHCI
    ohci ohci.0: new USB bus registered, assigned bus number 1
    Waiting for USB PHY clock good...
    ohci ohci.0: irq 59, io mem 0x01e25000
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    usbcore: registered new driver libusual
    musb_hdrc: version 6.0, cppi4.1-dma, host, debug=0
    Waiting for USB PHY clock good...
    musb_hdrc: USB Host mode controller at c2860000 using DMA, IRQ 58
    musb_hdrc musb_hdrc: MUSB HDRC host driver
    musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2
    usb usb2: configuration #1 chosen from 1 choice
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    mice: PS/2 mouse device common for all mice
    rtc-da8xx rtc-da8xx.0: rtc intf: proc
    rtc-da8xx rtc-da8xx.0: rtc intf: dev (254:0)
    rtc-da8xx rtc-da8xx.0: rtc core: registered rtc-da8xx as rtc0
    rtc-da8xx rtc-da8xx.0: TI DA8xx Real Time Clock driver.
    davinci-mmc davinci-mmc.0: Supporting 8-bit mode
    davinci-mmc davinci-mmc.0: Supporting 4-bit mode
    davinci-mmc davinci-mmc.0: Using DMA mode
    Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
    ASoC version 0.13.1
    AIC3X Audio Codec 0.2
    asoc: aic3x <-> davinci-i2s mapping ok
    ALSA device list:
    #0: DA8XX EVM (aic3x)
    IPv4 over IPv4 tunneling driver
    TCP bic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    rtc-da8xx rtc-da8xx.0: setting the system clock to 2000-01-09 01:17:00 (947380620)
    Time: timer0_1 clocksource has been installed.
    Clock event device timer0_0 configured with caps set: 08
    Switched to high resolution mode on CPU 0
    Sending DHCP requests ..., OK
    IP-Config: Got DHCP answer from 0.0.0.0, my address is 172.16.3.109
    IP-Config: Gateway not on directly connected network.
    Looking up port of RPC 100003/2 on 172.16.3.101
    Looking up port of RPC 100005/1 on 172.16.3.101
    VFS: Mounted root (nfs filesystem).
    Freeing init memory: 176K
    INIT: version 2.86 booting
    Starting the hotplug events dispatcher: udevd.
    Synthesizing the initial hotplug events...done.
    Waiting for /dev to be fully populated...done.
    Activating swap...done.
    Remounting root filesystem...done.
    Calculating module dependencies
    Loading modules:
    Checking all file systems: fsck
    fsck 1.40 (29-Jun-2007)
    Mounting local filesystems: mount nothing was mounted
    umount.nfs: /dev/root: not found or not mounted
    Setting up networking ....
    /etc/network/options is deprecated.
    Setting up IP spoofing protection: rp_filter done.
    Disabling IPv4 packet forwarding: done.
    Disabling TCP/IP Explicit Congestion Notification: done.
    Starting network interfaces: done.
    Starting hotplug subsystem:
    pci
    pci [success]
    usb
    usb [success]
    isapnp
    isapnp [success]
    ide
    ide [success]
    input
    input [success]
    scsi
    scsi [success]
    done.
    Starting portmap daemon....
    Cleaning: /tmp /var/lock /var/run done.
    Updating /etc/motd...done.
    INIT: Entering runlevel: 3
    Starting system log daemon: syslogdNET: Registered protocol family 10
    6WIND/LSIIT IPv6 multicast forwarding 0.1 plus PIM-SM/SSM with *BSD API
    lo: Disabled Privacy Extensions
    IPv6 over IPv4 tunneling driver
    Mobile IPv6
    klogd.
    Starting NFS common utilities: statd.
    Starting internet superserver: inetd.
    Starting OpenBSD Secure Shell server: sshd/var/empty/sshd must be owned by root and not group or world-writable.
    failed (255: ).
    Last login: Sun Jan 9 01:15:23 2000 on console
    Linux 172.16.3.109 2.6.18_pro500-da830_omapl137_evm-arm_v5t_le #1 PREEMPT Sun Aug 11 13:28:57 IRDT 2013 armv5tejl GNU/Linux

    Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921).


    Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921).

    -bash: no job control in this shell
    root@172.16.3.109:~#
  • Dear Titus,

    I disabled SPI,MMC, Audio. MCBSP wan not in the configuration menus. The problem still continues to persist. The boot up log after disabling is as follows:

    U-Boot 1.3.3 (Jun 28 2012 - 13:59:37)

    I2C: ready
    DRAM: 64 MB
    In: serial
    Out: serial
    Err: serial
    ARM Clock : 300000000 Hz
    More than one PHY detected.
    Hit any key to stop autoboot: 0
    4096 KiB W25Q32 at 0:0 is now current device
    ## Booting kernel from Legacy Image at c0700000 ...
    Image Name: Linux-2.6.18_pro500-da830_omapl1
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 1710392 Bytes = 1.6 MB
    Load Address: c0008000
    Entry Point: c0008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux.................................................................................................................. done, booting the kernel.
    Linux version 2.6.18_pro500-da830_omapl137_evm-arm_v5t_le (naser@linuxnaser) (gcc version 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)) #1 PREEMPT Wed Aug 12 11:17:16 5
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    Machine: DaVinci DA8XX EVM
    Memory policy: ECC disabled, Data cache writethrough
    DA830 variant 0x9
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    Built 1 zonelists. Total pages: 8192
    Kernel command line: console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=172.16.3.101:/home/naser/workdir/filesys,nolock mem=32M
    PID hash table entries: 256 (order: 8, 1024 bytes)
    Clock event device timer0_0 configured with caps set: 07
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    Memory: 32MB = 32MB total
    Memory: 28724KB available (2920K code, 603K data, 172K init)
    Security Framework v1.0.0 initialized
    Capability LSM initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    DaVinci: 128 gpio irqs
    Generic PHY: Registered new driver
    usbcore: registered new driver usbfs
    usbcore: registered new driver hub
    NET: Registered protocol family 2
    IP route cache hash table entries: 256 (order: -2, 1024 bytes)
    TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    TCP bind hash table entries: 512 (order: -1, 2048 bytes)
    TCP: Hash tables configured (established 1024 bind 512)
    TCP reno registered
    NetWinder Floating Point Emulator V0.97 (double precision)
    VFS: Disk quotas dquot_6.5.1
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    squashfs: version 3.1 (2006/08/19) Phillip Lougher
    JFFS version 1.0, (C) 1999, 2000 Axis Communications AB
    JFFS2 version 2.2. (NAND) (SUMMARY) (C) 2001-2006 Red Hat, Inc.
    yaffs Aug 12 2015 11:15:00 Installing.
    SGI XFS with no debug enabled
    Initializing Cryptographic API
    io scheduler noop registered
    io scheduler anticipatory registered (default)
    LTT : ltt-facilities init
    LTT : ltt-facility-core init in kernel
    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec
    Serial: 8250/16550 driver $Revision: 1.90 $ 3 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO map 0x1c42000 mem 0xfec42000 (irq = 25) is a 16550A
    serial8250.0: ttyS1 at MMIO map 0x1c20400 mem 0xfed0c000 (irq = 53) is a 16550A
    serial8250.0: ttyS2 at MMIO map 0x1d0d000 mem 0xfed0d000 (irq = 61) is a 16550A
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    Davinci EMAC MII Bus: probed
    MAC address is 00:0e:99:03:18:e8
    TI DaVinci EMAC Linux version updated 4.0
    i2c /dev entries driver
    ohci ohci.0: DA8xx OHCI
    ohci ohci.0: new USB bus registered, assigned bus number 1
    Waiting for USB PHY clock good...
    ohci ohci.0: irq 59, io mem 0x01e25000
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    usbcore: registered new driver libusual
    musb_hdrc: version 6.0, cppi4.1-dma, host, debug=0
    Waiting for USB PHY clock good...
    musb_hdrc: USB Host mode controller at c2860000 using DMA, IRQ 58
    musb_hdrc musb_hdrc: MUSB HDRC host driver
    musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2
    usb usb2: configuration #1 chosen from 1 choice
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    mice: PS/2 mouse device common for all mice
    rtc-da8xx rtc-da8xx.0: rtc intf: proc
    rtc-da8xx rtc-da8xx.0: rtc intf: dev (254:0)
    rtc-da8xx rtc-da8xx.0: rtc core: registered rtc-da8xx as rtc0
    rtc-da8xx rtc-da8xx.0: TI DA8xx Real Time Clock driver.
    IPv4 over IPv4 tunneling driver
    TCP bic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    rtc-da8xx rtc-da8xx.0: setting the system clock to 2000-01-10 20:55:38 (947537738)
    Time: timer0_1 clocksource has been installed.
    Clock event device timer0_0 configured with caps set: 08
    Switched to high resolution mode on CPU 0
    Sending DHCP requests .., OK
    IP-Config: Got DHCP answer from 0.0.0.0, my address is 172.16.3.109
    IP-Config: Gateway not on directly connected network.
    Looking up port of RPC 100003/2 on 172.16.3.101
    Looking up port of RPC 100005/1 on 172.16.3.101
    VFS: Mounted root (nfs filesystem).
    Freeing init memory: 172K
    INIT: version 2.86 booting
    Starting the hotplug events dispatcher: udevd.
    Synthesizing the initial hotplug events...done.
    Waiting for /dev to be fully populated...done.
    Activating swap...done.
    Remounting root filesystem...done.
    Calculating module dependencies
    Loading modules:
    Checking all file systems: fsck
    fsck 1.40 (29-Jun-2007)
    Mounting local filesystems: mount nothing was mounted
    umount.nfs: /dev/root: not found or not mounted
    Setting up networking ....
    /etc/network/options is deprecated.
    Setting up IP spoofing protection: rp_filter done.
    Disabling IPv4 packet forwarding: done.
    Disabling TCP/IP Explicit Congestion Notification: done.
    Starting network interfaces: done.
    Starting hotplug subsystem:
    pci
    pci [success]
    usb
    usb [success]
    isapnp
    isapnp [success]
    ide
    ide [success]
    input
    input [success]
    scsi
    scsi [success]
    done.
    Starting portmap daemon....
    Cleaning: /tmp /var/lock /var/run done.
    Updating /etc/motd...done.
    INIT: Entering runlevel: 3
    Starting system log daemon: syslogdNET: Registered protocol family 10
    6WIND/LSIIT IPv6 multicast forwarding 0.1 plus PIM-SM/SSM with *BSD API
    lo: Disabled Privacy Extensions
    IPv6 over IPv4 tunneling driver
    Mobile IPv6
    klogd.
    Starting NFS common utilities: statd.
    Starting internet superserver: inetd.
    Starting OpenBSD Secure Shell server: sshd/var/empty/sshd must be owned by root and not group or world-writable.
    failed (255: ).
    Last login: Mon Jan 10 20:54:15 2000 on console
    Linux 172.16.3.109 2.6.18_pro500-da830_omapl137_evm-arm_v5t_le #1 PREEMPT Wed Aug 12 11:17:16 IRDT 2015 armv5tejl GNU/Linux

    Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921).


    Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921).


    Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921).


    Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921).

    -bash: no job control in this shell
    root@172.16.3.109:~#

  • Dear Sir/Madam,

    What is the problem with the system? I have not the source code of the EDMA3_DRV_create function, therefore I have no idea about why the function does not return?!!!!! I cannot trace the problem. I disabled Audio, SPI, and MMC but the problem is not solved. 

    I would very thankful if you can help me

    J.J.

  • Dear Titus,

    What is the problem in your opinion?

    J.J.