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.

IPC start failed in ex02_messageq example

Other Parts Discussed in Thread: TCI6636K2H

I have installed ti-processor-sdk-linux-k2e-evm and ti-processor-sdk-rtos-k2e-evm and rebuilt the IPC library successfully. Then I build the ex02_messageq example and get two files named app_host and server_core0.xe66. I download these files into the k2e evm below "/lib/firmware" folder. But when I run the app_host and get the info. as follows.

root@k2e-evm:~# ./app_host -l
--> main:
Processor List
Error: main_host.c, line 201: Ipc_start failed
<-- main:
root@k2e-evm:~# ./app_host DSP
--> main:
^CIpc: Caught SIGINT, calling Ipc_stop...
root@k2e-evm:~# ./app_host -h
--> main:
Usage:
    app_host [options] procName

Arguments:
    procName      : the name of the remote processor

Options:
    h   : print this help message
    l   : list the available remote names

Examples:
    app_host DSP
    app_host -l
    app_host -h

I failed to start IPC and it seemed the program can't find the other core. My app_host.c list as follows.

/*
 * Copyright (c) 2013-2015 Texas Instruments Incorporated - http://www.ti.com
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * *  Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * *  Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * *  Neither the name of Texas Instruments Incorporated nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 *  ======== main_host.c ========
 *
 */

/* cstdlib header files */
#include <stdio.h>
#include <stdlib.h>

/* package header files */
#include </usr/local/ti/ipc_3_42_00_02/ipc_3_42_00_02_lib/include/ti/ipc/Std.h>
#include </usr/local/ti/ipc_3_42_00_02/ipc_3_42_00_02_lib/include/ti/ipc/Ipc.h>

#include </usr/local/ti/ipc_3_42_00_02/ipc_3_42_00_02_lib/include/ti/ipc/transports/TransportRpmsg.h>

#include </usr/local/ti/ipc_3_42_00_02/ipc_3_42_00_02_lib/include/ti/ipc/MultiProc.h>

/* local header files */
#include "App.h"

/* private functions */
static Int Main_main(Void);
static Int Main_parseArgs(Int argc, Char *argv[]);


#define Main_USAGE "\
Usage:\n\
    app_host [options] procName\n\
\n\
Arguments:\n\
    procName      : the name of the remote processor\n\
\n\
Options:\n\
    h   : print this help message\n\
    l   : list the available remote names\n\
\n\
Examples:\n\
    app_host DSP\n\
    app_host -l\n\
    app_host -h\n\
\n"

/* private data */
static String   Main_remoteProcName = NULL;


/*
 *  ======== main ========
 */
Int main(Int argc, Char* argv[])
{
    Int status;

    printf("--> main:\n");

    /* parse command line */
    status = Main_parseArgs(argc, argv);

   
    if (status < 0) {
        goto leave;
	}

    /* configure the transport factory */
    Ipc_transportConfig(&TransportRpmsg_Factory);

     
    /* Ipc initialization */
    status = Ipc_start();

    if (status >= 0) {
        /* application create, exec, delete */
        status = Main_main();

        /* Ipc finalization */
        Ipc_stop();
    }
    else {
        printf("Ipc_start failed: status = %d\n", status);
        goto leave;
    }

leave:
    printf("<-- main:\n");
    status = (status >= 0 ? 0 : status);

    return (status);
}


/*
 *  ======== Main_main ========
 */
Int Main_main(Void)
{
    UInt16      remoteProcId;
    Int         status = 0;

    printf("--> Main_main:\n");

    remoteProcId = MultiProc_getId(Main_remoteProcName);

    /* application create phase */
    status = App_create(remoteProcId);

    if (status < 0) {
        goto leave;
    }

    /* application execute phase */
    status = App_exec();

    if (status < 0) {
        goto leave;
    }

    /* application delete phase */
    status = App_delete();

    if (status < 0) {
        goto leave;
    }

leave:
    printf("<-- Main_main:\n");

    status = (status >= 0 ? 0 : status);
    return (status);
}


/*
 *  ======== Main_parseArgs ========
 */
Int Main_parseArgs(Int argc, Char *argv[])
{
    Int             x, cp, opt, argNum;
    UInt16          i, numProcs;
    String          name;
    Int             status = 0;


    /* parse the command line options */
    for (opt = 1; (opt < argc) && (argv[opt][0] == '-'); opt++) {
        for (x = 0, cp = 1; argv[opt][cp] != '\0'; cp++) {
            x = (x << 8) | (int)argv[opt][cp];
        }

        switch (x) {
            case 'h': /* -h */
                printf("%s", Main_USAGE);
                exit(0);
                break;

            case 'l': /* -l */
                printf("Processor List\n");
                status = Ipc_start();
                if (status >= 0) {
                    numProcs = MultiProc_getNumProcessors();
                    for (i = 0; i < numProcs; i++) {
                        name = MultiProc_getName(i);
                        printf("    procId=%d, procName=%s\n", i, name);
                    }
                    Ipc_stop();
                }
                else {
                    printf(
                        "Error: %s, line %d: Ipc_start failed\n",
                        __FILE__, __LINE__);
                    goto leave;
                }
                exit(0);
                break;

            default:
                printf(
                    "Error: %s, line %d: invalid option, %c\n",
                    __FILE__, __LINE__, (Char)x);
                printf("%s", Main_USAGE);
                status = -1;
                goto leave;
        }
    }

    /* parse the command line arguments */
    for (argNum = 1; opt < argc; argNum++, opt++) {

        switch (argNum) {
            case 1: /* name of proc #1 */
                Main_remoteProcName = argv[opt];
                break;

            default:
                printf(
                    "Error: %s, line %d: too many arguments\n",
                    __FILE__, __LINE__);
                printf("%s", Main_USAGE);
                status = -1;
                goto leave;
        }
    }

    /* validate command line arguments */
    if (Main_remoteProcName == NULL) {
        printf("Error: missing procName argument\n");
        printf("%s", Main_USAGE);
        status = -1;
        goto leave;
    }

leave:
    return(status);
}

I think there must be some steps between download the server_core0.xe66 and app_host and run the app_host. Can you tell me what's it?


  • I have installed ti-processor-sdk-linux-k2e-evm and ti-processor-sdk-rtos-k2e-evm and rebuilt the IPC library successfully. Then I build the ex02_messageq example and get two files named app_host and server_core0.xe66. I download these files into the k2e evm below "/lib/firmware" folder. But when I run the app_host and get the info. as follows.

    Have you tried to load and run the "server_core0.xe66" on DSP core manually using mpmcl utility ?
  • Hi Titusrathinaraj, I have tried to load and run server_core0.xe66 on DSP before running the app_host. But when I run the app_host, it still get failed to start IPC.

  • Hi,

    The procName is listed in  ./ti/sdo/ipc/family/Settings.xs.

     Try the following.........

    To run the ex02_example on K2H/K2E, you need type the command

    root@k2hk-evm:~/ex02ex# ./app_host CORE0

     

    And similarly to communicate with CORE1, you need type ‘./app_host CORE1’, however, it seems there is a bug in Core1.cfg (and others), the MultiProc should set as the followings:

     

    MultiProc.setConfig("CORE1", ["HOST", "CORE0", "CORE1", "CORE2", "CORE3", "CORE4", "CORE5", "CORE6", "CORE7"]);

    Instead of

    MultiProc.setConfig("CORE0", ["HOST", "CORE0"];

     

  • Hi Shankari, I try the ./app_host CORE0 command but it seems the same as the ./app_host DSP command and the ./app_host -l still fails. My EVM is K2E which only has one DSP core so I think MultiProc doesn't have an influence.

    Let's back to the start point and I sort out what I have done as follows.

    1. I download the SDK both RTOS and Linux version and get the ipc_3_42_00_02 folder and ti-processor-sdk-linux-k2e-evm-02.00.01.07 folder.

    2. I edit the products.mak in ipc_3_42_00_02 folder(content will be list below) and use the commands "make distclean"/"make –f ipc-linux.mak config"/"make"/"make install"/"make -f ipc-bios.mak all" to get ipc_3_42_00_02_lib and ti_platforms_evmC66AK2E_core0 folders.

    3. I edit the products.mak in ex02_messageq folder(content will be list below) and use the command "make" to get bin folder both in core0 folder and host folder. Server_core0.xe66 exists in ex02_messageq/core0/bin/debug folder and app_host exists in ex02_messageq/host/bin/debug folder.

    PS. In this step, it appears some errors say it can't find some head file so I change the path of head file to find them correctly.

    4. I download the file server_core0.xe66 and app_host into the root path(/home/root) of Linux on K2E and I use the command "mpmcl load dsp0 server_core0.xe66" and "mpmcl run dsp0" successful. But when I use command "./app_host -l", it fails.

    Does the path I download in Linux on K2E have an influence? Should I  download the ipc_3_42_00_02_lib and ti_platforms_evmC66AK2E_core0 folders into Linux too?

    I wll be so grateful to get your reply. Thanks!

    Code in products.mak in ipc_3_42_00_02 folder
    
    DEPOT = /usr/local/ti
    PLATFORM = 66AK2E
    DESTDIR = /usr/local/ti/ipc_3_42_00_02/ipc_3_42_00_02_lib
    TOOLCHAIN_LONGNAME = arm-linux-gnueabihf
    TOOLCHAIN_INSTALL_DIR = /usr/local/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf
    TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-
    KERNEL_INSTALL_DIR = /usr/local/ti/ti-processor-sdk-linux-k2e-evm-02.00.01.07/board-support/linux-4.1.13+gitAUTOINC+8dc66170d9-g8dc6617
    XDC_INSTALL_DIR = /usr/local/ti/xdctools_3_32_00_06_core
    BIOS_INSTALL_DIR = /usr/local/ti/bios_6_45_01_29
    BIOS_SMPENABLED=1
    ti.targets.elf.C66 = /usr/local/ti/ccsv6/tools/compiler/C6000CGT7.4.4

    Code in products.mak in ex02_messageq folder
    
    # look for other products.mak file to override local settings
    ifneq (,$(wildcard $(EXBASE)/../products.mak))
    include $(EXBASE)/../products.mak
    else
    ifneq (,$(wildcard $(EXBASE)/../../products.mak))
    include $(EXBASE)/../../products.mak/
    # Define IPC_INSTALL_DIR since not defined in IPC top-level products.mak
    IPC_INSTALL_DIR = $(word 1,$(subst /examples, examples,$(CURDIR)))
    endif
    endif
    
    TOOLCHAIN_LONGNAME = arm-linux-gnueabihf
    TOOLCHAIN_INSTALL_DIR = /usr/local/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf
    TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-
    BIOS_INSTALL_DIR       = /usr/local/ti/bios_6_45_01_29
    IPC_INSTALL_DIR        = /usr/local/ti/ipc_3_42_00_02
    XDC_INSTALL_DIR        = /usr/local/ti/xdctools_3_32_00_06_core
    ti.targets.elf.C66     = /usr/local/ti/ccsv6/tools/compiler/C6000CGT7.4.4

  • Just do like this.

    1. Build the ex02 example setting the appropriate paths in the products.mak file.

    2. Loaded "server_core0.xe66" on dsp0 using mpmcl like below.

    >mpmcl load dsp0 server_core0.xe66

    3. Run the binary like below:

    >mpmcl run dsp0 server_core0.xe66

    4. Launch app_host like below.

    >./app_host CORE0

  • Hi, user425211123
    I also have the problem as you. I compile it sucessfully, and load the program into the dsp by using mpmcl command.
    But when I run mpmcl dsp0 run, there is a message about faild to launch the remoteProc tarace0.
    Then ,I run ./app_host CORE0, there is a problem as you.

    My Platform is : TCI6636K2H, EVMK2H
    IPC version: ipc_3_42_00_02

    ---------------------------
    Xiaop
  • Hi, Shankari G
    Could you post you product.mak file for me, I have compiled it, run and load program the same as you,
    But I don't have the same results as you. I want to know does it have any relationship to Linux filesystem version?
    Or there something I need to configure. My Evaluation Module is EVMK2H. I will appreciate for your answer.

    There are 2 questions I can't figure it out:

    Q1: Why I load the dsp program and run the program, there is a message like "booting unspecified device"?

    Q2:Why I ca'n't open the virio0 as you posted

    IPC verison: ipc_3_42_00_02

    MCSDK:mcsdk_linux_3_01_04_07

    Platform: EVMK2H

    ----------------
    Regards,
    xiaop

  • I do as you say and my info. shows as follow.

    My info. after the mpmcl "load" command and "run" command is quite different from yours. I think I build the file server_core0.xe66 wrong. Can you pass me the products.mak both in ipc_3_42_00_02 folder and ex02_messageq folder?

  • Hi xiaop,
    I suggest you to use the latest processor SDK Linux for running ex02 IPC example, I experimented it and got success.
    software-dl.ti.com/.../index_FDS.html

    Let me know if any problem.
  • Hi user425211123,

    I've attached the 'products.mak' file and built binaries.

    I didn't do any changes to run the ex02 IPC example, but need some changes for K2H, for that I will update the solution in IPC FAQs wiki page soon.

    Just I flashed the K2E UBI filesystem on NAND and copied the attached ex02 built binaries and ran the example as I given in the screen shot.

    products.mak

    install_k2e.tar.gz

    Please let me know for any issues.

  • I have downloaded the file install_k2e.tar.gz you gave me and run it as the screen shot below but nothing changed. It seems that there are something different between the default filesystem on K2E board and the K2E UBI filesystem you flash. I will try to flash it and I will let you know afterwards.

      

  • Hi Shankari G, can you tell the whole name of your bin file flashed on NAND and where I can found it? I have just found one name "nand.bin" located in "mcsdk_bios_3_01_04_07/tools/program_evm/binaries/evmk2e" folder. Is it the right one? And did you flash it by using DSS script or something like that?

  • Hi,

    The name of the binary is " tisdk-server-rootfs-image-k2e-evm.ubi " from processor SDK 2.0.2.

    Please download processor SDK 2.0.2.
  • Hi, Shankari

     I'm a little problem about the latest "ti-processor-sdk-linux-k2hk-evm-02.00.02.11-Linux-X86-Install.bin".
    This software I can't setup in my ubuntu14.04-i386-desktop, is that means this software must be installed in
    Ubuntu14.04/12.04-amd64-desktop?

    I'm trying to booting my EVMK2H by using NFS-mounted File System. However, there are some problems that I can;t figure it out.

    I have configure my ubuntu host and uboot environment correctly according to the Keystone II Manual Lab3 Boot Using NFS-mounted File System.

    From the booting information I know that tftp work well, and get the image correctly. But , when it comes to mounting the filesystem it is failed.

    Booting information shows below, and the Lab manual is attatched here. I just want to update my filesystem by using nfs filesystem, but it is kind of hard


    for me...

    Lab Manual:15.Keystone II ARM Demo-Lab Manual_V2.pdf

    Platform: EVMK2H

    MCSDK: 3.0.3.15

    U-Boot 2013.01-00004-g0c2f8a2 (Aug 16 2013 - 19:04:15)
    
    I2C:   ready
    DRAM:  2 GiB
    NAND:  512 MiB
    Net:   TCI6638_EMAC, TCI6638_EMAC1
    Hit any key to stop autoboot:  0
    BOOTP broadcast 1
    DHCP client bound to address 192.168.1.4
    Using TCI6638_EMAC device
    TFTP from server 192.168.1.103; our IP address is 192.168.1.4
    Filename '//uImage-k2hk-evm.dtb'.
    Load address: 0x87000000
    Loading: ####
             2.3 MiB/s
    done
    Bytes transferred = 57857 (e201 hex)
    BOOTP broadcast 1
    DHCP client bound to address 192.168.1.4
    Using TCI6638_EMAC device
    TFTP from server 192.168.1.103; our IP address is 192.168.1.4
    Filename '//skern-keystone-evm.bin'.
    Load address: 0xc5f0000
    Loading: ####
             2.4 MiB/s
    done
    Bytes transferred = 45056 (b000 hex)
    BOOTP broadcast 1
    DHCP client bound to address 192.168.1.4
    Using TCI6638_EMAC device
    TFTP from server 192.168.1.103; our IP address is 192.168.1.4
    Filename '//uImage-keystone-evm.bin'.
    Load address: 0x88000000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             ############
             2.7 MiB/s
    done
    Bytes transferred = 3990416 (3ce390 hex)
    ## installed monitor, freq [194560000], status 194560000
    ## Booting kernel from Legacy Image at 88000000 ...
       Image Name:   Linux-3.10.10
       Created:      2013-11-24  21:26:00 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    3990352 Bytes = 3.8 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 87000000
       Booting using the fdt blob at 0x87000000
       Loading Kernel Image ... OK
    OK
       Using Device Tree in place at 87000000, end 87011200
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 3.10.10 (gtbldadm@ubuntu-12) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #1 SMP Sun Nov 24 16:25:07 EST 2013
    [    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c7387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    [    0.000000] Machine: KeyStone2, model: Texas Instruments Keystone 2 SoC
    [    0.000000] switching to high address space at 0x800000000
    [    0.000000] cma: CMA: reserved 16 MiB at 1f000000
    [    0.000000] Memory policy: ECC disabled, Data cache writealloc
    [    0.000000] DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map
    [    0.000000] PERCPU: Embedded 8 pages/cpu @c0be1000 s12032 r8192 d12544 u32768
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
    [    0.000000] Kernel command line: console=ttyS0,115200n8 rootwait=1 rootfstype=nfs root=/dev/nfs rw nfsroot=192.168.1.103:/opt/filesys,v3,tcp,rsize=4096,wsize=4096 ip=dhcp
    [    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: 512MB = 512MB total
    [    0.000000] Memory: 495100k/495100k available, 29188k reserved, 0K highmem
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc06ff570   (7134 kB)
    [    0.000000]       .init : 0xc0700000 - 0xc0752f00   ( 332 kB)
    [    0.000000]       .data : 0xc0754000 - 0xc0798e68   ( 276 kB)
    [    0.000000]        .bss : 0xc0798e68 - 0xc07c78bc   ( 187 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] Hierarchical RCU implementation.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] ipc irq: irqchip registered, range 512-539
    [    0.000000] main_pll_clk rate is 1167360000, postdiv = 2, mult = 18,prediv = 0
    [    0.000000] pll_clk parent_rate(122880000 Hz), rate(327680000 Hz),postdiv = 6, mult = 15, prediv = 0
    [    0.000000] Architected local timer running at 194.56MHz (phys).
    [    0.000000] Switching to timer-based delay loop
    [    0.000000] sched_clock: ARM arch timer >56 bits at 194560kHz, resolution 5ns
    [    0.000000] keystone timer clock @194560000 MHz
    [    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
    [    0.000000] Console: colour dummy device 80x30
    [    9.172616] Calibrating delay loop (skipped), value calculated using timer frequency.. 389.12 BogoMIPS (lpj=1945600)
    [    9.172625] pid_max: default: 4096 minimum: 301
    [    9.172740] Mount-cache hash table entries: 512
    [    9.180249] CPU: Testing write buffer coherency: ok
    [    9.180410] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    9.180422] Setting up static identity map for 0xc050a688 - 0xc050a6bc
    [    9.215681] CPU1: Booted secondary processor
    [    9.215705] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    [    9.250536] CPU2: Booted secondary processor
    [    9.250559] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
    [    9.285387] CPU3: Booted secondary processor
    [    9.285411] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
    [    9.285518] Brought up 4 CPUs
    [    9.285536] SMP: Total of 4 processors activated (1556.48 BogoMIPS).
    [    9.285540] CPU: All CPU(s) started in SVC mode.
    [    9.298224] NET: Registered protocol family 16
    [    9.299133] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    9.307829] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
    [    9.307835] hw-breakpoint: maximum watchpoint size is 8 bytes.
    [    9.316771] bio: create slab <bio-0> at 0
    [    9.317062] keystone-pcie: keystone_pcie_rc_init - start
    [    9.317144] keystone2_pcie_serdes_setup
    [    9.319164] keystone2_pcie_serdes_setup done, en_link_train = 1
    [    9.319196] keystone-pcie: MEM 0x0000000050000000..0x000000005fffffff -> 0x0000000050000000
    [    9.319204] keystone-pcie: IO 0x0000000024000000..0x0000000024003fff -> 0x0000000000000000
    [    9.319238] keystone-pcie: pcie - number of legacy irqs = 4
    [    9.319288] keystone-pcie: pcie - number of MSI host irqs = 8, msi_irqs = 32
    [    9.425541] keystone-pcie: Doing PCI Setup...Done
    [    9.425547] keystone-pcie: Starting PCI scan...
    [    9.425662] PCI host bridge to bus 0000:00
    [    9.425674] pci_bus 0000:00: root bus resource [mem 0x50000000-0x5fffffff]
    [    9.425681] pci_bus 0000:00: root bus resource [io  0x0000-0x3fff]
    [    9.425688] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
    [    9.425729] PCI: bus0: Fast back to back transfers enabled
    [    9.425744] keystone-pcie: Ending PCI scan...
    [    9.425751] keystone-pcie: keystone_pcie_rc_init - end
    [    9.425909] vgaarb: loaded
    [    9.426213] SCSI subsystem initialized
    [    9.426554] usbcore: registered new interface driver usbfs
    [    9.426635] usbcore: registered new interface driver hub
    [    9.426726] usbcore: registered new device driver usb
    [    9.427903] pca953x 2-0020: failed reading register
    [    9.427918] pca953x: probe of 2-0020 failed with error -121
    [    9.428080] pps_core: LinuxPPS API ver. 1 registered
    [    9.428086] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    9.428145] PTP clock support registered
    [    9.428268] keystone-hwqueue hwqueue.4: qmgr start queue 0, number of queues 8192
    [    9.428344] keystone-hwqueue hwqueue.4: added qmgr start queue 0, num of queues 8192, reg_peek e0840000, reg_status e0804000, reg_config e0806000, reg_region e0808000, reg_push e0880000, reg_pop e08c0000
    [    9.428352] keystone-hwqueue hwqueue.4: qmgr start queue 8192, number of queues 8192
    [    9.428421] keystone-hwqueue hwqueue.4: added qmgr start queue 8192, num of queues 8192, reg_peek e0900000, reg_status e080a400, reg_config e080c000, reg_region e080e000, reg_push e0940000, reg_pop e0980000
    [    9.429231] keystone-hwqueue hwqueue.4: qos: sched port @8096, drop sched @8000
    [    9.430126] keystone-hwqueue hwqueue.4: qos: sched port @6496, drop sched @6400
    [    9.431000] keystone-hwqueue hwqueue.4: added pool pool-net: 2048 descriptors of size 128
    [    9.431010] keystone-hwqueue hwqueue.4: added pool pool-rio: 128 descriptors of size 256
    [    9.431018] keystone-hwqueue hwqueue.4: added pool pool-udma: 1636 descriptors of size 256
    [    9.431027] keystone-hwqueue hwqueue.4: added pool pool-xge: 1024 descriptors of size 128
    [    9.431035] keystone-hwqueue hwqueue.4: added pool pool-crypto: 1024 descriptors of size 128
    [    9.432941] keystone-hwqueue hwqueue.4: registered queues 0-16383
    [    9.433222] keystone-hwqueue hwqueue.4: qos version 0x2000106, magic valid
    [    9.433705] keystone-hwqueue hwqueue.4: qos version 0x2000106, magic valid
    [    9.439004] keystone-pktdma 2004000.pktdma: registered 26 logical channels, flows 32, tx chans: 9, rx chans: 24
    [    9.441581] keystone-pktdma 2a08000.pktdma: registered 24 logical channels, flows 32, tx chans: 32, rx chans: 32, loopback
    [    9.442096] keystone-pktdma 2fa1000.pktdma: registered 4 logical channels, flows 32, tx chans: 16, rx chans: 16
    [    9.442222] Switching to clocksource arch_sys_counter
    [    9.457729] NET: Registered protocol family 2
    [    9.458068] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
    [    9.458129] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
    [    9.458185] TCP: Hash tables configured (established 4096 bind 4096)
    [    9.458214] TCP: reno registered
    [    9.458223] UDP hash table entries: 256 (order: 1, 8192 bytes)
    [    9.458237] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
    [    9.458399] NET: Registered protocol family 1
    [    9.458542] RPC: Registered named UNIX socket transport module.
    [    9.458548] RPC: Registered udp transport module.
    [    9.458552] RPC: Registered tcp transport module.
    [    9.458556] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    9.458870] hw perfevents: enabled with ARMv7 Cortex-A15 PMU driver, 7 counters available
    [    9.538574] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
    [    9.538749] NTFS driver 2.1.30 [Flags: R/O].
    [    9.538999] jffs2: version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.
    [    9.539303] msgmni has been set to 998
    [    9.540139] NET: Registered protocol family 38
    [    9.540340] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [    9.540347] io scheduler noop registered
    [    9.540352] io scheduler deadline registered
    [    9.540483] io scheduler cfq registered (default)
    [    9.541534] keystone-udma udma0.5: registered udma device udma0
    [    9.583447] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    [    9.584655] 2530c00.serial: ttyS0 at MMIO 0x2530c00 (irq = 309) is a 16550A
    [   10.379980] console [ttyS0] enabled
    [   10.383902] 2531000.serial: ttyS1 at MMIO 0x2531000 (irq = 312) is a 16550A
    [   10.393186] loop: module loaded
    [   10.396781] at24 0-0050: 131072 byte 24c1024 EEPROM, writable, 1 bytes/write
    [   10.404333] Generic platform RAM MTD, (c) 2004 Simtec Electronics
    [   10.411090] ONFI param page 0 valid
    [   10.414491] ONFI flash detected
    [   10.417563] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xac (Micron MT29F4G08ABBDAHC), 512MiB, page size: 2048, OOB size: 64
    [   10.428912] Bad block table found at page 262080, version 0x01
    [   10.435000] Bad block table found at page 262016, version 0x01
    [   10.440888] nand_read_bbt: bad block at 0x000000c80000
    [   10.445903] nand_read_bbt: bad block at 0x000000ca0000
    [   10.450969] 3 ofpart partitions found on MTD device 30000000.nand
    [   10.456918] Creating 3 MTD partitions on "30000000.nand":
    [   10.462185] 0x000000000000-0x000000100000 : "u-boot"
    [   10.467562] 0x000000100000-0x000000180000 : "params"
    [   10.472909] 0x000000180000-0x000020000000 : "ubifs"
    [   10.478350] davinci_nand 30000000.nand: controller rev. 2.5
    [   10.484352] spi_davinci 21000400.spi: master is unqueued, this is deprecated
    [   10.491478] m25p80 spi32766.0: found n25q128a11, expected n25q128
    [   10.497435] m25p80 spi32766.0: n25q128a11 (16384 Kbytes)
    [   10.502631] 2 ofpart partitions found on MTD device spi32766.0
    [   10.508320] Creating 2 MTD partitions on "spi32766.0":
    [   10.513337] 0x000000000000-0x000000080000 : "u-boot-spl"
    [   10.519010] 0x000000080000-0x000001000000 : "test"
    [   10.524466] spi_davinci 21000400.spi: Controller at 0xe0878400
    [   10.530442] spi_davinci 21000600.spi: master is unqueued, this is deprecated
    [   10.537334] spi_davinci 21000600.spi: Controller at 0xe087a600
    [   10.543309] spi_davinci 21000800.spi: master is unqueued, this is deprecated
    [   10.550188] spi_davinci 21000800.spi: Controller at 0xe087c800
    [   10.556784] libphy: GPIO Bitbanged MDIO: probed
    [   10.561919] mdio_bus gpio-ffffffed: cannot get PHY at address 0
    [   10.568398] mdio_bus gpio-ffffffed: cannot get PHY at address 1
    [   10.574248] tun: Universal TUN/TAP device driver, 1.6
    [   10.579174] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
    [   10.585620] keystone-netcp 2f00000.netcp: No streaming regs defined
    [   10.591833] keystone-netcp 2090000.netcp: cpts rftclk freq not defined
    [   10.598239] netif_napi_add() called with weight 128 on device eth%d
    [   10.605141] keystone-netcp 2090000.netcp: Created interface "eth0"
    [   10.611185] keystone-netcp 2090000.netcp: dma_chan_name nettx0
    [   10.617642] keystone-netcp 2090000.netcp: Created interface "eth1"
    [   10.623688] keystone-netcp 2090000.netcp: dma_chan_name nettx1
    [   10.630458] keystone-netcp 2f00000.netcp: Created interface "eth2"
    [   10.636492] keystone-netcp 2f00000.netcp: dma_chan_name xgetx0
    [   10.642542] keystone-netcp 2f00000.netcp: Created interface "eth3"
    [   10.648584] keystone-netcp 2f00000.netcp: dma_chan_name xgetx1
    [   10.655201] keystone-dwc3 2690000.dwc: usbss revision 47914b00
    [   10.660922] keystone-dwc3 2690000.dwc: mapped irq 425 to virq 608
    [   10.862973] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [   10.868334] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
    [   10.876355] xhci-hcd xhci-hcd.0.auto: irq 608, io mem 0x02690000
    [   10.882292] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [   10.888916] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   10.895969] usb usb1: Product: xHCI Host Controller
    [   10.900727] usb usb1: Manufacturer: Linux 3.10.10 xhci-hcd
    [   10.906083] usb usb1: SerialNumber: xhci-hcd.0.auto
    [   10.911171] hub 1-0:1.0: USB hub found
    [   10.914845] hub 1-0:1.0: 1 port detected
    [   10.918831] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [   10.924197] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
    [   10.931742] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
    [   10.938365] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   10.945418] usb usb2: Product: xHCI Host Controller
    [   10.950181] usb usb2: Manufacturer: Linux 3.10.10 xhci-hcd
    [   10.955532] usb usb2: SerialNumber: xhci-hcd.0.auto
    [   10.960603] hub 2-0:1.0: USB hub found
    [   10.964263] hub 2-0:1.0: 1 port detected
    [   10.968389] usbcore: registered new interface driver usb-storage
    [   10.974441] mousedev: PS/2 mouse device common for all mice
    [   10.980070] i2c /dev entries driver
    [   10.983996] watchdog 22f0080.wdt: heartbeat 60 sec
    [   10.999902] keystone-crypto 20c0000.crypto: crypto accelerator enabled
    [   11.006573] usbcore: registered new interface driver usbhid
    [   11.012018] usbhid: USB HID core driver
    [   11.016033]  remoteproc0: 2620040.dsp0 is available
    [   11.020800]  remoteproc0: Note: remoteproc is still under development and considered experimental.
    [   11.029548]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.039672]  remoteproc0: no firmware found
    [   11.043846] rproc-user 2620040.dsp0: registered misc device dsp0
    [   11.049906]  remoteproc1: 2620044.dsp1 is available
    [   11.054662]  remoteproc1: Note: remoteproc is still under development and considered experimental.
    [   11.063418]  remoteproc1: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.073540]  remoteproc1: no firmware found
    [   11.077736] rproc-user 2620044.dsp1: registered misc device dsp1
    [   11.083785]  remoteproc2: 2620048.dsp2 is available
    [   11.088553]  remoteproc2: Note: remoteproc is still under development and considered experimental.
    [   11.097310]  remoteproc2: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.107434]  remoteproc2: no firmware found
    [   11.111607] rproc-user 2620048.dsp2: registered misc device dsp2
    [   11.117666]  remoteproc3: 262004c.dsp3 is available
    [   11.122423]  remoteproc3: Note: remoteproc is still under development and considered experimental.
    [   11.131179]  remoteproc3: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.141308]  remoteproc3: no firmware found
    [   11.145489] rproc-user 262004c.dsp3: registered misc device dsp3
    [   11.151536]  remoteproc4: 2620050.dsp4 is available
    [   11.156303]  remoteproc4: Note: remoteproc is still under development and considered experimental.
    [   11.165054]  remoteproc4: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.175175]  remoteproc4: no firmware found
    [   11.179350] rproc-user 2620050.dsp4: registered misc device dsp4
    [   11.185408]  remoteproc5: 2620054.dsp5 is available
    [   11.190165]  remoteproc5: Note: remoteproc is still under development and considered experimental.
    [   11.198916]  remoteproc5: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.209038]  remoteproc5: no firmware found
    [   11.213214] rproc-user 2620054.dsp5: registered misc device dsp5
    [   11.219260]  remoteproc6: 2620058.dsp6 is available
    [   11.224026]  remoteproc6: Note: remoteproc is still under development and considered experimental.
    [   11.232775]  remoteproc6: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.242907]  remoteproc6: no firmware found
    [   11.247085] rproc-user 2620058.dsp6: registered misc device dsp6
    [   11.253142]  remoteproc7: 262005c.dsp7 is available
    [   11.257899]  remoteproc7: Note: remoteproc is still under development and considered experimental.
    [   11.266649]  remoteproc7: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [   11.276770]  remoteproc7: no firmware found
    [   11.280946] rproc-user 262005c.dsp7: registered misc device dsp7
    [   11.286824] rproc-user dspmem.3: kick gpio
    [   11.290926] rproc-user dspmem.3: registered misc device dspmem
    [   11.296903] oprofile: using arm/armv7-ca15
    [   11.300940] GACT probability on
    [   11.304003] Mirror/redirect action on
    [   11.307573] Failed to load ipt action
    [   11.311148] Simple TC action Loaded
    [   11.314926] netem: version 1.3
    [   11.317905] u32 classifier
    [   11.320550]     Performance counters on
    [   11.324288]     input device check on
    [   11.327855]     Actions configured
    [   11.331180] Netfilter messages via NETLINK v0.30.
    [   11.335774] nf_conntrack version 0.5.0 (7991 buckets, 31964 max)
    [   11.341976] ctnetlink v0.93: registering with nfnetlink.
    [   11.347379] ipip: IPv4 over IPv4 tunneling driver
    [   11.352329] gre: GRE over IPv4 demultiplexor driver
    [   11.357087] ip_gre: GRE over IPv4 tunneling driver
    [   11.362553] ip_tables: (C) 2000-2006 Netfilter Core Team
    [   11.367793] ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
    [   11.374025] arp_tables: (C) 2002 David S. Miller
    [   11.378559] TCP: cubic registered
    [   11.381788] Initializing XFRM netlink socket
    [   11.386412] NET: Registered protocol family 10
    [   11.391805] NET: Registered protocol family 17
    [   11.396151] NET: Registered protocol family 15
    [   11.400525] Bridge firewalling registered
    [   11.404438] Ebtables v2.0 registered
    [   11.455974] 8021q: 802.1Q VLAN Support v1.8
    [   11.460507] sctp: Hash tables configured (established 16384 bind 16384)
    [   11.467103] NET: Registered protocol family 41
    [   11.471573] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
    [   11.479070] Registering SWP/SWPB emulation handler
    [   11.487589] keystone-netcp 2090000.netcp: initializing cpsw version 1.3 (1) SGMII identification value 0x4ed1
    [   11.497387] keystone-netcp 2090000.netcp: Created a cpsw ale engine
    [   11.506367] pps pps0: new PPS source ptp0
    [   11.510293] cpts rftclk rate(583680000 HZ),mult(1839607018),shift(30)
    [   11.551368] keystone-netcp 2090000.netcp: Using Packet Accelerator Firmware version 0x02000104
    [   11.559784] keystone-netcp 2090000.netcp: pa_clk_rate(163840000 HZ),mult(25000),shift(12)
    [   11.571933] net eth0: netcp device eth0 opened
    [   11.578022] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   11.583720] 8021q: adding VLAN 0 to HW filter on device eth0
    [   11.589275] net eth0: adding rx vlan id: 0
    [   11.593723] keystone-netcp 2090000.netcp: initializing cpsw version 1.3 (1) SGMII identification value 0x4ed1
    [   11.608983] net eth1: netcp device eth1 opened
    [   11.613939] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    [   11.619681] 8021q: adding VLAN 0 to HW filter on device eth1
    [   11.625210] net eth1: adding rx vlan id: 0
    [   11.629661] keystone-netcp 2f00000.netcp: initialize cpsw version 1.1 (0) CPSW identification value 0x4ee3
    [   11.639262] keystone-netcp 2f00000.netcp: Created a cpsw ale engine
    [   11.645862] keystone-netcp 2f00000.netcp: phy not found on slave 0
    [   11.652248] net eth2: netcp device eth2 opened
    [   11.657853] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
    [   11.663551] 8021q: adding VLAN 0 to HW filter on device eth2
    [   11.669073] net eth2: adding rx vlan id: 0
    [   11.673522] keystone-netcp 2f00000.netcp: initialize cpsw version 1.1 (0) CPSW identification value 0x4ee3
    [   11.683114] keystone-netcp 2f00000.netcp: phy not found on slave 1
    [   11.689499] net eth3: netcp device eth3 opened
    [   11.694285] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready
    [   11.700018] 8021q: adding VLAN 0 to HW filter on device eth3
    [   11.705540] net eth3: adding rx vlan id: 0
    [   11.709589] IP-Config: Failed to open gretap0
    [   11.713860] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   11.720635] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   11.728343] Sending DHCP requests ., OK
    [   11.796467] IP-Config: Got DHCP answer from 192.168.1.103, my address is 192.168.1.4
    [   14.656601] net eth1: removing rx vlan id: 0
    [   15.035917] net eth2: removing rx vlan id: 0
    [   15.434764] net eth3: removing rx vlan id: 0
    [   15.439451] IP-Config: Complete:
    [   15.442600]      device=eth0, hwaddr=74:da:ea:57:84:93, ipaddr=192.168.1.4, mask=255.255.255.0, gw=255.255.255.255
    [   15.452709]      host=192.168.1.4, domain=example.org, nis-domain=(none)
    [   15.459258]      bootserver=192.168.1.103, rootserver=192.168.1.103, rootpath=
    [   15.466143]      nameserver0=192.168.1.103
    [   15.477830] VFS: Mounted root (nfs filesystem) on device 0:11.
    [   15.483684] Freeing unused kernel memory: 328K (c0700000 - c0752000)
    [   17.146850] dma dma0chan9: out of descriptors
    [   17.244128] dma dma0chan9: out of descriptors
    [   17.341408] dma dma0chan9: out of descriptors
    [   17.438688] dma dma0chan9: out of descriptors
    [   17.535968] dma dma0chan9: out of descriptors
    [   17.633248] dma dma0chan9: out of descriptors
    [   17.860058] dma dma0chan9: out of descriptors
    [   19.475079] dma dma0chan9: out of descriptors
    [   21.368788] dma dma0chan9: out of descriptors
    [   22.707765] dma dma0chan9: out of descriptors
    [   29.167510] dma dma0chan9: out of descriptors
    
    

  • Hi, Shankari

    I have solved the problem about mounting NFS filesystem. There are some keypoints about that:

    1. the /tftpboot and /nfs/filesys dir must have the user authority, however the default is root authority.So , there is need to use change owner command

    sudo chown -R /tftpboot /nfs/filesys

    2.I have updated the MCSDK version, the new version is MCSDK3.1.4.7, the filesystem I used for NFS mounting is

    tisdk.rootfs.k2hk-evm.tar.gz

    3.there are three images must be put into the tftpboot dir, list here

    skern-k2hk-evm.bin

    uImage-k2hk-evm.bin

    tisdk-rkeystone-evm.bin

    4.Change the the name of skern-k2hk-evm.bin to skern-keysonte-evm.bin. Uboot's environment refer to skern-k2hk-evm.bin rather the former,

    change a name of image is easier to reconfig uboot environment

    That's all, hope will help someone like me


    ------------------------------------------------

    Xiaop

  • Hi Xiaop,
    Glad to hear that you solved the problem.
    Thanks for the update.
  • Hi, Shankari

        Although I have booting EVMK2H by NFS file system successfully, the IPC example ex02_messageq still can not be run successful ly. Could you instruct me to solve this? I'm really frustrated about this problem. The file system and Linux kernel had be updated to MCSDK3.1.4. But the results remain wrong .

  • Hi Xiaop,
    As I said in the below post, I have experimented it with latest processor SDK.

    e2e.ti.com/.../515561

    Latest processor SDK download webpage for K2H board.
    software-dl.ti.com/.../index_FDS.html
  • Hi, Shankari

    I have noticed this point you post early. Updating EVMK2H to new filesystem by mounting nfs filesystem is

    the way I used to reserve my local filesystem. However, I tried kinds of different filesystem tarbar, no one is suit for

    this case. I also download ti-processor-sdk-linux-k2hk-evm.02.00.02.11, and use the tarbar named tisdk-server-rootfs-image-k2hk-evm.tar.gz,

    but I found that this one is also of no use.

    I have tried this example over 2 week, so I don't known whether should I cost more time for this example. For

    here, I want to implement a simple case which could transmit data between ARM and DSP. Compared to DSP IPC,

    communication between ARM and DSP is really frustrated to me. I can accomplish DSPs IPC according to IPC user

    guide, but there is few material about latter. Image procefssing demo is difficult to me, this example I think is suit to me

    to some extend, it is easier to understand and modified for using.

    Could you please tell me some example else for achiveing commnunication between ARM and DSP?  What's

    more, I'm really curious about how do you finish this example in your side. Could you tell me detail about the MCSDK version,

    PDK version, image about u-boot and linux kernal, and the filesystem tarbar you use?

    I will be appriciate for your answer. thanks in advance.

    -------------------------------------------------------------------------------------------

    Xiaop

  • Hi Xiaop,

    Follow these steps and let me know where do you get stuck!!.

    Go to ipc_3_42_00_02

    1. Build the ex02 example setting the appropriate paths in the products.mak file.

    2. Boot Linux on K2H.

    3. Copy all the binaries of ex02 example into the filesystem after booting linux on the target using pen drive.

    2. Load the "server_coreN.xe66" on dspN  (Where N = 0 - 7) using mpmcl like below.

    >mpmcl load dsp0 server_core0.xe66

    >mpmcl load dsp1 server_core1.xe66

    >mpmcl load dsp2 server_core2.xe66

    >mpmcl load dsp3 server_core3.xe66

    >mpmcl load dsp4 server_core4.xe66

    >mpmcl load dsp5 server_core5.xe66

    >mpmcl load dsp6 server_core6.xe66

    >mpmcl load dsp7 server_core7.xe66

    3. Run the binary like below:

    >mpmcl run dsp0

    >mpmcl run dsp1

    >mpmcl run dsp2

    >mpmcl run dsp3

    >mpmcl run dsp4

    >mpmcl run dsp5

    >mpmcl run dsp6

    >mpmcl run dsp7

    4. Launch app_host like below.

    >./app_host CORE0

    You will observe the messages like this.

  • Hi, Shankari

    I have tried this like the picture you posted. However there are something wrong when I run the dsp program

    in the linux , i.e., mpmcl run dsp0 which just like below

    the error message is erroneous trace resource entryI think the problem is that I can't open the virio for 

    communcation between ARM and DSP.

    1.I have update my MCSDK to latest version, and the filesystem tarbar is in the dir /opt/ti/mcsdk_linuxXXXX

    2. I have rebuilt the IPC libraray,the product.mak file is:

    products.txt
    #
    #   Copyright (c) 2012-2015 Texas Instruments Incorporated - http://www.ti.com
    #
    #   Redistribution and use in source and binary forms, with or without
    #   modification, are permitted provided that the following conditions
    #   are met:
    #
    #   *  Redistributions of source code must retain the above copyright
    #      notice, this list of conditions and the following disclaimer.
    #
    #   *  Redistributions in binary form must reproduce the above copyright
    #      notice, this list of conditions and the following disclaimer in the
    #      documentation and/or other materials provided with the distribution.
    #
    #   *  Neither the name of Texas Instruments Incorporated nor the names of
    #      its contributors may be used to endorse or promote products derived
    #      from this software without specific prior written permission.
    #
    #   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    #   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    #   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    #   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    #   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    #   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    #   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    #   OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    #   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    #   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    #   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    #  ======== products.mak ========
    #
    
    # Note that these variables can be explicitly set here or on the command line.
    # If you want to use variables in the environment, see the GNU make manual's
    # -e option:  http://www.gnu.org/software/make/manual/make.html#Environment
    
    # Optional: recommended to install all dependent components in one folder.
    #
    DEPOT = /opt/ti
    
    # Platform to build for
    #   Supported platforms (choose one):
    #       OMAPL138, OMAP54XX, DRA7XX, 66AK2G, 66AK2E, TCI6630, TCI6636, TCI6638,
    #       TDA3XX
    #
    # Note, this is used for Linux, QNX and BIOS builds
    #
    PLATFORM = TCI6636
    
    # Destination when installing the built binaries
    #
    # Note, this is used for Linux (if you use ipc-linux.mak to run the
    # configure command), QNX and BIOS.
    #
    DESTDIR = /opt/filesys/usr
    
    
    #################### IPC Linux ####################
    
    # Set up required cross compiler path for IPC Linux configuration and build
    #
    TOOLCHAIN_LONGNAME = arm-linux-gnueabihf
    TOOLCHAIN_INSTALL_DIR = /opt/ARMtools/gcc-linaro-arm-linux
    TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-
    
    # Path to Linux Kernel - needed to build the IPC user libraries
    #
    KERNEL_INSTALL_DIR = /opt/ti-processor-sdk-linux-k2hk-evm-02.00.02.11/board-support/linux-4.1.18+gitAUTOINC+bbe8cfc1da-gbbe8cfc
    
    # Optional: Specify the Address Family for RPMSG. This value is specified
    # either from the Linux kernel specified by KERNEL_INSTALL_DIR above, or
    # the make variable AF_RPMSG below. Do not use both.
    #
    AF_RPMSG =
    
    # Optional: Path to DRM Library
    #
    DRM_PREFIX =
    
    # Optional: Path to TI Linux Utils product
    #
    CMEM_INSTALL_DIR =
    
    
    #################### IPC QNX ####################
    
    # Path to QNX tools installation
    #
    QNX_INSTALL_DIR = /opt/ti/ipc_3_42_00_02/qnx
    
    # Optional: Any additional compile options
    #
    QNX_CFLAGS =
    
    #################### IPC Bios ####################
    
    # Path to required dependencies for IPC BIOS builds
    #
    XDC_INSTALL_DIR = $(DEPOT)/xdctools_3_32_00_06_core
    BIOS_INSTALL_DIR = $(DEPOT)/bios_6_45_01_29
    
    # Do you want to build SMP-enabled libraries (if supported for your target)?
    # Set to either 0 (disabled) or 1 (enabled)
    #
    BIOS_SMPENABLED=1
    
    # Path to various cgtools
    #
    ti.targets.elf.C64P =
    ti.targets.elf.C64P_big_endian =
    ti.targets.elf.C64T =
    ti.targets.elf.C66 = $(DEPOT)/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0
    ti.targets.elf.C66_big_endian =
    ti.targets.elf.C674 =
    
    ti.targets.arm.elf.Arm9 =
    ti.targets.arm.elf.A8F =
    ti.targets.arm.elf.A8Fnv =
    ti.targets.arm.elf.M3 =
    ti.targets.arm.elf.M4 =
    ti.targets.arm.elf.M4F =
    
    ti.targets.arp32.elf.ARP32 =
    ti.targets.arp32.elf.ARP32_far =
    
    gnu.targets.arm.A8F =
    gnu.targets.arm.A15F = $(DEPOT)/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3
    

    3.Then I make the ex02 example, the products.mak is :

    products_ex02.txt
    #
    #  Copyright (c) 2012-2015 Texas Instruments Incorporated - http://www.ti.com
    #  All rights reserved.
    #
    #  Redistribution and use in source and binary forms, with or without
    #  modification, are permitted provided that the following conditions
    #  are met:
    #
    #  *  Redistributions of source code must retain the above copyright
    #     notice, this list of conditions and the following disclaimer.
    #
    #  *  Redistributions in binary form must reproduce the above copyright
    #     notice, this list of conditions and the following disclaimer in the
    #     documentation and/or other materials provided with the distribution.
    #
    #  *  Neither the name of Texas Instruments Incorporated nor the names of
    #     its contributors may be used to endorse or promote products derived
    #     from this software without specific prior written permission.
    #
    #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    #  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    #  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    #  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    #  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    #  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    #  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    #  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    #  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    #  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    #  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    
    #
    #  ======== products.mak ========
    #
    
    # look for other products.mak file to override local settings
    ifneq (,$(wildcard $(EXBASE)/../products.mak))
    include $(EXBASE)/../products.mak
    else
    ifneq (,$(wildcard $(EXBASE)/../../products.mak))
    include $(EXBASE)/../../products.mak/
    # Define IPC_INSTALL_DIR since not defined in IPC top-level products.mak
    IPC_INSTALL_DIR = $(word 1,$(subst /examples, examples,$(CURDIR)))
    endif
    endif
    
    # By default, the necessary build variables are found/assigned via
    # ../products.mak or ../../products.mak, included above.  If you want to
    # override these variables, or are building this example without
    # ../products.mak or ../../products.mak, uncomment and assign the variables
    # below.
    
    DEPOT = /opt/ti
    #### Linux toolchain ####
    TOOLCHAIN_LONGNAME     = arm-linux-gnueabihf
    TOOLCHAIN_INSTALL_DIR  = /opt/ARMtools/gcc-linaro-arm-linux
    TOOLCHAIN_PREFIX       = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-
    
    #### BIOS-side dependencies ####
    BIOS_INSTALL_DIR       = $(DEPOT)/bios_6_45_01_29
    IPC_INSTALL_DIR        = $(DEPOT)/ipc_3_42_00_02
    XDC_INSTALL_DIR        = $(DEPOT)/xdctools_3_32_00_06_core
    
    #### BIOS-side toolchains ####
    gnu.targets.arm.A15F   = $(DEPOT)/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3
    ti.targets.elf.C66     = $(DEPOT)/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0
    
    # Use this goal to print your product variables.
    .show:
    	@echo "HOST TOOLCHAIN_PREFIX = $(TOOLCHAIN_PREFIX)"
    	@echo "BIOS_INSTALL_DIR      = $(BIOS_INSTALL_DIR)"
    	@echo "IPC_INSTALL_DIR       = $(IPC_INSTALL_DIR)"
    	@echo "XDC_INSTALL_DIR       = $(XDC_INSTALL_DIR)"
    	@echo "gnu.targets.arm.A15F  = $(gnu.targets.arm.A15F)"
    	@echo "ti.targets.elf.C66    = $(ti.targets.elf.C66)"
    

    4.the running picture attached below

     

    -------------------------QUESTION--------------------------------------

    1.I tried the latest version LINUX-PDK.2.XX, and use the filesystem tarbar you mentioned, but is is of no use.

    2. Do I must updated my EVM's UBoot?

    3.the kernel file I used is uImage-k2hk-evm.bin, rather zImage, does it have any problem with me ?

     

    -----------------------------------------

    Xiaop

  • Hi Xiaop,

    In step number 2, you made a mistake. You should load eight "server_core0.xe66" binaries into eight DSP cores respectively.
    Please read through the steps carefully.

    Xiaop said:
    1.I tried the latest version LINUX-PDK.2.XX, and use the filesystem tarbar you mentioned, but is is of no use.

    2. Do I must updated my EVM's UBoot?

    3.the kernel file I used is uImage-k2hk-evm.bin, rather zImage, does it have any problem with me ?



    1. Use this pacakge "ti-processor-sdk-linux-k2hk-evm-02.00.02.11-Linux-X86-Install.bin" . I used this package only. USe UBIFS image.
    2. Yes. use the pre-built U-Boot which comes along with the pacakge.
    3. For first attempt, better to use the UBIFS image.

    PLEASE OPEN UP A NEW POST IF HAVE FURTHER QUESTIONS !!!!.........

  • Hi, Shankari

    I have make it finally! Thank you for your instruction. There are many mistakes I have made. There are some key points

    about that, which I think would help someone like me:

    1.download the PDK pakages named as follow except MSCDK3.1.4, the pdk pakages should download as follow:

    ti-processor-sdk-rtos-k2hk-evm-02.00.02.11-Linux-x86-Install.bin

    ti-processor-sdk-linux-k2hk-evm-02.00.02.11-Linux-x86-Install.bin

    2.updated the u-boot and ubi or nfs filesystem from the ti-processor-sdk-linux-k2hk-evm-02.00.02.11, this is the point I have make a

    huge mistake. you should notice that the kernal file have changed to zImage rather than uImage!!!

    3.Someone would find it hard to burn the uboot and filesystem kind of difficult. There is a easy way to make it.

    Just run the shell named setup.sh in the /opt/ti-processor-sdk-linux-k2hk-evm-02.00.02.11and do as the notice from terminal,

    then you will find burn a filesystem is  a piece of cake. What's more there is a another choice, booting from nfs filesystem.

    ----------------------------------------------------------------------

    Thanks, and apologize for my worth understanding for your instruction.

    ----------------------------------------------------------------------------

    Xiaop

  • Xiaop,

    Superb man!.

    Glad to hear that it works.

    The Ex02 example also works?
  • Hi, Shankari

    The answer is yes. The result is same as the picture you posted, so I don't post it either.

    As mentioned above, rebuild IPC libraries, update uboot and filesystem, compile the example, and

    run the program, then you will get the ideal results. I will post the results tomorrow.

    The running results post here:

    2133.log.txt
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    --> main:
    --> Main_main:
    --> App_create:
    App_create: Failed opening MessageQ
    <-- App_create:
    <-- Main_main:
    <-- main:
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    reset succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    load succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    run succeeded
    --> main:
    --> Main_main:
    --> App_create:
    App_create: Host is ready
    <-- App_create:
    --> App_exec:
    App_exec: sending message 1
    App_exec: sending message 2
    App_exec: sending message 3
    App_exec: message received, sending message 4
    App_exec: message received, sending message 5
    App_exec: message received, sending message 6
    App_exec: message received, sending message 7
    App_exec: message received, sending message 8
    App_exec: message received, sending message 9
    App_exec: message received, sending message 10
    App_exec: message received, sending message 11
    App_exec: message received, sending message 12
    App_exec: message received, sending message 13
    App_exec: message received, sending message 14
    App_exec: message received, sending message 15
    App_exec: message received
    App_exec: message received
    App_exec: message received
    <-- App_exec: 0
    --> App_delete:
    <-- App_delete:
    <-- Main_main:
    <-- main:
    

    ---------------------------------------

    xiaop

  • Hi Xiaop,

    Yes, the log results seems fine.

    It is good that it works as suggested. Glad to hear !!!.

    Revert, if have any questions in the future .