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.

MCSDK 3.0.2.14 and XTCIEVMK2H Board

I downloaded the latest MCSDK. I replaced the new images in the tftp boot directory and changed the root filesystem for nfs.

But the kernel does not boot. It hangs and the end of the boot with dma problems:

dma dma0chan12: out of descriptors

I had the same problem a week ago, when I tried to compile a kernel from the latest git sources.

What is wrong with my system? The older 3.0.1 kernel works fine.

Here are parts of the boot-log:

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

U-Boot SPL 2013.01-00004-g0c2f8a2 (Jul 30 2013 - 12:57:02)
SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
 
 
U-Boot 2013.01-00004-g0c2f8a2 (Jul 30 2013 - 12:57:02)
 
I2C:   ready
DRAM:  2 GiB
NAND:  512 MiB
Net:   TCI6638_EMAC, TCI6638_EMAC1
Hit any key to stop autoboot:  0
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
DHCP client bound to address 192.168.4.224
Using TCI6638_EMAC device
TFTP from server 192.168.4.1; our IP address is 192.168.4.224
Filename '//uImage-k2hk-evm.dtb'.
Load address: 0x87000000
Loading: ####
         2.3 MiB/s
done
Bytes transferred = 57021 (debd hex)
BOOTP broadcast 1
DHCP client bound to address 192.168.4.224
Using TCI6638_EMAC device
TFTP from server 192.168.4.1; our IP address is 192.168.4.224
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.4.224
Using TCI6638_EMAC device
TFTP from server 192.168.4.1; our IP address is 192.168.4.224
Filename '//uImage-keystone-evm.bin'.
Load address: 0x88000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ########
         2.4 MiB/s
done
Bytes transferred = 3926384 (3be970 hex)
## installed monitor, freq [194560000], status 194560000
## Booting kernel from Legacy Image at 88000000 ...
   Image Name:   Linux-3.8.4
   Created:      2013-10-01   2:27:55 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3926320 Bytes = 3.7 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 87010ebc
 
Starting kernel ...
 
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.8.4 (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 Mon Sep 30 22:25:22 EDT 2013
[    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c7387d

....

.....

[    5.579145] IP-Config: Complete:
[    5.582383]      device=eth0, hwaddr=08:00:28:32:99:9a, ipaddr=192.168.4.224, mask=255.255.255.0, gw=255.255.255.255
[    5.592947]      host=192.168.4.224, domain=example.org, nis-domain=(none)
[    5.599845]      bootserver=192.168.4.1, rootserver=192.168.4.1, rootpath=
[    5.606568]      nameserver0=192.168.4.1[    5.623014] VFS: Mounted root (nfs filesystem) on device 0:11.
[    5.629012] Freeing init memory: 268K
[    7.154294] dma dma0chan12: out of descriptors
... the dma-error continues here endless. No login is possible

  • Hi, Peter,

    I noticed that your u-boot is an older version, could you try to use the u-boot from the same release. For MCSDK 3.0.2 kernel to work, the u-boot on board needs to be updated.

    Rex

  • I flashed the u-boot on the board, and now the kernel is loading. I did not know, that u-boot and kernel are so tight together.

    But now I have another problem. The second ethernet socket (eth1) does not work properly. A ping succeeds, but higher protocols like ssh or telnet do not work anymore.

    I'm using the same NFS-filesystem, only changing the kernel. With kernel 3.0.1 I can connect to a third computer using ssh. When I only change the kernel to 3.0.2 it does not work anymore.

    eth0 works perfect, only eth1 fails.

  • Hi, Peter,

    I can not reproduce your ssh issue. I switched my EVM to 3.0.2 release, gph and kernel, and still using the same file system I have it on NFS mount. My file system was extracted from tisdk-rootfs.tar.gz. I configured eth1 with IP address.

    root@keystone-evm:/# cat /proc/version
    Linux version 3.8.4 (
    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 Mon Sep 30 22:25:22 EDT 2013

    root@keystone-evm:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr C4:ED:BA:9A:88:80
              inet addr:158.218.109.153  Bcast:158.218.109.255  Mask:255.255.255.0
              inet6 addr: fe80::c6ed:baff:fe9a:8880/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:11570 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10042 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:10270486 (9.7 MiB)  TX bytes:1514784 (1.4 MiB)

    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:4 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:288 (288.0 B)  TX bytes:288 (288.0 B)

    root@keystone-evm:~# ifconfig eth1 158.218.109.199 netmask 255.255.255.0
    [   48.950858] keystone-netcp 2090000.netcp: initializing cpsw version 1.3 (1) SGMII identification value 0x4ed1
    [   48.966535] net eth1: netcp device eth1 opened
    [   48.971718] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    [   48.977651] 8021q: adding VLAN 0 to HW filter on device eth1
    [   48.983330] net eth1: adding rx vlan id: 0
    root@keystone-evm:~# [   49.054325] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

    root@keystone-evm:/# ifconfig
    eth0      Link encap:Ethernet  HWaddr C4:ED:BA:9A:88:80
              inet addr:158.218.109.153  Bcast:158.218.109.255  Mask:255.255.255.0
              inet6 addr: fe80::c6ed:baff:fe9a:8880/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:16938 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10653 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:11134759 (10.6 MiB)  TX bytes:1611166 (1.5 MiB)

    eth1      Link encap:Ethernet  HWaddr 02:18:31:7E:3E:6F
              inet addr:158.218.109.199  Bcast:158.218.109.255  Mask:255.255.255.0
              inet6 addr: fe80::18:31ff:fe7e:3e6f/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:4602 errors:0 dropped:0 overruns:0 frame:0
              TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:633867 (619.0 KiB)  TX bytes:558 (558.0 B)

    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:12 errors:0 dropped:0 overruns:0 frame:0
              TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:992 (992.0 B)  TX bytes:992 (992.0 B)

     With that IP address, I can ssh into the EVM. Here is the command from my desktop linux terminal window:

    a0850461@udb0850461:/home/tftpboot/latest$ ssh root@158.218.109.199
    root@158.218.109.199's password:
    root@keystone-evm:~# ls
    root@keystone-evm:~# cd /

    Rex

  • Hi Rex

    You configured both ethernet devices in the same subnet 158.218.109.X .

    If I do the same, it works. Because all traffic for eth1 is routed over eth0. You see it at the blinking light at the socket.

    But I use two different subnets:

    eth0 192.168.4.X

    eth1 192.168.5.X

    Subnet x.x.4.x is for boot and nfs. It works fine.

    At eth1 there is a seperate switch, leading to a seperate computer only in that subnet x.x.5.x . And that configuration does not work anymore, it worked with the kernel from MCSDK 3.0.1 but not with the kernel from 3.0.2.

    Can you please try to recreate my problem using also a different subnet and a third computer?

    Regards

  • Hi, Peter,

    It may take me a while to get it set up. I will try it, and let you know.

    Rex

  • Hi, Peter,

    Please verify if my setup is valid and if it does, I still don't see the issue. My eth0 IP is 158.218.109.153 from dhcp server and getting nfs/tftp service. I configured eth1 as 10.218.101.140 netmask 255.255.255.0. My PC is connected to 10.218.101.x network and has IP of 10.218.101.240 from that network dhcp server. I can ping eth1 IP from my PC. I am using 3.0.2 release. Please see attached screenshots, one for my PC, EVM configuration and ping result from PC/ The other is the version info and outbound ping to my PC.

    Rex

     

     

  • By the way, as what was said earlier. My tftp server on 158.219 network fails to ping my EVM at 10.218.101.140. So, the 2 network should be considered as isolated. Aren't they?

    Rex

  • Rex,

    let me clarify my setup:

    eth0 is 192.168.4.224/netmask 255.255.255.0, connected to a PC having 192.168.4.1. This PC serves as tftp-boot server and NFS-server. This works fine. I also can connect from that PC with telnet or using ssh from the EVM.

    eth1 is 192.168.5.2/netmask 255.255.255.0, connected to a different PC having 192.168.5.1. Both networks are not connected together.

    I can ping in the x.x.5.x network. That works, but nothing more. I can not telnet from the .5.1 PC to the EVM. And I can not ssh from the EVM into the .5.1 PC.

    When I switch to kernel fom MCSDK 3.0.1 it works, but not with kernel from MCSDK 3.0.2. It does not matter what NFS-filesystem (3.0.1 or 3.0.2) you have mounted, it is only depending on the kernel version.

    So please try more than a ping.

    Regards

  • Peter,

    Sorry that I overlook the ssh. I'll retry and get back to you.

    Rex

  • Hi, Peter,

    Yes, I can reproduce what you've seen. We'll look into this issue and get back to you.

    Thanks for your info and time.

    Rex

  • A friend of me works in his company with the Sitara processor series (3352). We spoke about that problem, and he mentioned, that on the Sitara he had a similar issue. He could not connect to eth1.

    The reason was, the the internal network processor switched on VLAN by default. VLAN 0 to eth0 and VLAN1 to eth1. And that VLAN packet-style prevented a successful use of eth1. He had to disable VLAN somewhere in the ethernet subsystem of the processor.

    Could it be the same problem, that VLAN is enabled in the new 3.0.2 kernel, and it has to be disabled anywhere?

  • Hi, Peter,

    The issue is caused by newly implemented feature for checksum hardware offload . For work around now, please disable that hw offload in the k2hk-evm.dts file using software offload <1>.

    From:

     pa: pa@2000000 {
        label = "keystone-pa";
        checksum-offload = <1>; /* 1 - HW offload */

    To:

     pa: pa@2000000 {
        label = "keystone-pa";
        checksum-offload = <2>; /* 1 - HW offload */

    Thanks!

    Rex

  • I meant software offload <2>. sorry.

    Rex

  • That solved the problem. I changed the .dts file, compiled a .dtb and booted. Now I can use the eth1 connection.

    Thanks for your effort.