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.

keystone-linux v3.10/rio-dev-dio build error

Other Parts Discussed in Thread: DA8XX

I am building the keystone-linux branch v3.10/rio-dev-dio from https://git.ti.com/keystone-linux/linux and following the process described here: http://processors.wiki.ti.com/index.php/IPC_Install_Guide_Linux#Configuring_Kernel


There aren't any instructions targeting the K2H, so I am adapting what is available. One question I have is regarding the CONFIG_DA8XX_REMOTEPROC config parameter. Is it applicable to the Keystone 2, and if yes, what is it?


I've continues under the assumption that it is specific to OMAP, so I continued on. I am able to build the kernel "make uImage" and boot it.

Next I am trying to build the kernel modules. The first error I encountered is that keystone-linux/linux/net/ipv4/netfilter/ipt_ECN.c is trying to #include <linux/netfilter_ipv4/ipt_ECN.h> and the actual filename is all lowercase, ipt_ECN.h should be ipt_ecn.h. After fixing the include the build then fails with the following:

  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CC      scripts/mod/devicetable-offsets.s
  GEN     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTLD  scripts/mod/modpost
  CC [M]  net/ipv4/netfilter/ipt_ECN.o
net/ipv4/netfilter/ipt_ECN.c:29:46: warning: \u2018struct ipt_ECN_info\u2019 declared inside parameter list [enabled by default]
net/ipv4/netfilter/ipt_ECN.c:29:46: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
net/ipv4/netfilter/ipt_ECN.c: In function \u2018set_ect_ip\u2019:
net/ipv4/netfilter/ipt_ECN.c:33:44: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:40:21: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c: At top level:
net/ipv4/netfilter/ipt_ECN.c:48:47: warning: \u2018struct ipt_ECN_info\u2019 declared inside parameter list [enabled by default]
net/ipv4/netfilter/ipt_ECN.c: In function \u2018set_ect_tcp\u2019:
net/ipv4/netfilter/ipt_ECN.c:58:14: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:58:28: error: \u2018IPT_ECN_OP_SET_ECE\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:58:28: note: each undeclared identifier is reported only once for each function it appears in
net/ipv4/netfilter/ipt_ECN.c:59:25: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:60:14: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:60:28: error: \u2018IPT_ECN_OP_SET_CWR\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:61:25: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:69:11: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:70:20: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:71:11: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:72:20: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c: In function \u2018ecn_tg\u2019:
net/ipv4/netfilter/ipt_ECN.c:84:11: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:84:25: error: \u2018IPT_ECN_OP_SET_IP\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:85:3: warning: passing argument 2 of \u2018set_ect_ip\u2019 from incompatible pointer type [enabled by default]
net/ipv4/netfilter/ipt_ECN.c:29:1: note: expected \u2018const struct ipt_ECN_info *\u2019 but argument is of type \u2018const struct ipt_ECN_info *\u2019
net/ipv4/netfilter/ipt_ECN.c:88:11: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:88:26: error: \u2018IPT_ECN_OP_SET_ECE\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:88:47: error: \u2018IPT_ECN_OP_SET_CWR\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:90:3: warning: passing argument 2 of \u2018set_ect_tcp\u2019 from incompatible pointer type [enabled by default]
net/ipv4/netfilter/ipt_ECN.c:48:1: note: expected \u2018const struct ipt_ECN_info *\u2019 but argument is of type \u2018const struct ipt_ECN_info *\u2019
net/ipv4/netfilter/ipt_ECN.c: In function \u2018ecn_tg_check\u2019:
net/ipv4/netfilter/ipt_ECN.c:101:11: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:101:25: error: \u2018IPT_ECN_OP_MASK\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:102:3: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:105:11: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:106:3: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:109:12: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ECN.c:109:27: error: \u2018IPT_ECN_OP_SET_ECE\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c:109:46: error: \u2018IPT_ECN_OP_SET_CWR\u2019 undeclared (first use in this function)
net/ipv4/netfilter/ipt_ECN.c: At top level:
net/ipv4/netfilter/ipt_ECN.c:121:23: error: invalid application of \u2018sizeof\u2019 to incomplete type \u2018struct ipt_ECN_info\u2019
make[3]: *** [net/ipv4/netfilter/ipt_ECN.o] Error 1
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2

  • Ralph,

    The keystone-linux git branches are targeted for different applications and Linux upstream releases. Unless your application specifically requires SRIO feature, I recommend you develop your project based on v3.8 or v3.10 master. What is the platform you are working on? TI EVM or your prototype of K2HK based platform?

    The instruction to build Keystone 2 Linux kernel is summarzied in MCSDK wiki page: http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring,

    and the v3.8/rio-dev-dio build instruction is here: http://processors.wiki.ti.com/index.php/MCSDK_HPC_3.x_MPI_over_RIONET.

    Regards,
    Garrett

  • Hi Garret,

    I am using the TI EVM and require the SRIO feature. 

    I successfully followed the kernel build instructions on the page: http://processors.wiki.ti.com/index.php/MCSDK_HPC_3.x_MPI_over_SRIO#Building_the_kernel_for_SRIO

    Now, I'd like to use IPC over SRIO, so I am rebuilding the kernel with IPC, as described here: http://processors.wiki.ti.com/index.php/IPC_Install_Guide_Linux#Configuring_Kernel

    The kernel uImage builds successfully, however the modules are not building in either rio branch (v3.8/rio-dev-dio or v3.10/rio-dev-dio) I have two different forum posts for the module build errors, one post for each branch.

    Thanks,

    Ralph

  • Hi Ralph,

    You can go ahead to use MCSDK-HPC OpenMPI over SRIO without the IPC module you indicated for OMAP.

    You should be able to start testing the SRIO feature based on the kernel you built followed the instruction on the page as you post:  http://processors.wiki.ti.com/index.php/MCSDK_HPC_3.x_MPI_over_SRIO#Building_the_kernel_for_SRIO

    OpenMPI over SRIO in K2H platform uses rio kernel module (rio_mport) included in v3.8 and 3.13 kernel instead of IPC module.

    Regards, Garrett