cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
8,380 Views
Registered: ‎08-21-2009

lwip / how to use xps_ll_temac interrupt ?

Jump to solution

Hi all!

 

I'm just trying to set up the interrupts for the xps_ll_temac - IP-Core, to get information

about the the moment when a message is transmitted or received.

The problem is that I couldn't find a way to get the xps_ll_temac - InstancePointer,

in a proper way. I checked API for a get-function to get the mentioned pointer, but

didn't find anything.

I would appreciate if anyone could help me with this issue!

 

Regards Chris

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Contributor
Contributor
10,442 Views
Registered: ‎08-21-2009

I have just solved the problem, by changing two lines of lwip-stack sourcecode.

In my opinion this solution is not the best way...

 

1. set the "extern"-statement in xlltemacif.h to "extern xlltemacif_s * xlltemacif"

2. changed "xlltemacif_s *xlltemacif" definition in function low_level_init()  into a global definiton (xlltemacif.c)

3. include the xilltemacif.h in my application-file

4. furthermore I defined a local instance pointer for use in following way: 

    XLlTemac *xlltemacp;

    xlltemacp = &xlltemacif->lltemac;

 

Hope that this is a help for someone of you.

Please reply if you have an advanced solution!

 

Regards Chris

 

View solution in original post

0 Kudos
16 Replies
Highlighted
Observer
Observer
8,362 Views
Registered: ‎09-01-2009
look here (Xilinx EDK directory/sw/ThirdParty/sw_services/lwip130_v1_00_b/src/contrib/ports/xilinx/netif/ )

for function XLlTemac_CfgInitialize . First parameter is InstancePointer for xps_ll_temac .
0 Kudos
Highlighted
Contributor
Contributor
8,353 Views
Registered: ‎08-21-2009

Hi!

Thanks for help!

I saw the location of the instance pointer, too. But I'm searching for an adequate interface

for using the pointer in my application.

In my opinion the instance pointer is initialized in function low_level_init() in file xlltemacif.c (see the xlltemacif_s struct).

Then it is given to the init_lltemac() in same file.

 

Regards

0 Kudos
Highlighted
8,338 Views
Registered: ‎09-10-2009

Hi c.schmidt,

Here's not a solution for ur prob. ..but i jus wanna knw sumthing..

did u use ur webserver application in rawmode or servermode???bcoz i got stuck with rawmode asi it is giving me a half o/p..n i am unable to figuring out wths the prob. is...

0 Kudos
Highlighted
Contributor
Contributor
8,316 Views
Registered: ‎08-21-2009

Hi kavya!

 

I'm using socket Api with xilkernel. But got unsolved problems

with raw API when started with tcp/ip, too.

What kind of problem did you get?

 

Regards Chris

0 Kudos
Highlighted
Contributor
Contributor
10,443 Views
Registered: ‎08-21-2009

I have just solved the problem, by changing two lines of lwip-stack sourcecode.

In my opinion this solution is not the best way...

 

1. set the "extern"-statement in xlltemacif.h to "extern xlltemacif_s * xlltemacif"

2. changed "xlltemacif_s *xlltemacif" definition in function low_level_init()  into a global definiton (xlltemacif.c)

3. include the xilltemacif.h in my application-file

4. furthermore I defined a local instance pointer for use in following way: 

    XLlTemac *xlltemacp;

    xlltemacp = &xlltemacif->lltemac;

 

Hope that this is a help for someone of you.

Please reply if you have an advanced solution!

 

Regards Chris

 

View solution in original post

0 Kudos
Highlighted
8,292 Views
Registered: ‎09-10-2009

hi  cschmidt,

i got half a result with raw api..i.e.,

 

 -----lwIP RAW Mode Demo Application ------
Board IP:       192.168.1.10
Netmask :       255.255.255.0
Gateway :       192.168.1.1

 

whr when i tried with socket api i got the result as

 

-----lwIP Socket Mode Demo Application ------
Board IP: 192.168.1.10
Netmask : 255.255.255.0
Gateway : 192.168.1.1

              Server   Port Connect With..
-------------------- ------ --------------------
         echo server      7 $ telnet <board_ip> 7
       rxperf server   5001 $ iperf -c <board ip> -i 5 -t 100
       txperf client    N/A $ iperf -s -i 5 -t 100 (on host with IP 192.168.1.10
0)
         tftp server     69 $ tftp -i 192.168.1.10 PUT <source-file>
         http server     80 Point your web browser to http://192.168.1.10

 

is thr any bug in code thts pausing the o/p of raw api??

0 Kudos
Highlighted
Contributor
Contributor
8,290 Views
Registered: ‎08-21-2009

Hi!

Sorry, but I have no Information about a bug

in this section of ref design.

In my opinion it belongs to the webserver-part,

which I didn't use that deeply.

 

Regards

Message Edited by c.schmidt on 10-20-2009 06:15 AM
0 Kudos
Highlighted
8,287 Views
Registered: ‎09-10-2009

thts k..do u have any idea abt raw mode api n socket mode api.

i am far away from comp n/w so i just wanna know r thr any materials or links explaining abt them..

 

Thanks,

Kavya.

0 Kudos
Highlighted
Contributor
Contributor
8,283 Views
Registered: ‎08-21-2009

sorry, but I'm not a native speaker. Could you please

use less abbreviations because of getting the

right idea of your issues.

Hope its ok for you ?

 

Regards

0 Kudos
Highlighted
6,030 Views
Registered: ‎09-10-2009

oh...i am sorry..i just went on the flow..

anyways coming to my problem..i am trying to implement webserver demo application which is a part of my research work..

now i am able to connect to server in socket mode api but not in raw mode api.

and i am really unaware of the differences between raw mode and socket mode.

Could u please share me some of the information regarding api modes??

Thanks,

Kavya.

0 Kudos
Highlighted
Contributor
Contributor
6,028 Views
Registered: ‎08-21-2009

Thanks for changing your writing style ;-)

Main thing is that raw API is not used with a operating system and

does not have that much overhead like socket API. Socket

API is used with  an OS, e.g. xilkernel.

Settings for this API are at Software Platform Settings in XPS (EDK or SDK),

here you could also set lwip debug options for different sections. This enables

stack prints outs on your RS232. 

Furthermore you could use the Xilinx Debugger or the included GNU Debugger.

Hope this Informations are useful.

 

Regards

 

0 Kudos
Highlighted
6,024 Views
Registered: ‎09-10-2009

ya..thanks for information..basing on that i checked for settings in xps..

and the best thing is that i got application  run even in raw mode..[:)]

 

But let me know is the throughput obtained depends on mode that we are running?? Because using 

1000Mbps cable i got throughput of  245 Mbps..Is it sounds fine??

Are there any techniques to increase throughput?

 

Sorry.. donno why am i flooding out so many questions today..

 

Thanks ,

Kavya

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
6,010 Views
Registered: ‎04-23-2008

245 Mbs is probably pretty reasonable for LWIP raw performance.  You might be able to eek out a bit more tuning TCP window sizes, TEMAC DMA coalescing parameters, hardware checksum overload, etc... but don't count on miracles.  LWIP is free, and you get what you pay for...  If maximum performance is critical, look at (commercial) zero-copy stacks like Treck.

 

-Brian

0 Kudos
Highlighted
Contributor
Contributor
6,003 Views
Registered: ‎08-21-2009

@Kavya:

Could you please post your type of board and FPGA?

Because I have issues with 1000Mbit/s on Spartan3A DSP

board.

 

Regards Chris

0 Kudos
Highlighted
5,989 Views
Registered: ‎09-10-2009

Hi Chris,

I am using Virtex 5 ml507 Evaluation borad..with powerpc processor in it.

 

0 Kudos
Highlighted
5,988 Views
Registered: ‎09-10-2009

@brian

 

Hello, i got that 245Mbps o/p just once...then i even tried increasing window size of TCP then ofcourse i observed increase in throughput which is not a signinficant amount..anywys i paused it there..

 

I want to know can we send data using iperf commands??

0 Kudos