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/
Attachment:
entry.S
Description: Binary data