[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] UDP packet reception triggers a hangup on the microblaze



Hello All,

when I transmit a continously stream of UDP packets to the microblaze
a hangup is triggered,  I have the following configuration:

- petalinux-v0.30-rc1 software
- xemac linux driver in PIO mode
- xemac IP block which is connected via a PLB <-> OPB bridge to the
ublaze. (the xemac is configured with "No DMA" and IPIF
(recieve/transmit buffers) are set to 32768 bytes and FIFO depth of
16.)
- EDK 9.2.02. with the patch (AR30051) from Xilinx for the microblaze v7.00.b.
- 2 uarts, one for kernel console, other one for  shell access.
- ML506 Evalutation platform

I tried to capture the packets via AF_PACKET and AF_INET, both methods
gave the same result -> a kind of hangup of the microblaze:

symptoms:
1) no serial input is taken from both terminals
2) a ping to the microblaze doesn't send a reply packet back.

Has anybody seen this behavior before with the xemac connected via the
OPB (PLB<->OPB) to the PLB bus, or is this setup with a bridge in
between
asking for trouble and should I look for an alternative?


Best regards,
Bas

--- some additional info


Linux tmb 2.6.20-uc0 #1 Tue Nov 25 14:27:21 CET 2008 microblaze

CPU-Family:     MicroBlaze
FPGA-Arch:      virtex5
CPU-Ver:        Unknown
CPU-MHz:        125.00
BogoMips:       62.05
HW-Div:         yes
HW-Shift:       yes
Icache:        8kB
Dcache:        8kB
HW-Debug:       yes

  PID PORT STAT SIZE SHARED %CPU COMMAND
1      S    135K     0K  0.0 /bin/init
2      R      0K     0K  0.0 ksoftirqd/0
3      S      0K     0K  0.0 events/0
4      S      0K     0K  0.0 khelper
5      S      0K     0K  0.0 kthread
6      S      0K     0K  0.0 kblockd/0
7      S      0K     0K  0.0 pdflush
8      S      0K     0K  0.0 pdflush
9      S      0K     0K  0.0 kswapd0
10      S      0K     0K  0.0 aio/0
11      S      0K     0K  0.0 mtdblockd
24      S      0K     0K  0.0 jffs2_gcd_mtd4
40   S0 S    656K     0K  0.0 /bin/sh
41   S0 S    643K     0K  0.0 /bin/sh --
42      S     67K     0K  0.0 /bin/inetd
55   S0 R     68K     0K  0.0 ps

pseudo code:

ethernet mac is running at 100 BaseTX-FD

sender:  (host PC)
    sd_ = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    sendto(sd_, buf, BUFLEN, 0, (struct sockaddr*)&sa_, (socklen_t)sizeof(sa_));

receiver (Microblaze)
 sd_ = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 bind(sd_, (struct sockaddr*)&sa, sizeof(sa))
  if (!select(sd_+1, &rfds, 0, 0, &timeout)) { break; }
 size = recv(sd_, buf, BUFLEN, 0);
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/