Hi,
I 'm using the NDK 2.20.06.35, CCS4.2 , I want to the NDK support jumbo frame ,I see the SPRU523_ug.pdf, should rebuild the NDK ,then linking the jumbo frame library.
when rebuilding the NDK ,a pre-processor definition should be add in, _INCLUDE_JUMOFRAME_SUPPORT, But i don't knwon where to add the #define _INCLUDE_JUMBOFRAME_SUPPORT?
Thanks very much!
Hi Anderson,
You would need to add this into the config.bld file, for the "ccOpts" variable for the target you are building for.
For example, if you are building for the C64P target, then you would update like this:
/* TI targets we use */tiTargets.C64P.rootDir = rootDir;tiTargets.C64P.ccOpts.prefix = "-mv6400+ -o2 -ms2 -D_INCLUDE_JUMBOFRAME_SUPPORT ";
Steve
Hi,Steve
Thank you for your help! I have rebuild the NDK(ndk_2_20_06_35) according to up way,and get the" jumbo_pbm.o64P" and "jumbo_pbm.o64P.dep",
Then in my application project , I change the ecfg.PktMTU from 1514 to 4096,when debug,I get this error "Error: Unable to register the EMAC",I see the POST in this forum http://e2e.ti.com/support/embedded/bios/f/355/t/169168.aspx#617614 so,I add the sources (pbm.c, jumbo_pbm.c) into my project, then i find a strage thing.
/* Verify size request at boundary conditions first */ if( UseSize <= JUMBO_SMALLEST ) UseSizeIdx = 0; else if( UseSize > JUMBO_LARGEST ) return(0); else { UseSizeIdx = JUMBO_MEMORY_ID_COUNT/2; if( JumboId2Size[UseSizeIdx] >= UseSize )
when run to the line "else if( UseSize > JUMBO_LARGEST )" ,now UseSize is 4100,but when step into ,it will run return(0)!
Could you tell me why? and
if i want to use the Jumbo frame (example biger than 1514),should I just change the ecfg.PktMTU ?
thanks!
Anderson,
First, I want to make sure about a couple of things. Just for your reference, did you take a look at the entries 8 and 9 of the NDK FAQ? They contain information about the Jumbo Frames support in NDK 2.0.0.
Also, in your application, did you make sure to define "_INCLUDE_JUMBOFRAME_SUPPORT" to the preprocessor pre-defined symbol section?
...
As mentioned in the post you linked above, the error message is coming from the call to NIMUregister from within the driver. Can you try adding the file to your project:
ti\ndk\src\stack\nimu\nimu.c
Then rebuild your project for debug mode. Then once you load it, you can put a break point at NIMURegister() and once it hits you'll be able to step through. (or have you already done this? I wasn't sure from your post if you did this first and that led you to the "else if( UseSize > JUMBO_LARGEST ) return(0);" that you mentioned ...).
My paltform is TMDSEVM6472, the DSP should support the jumbo frame(RXMAXLEN 16bits),and the PHY is Marvell 88E1145,at present I have not sure it support the jumbo frame,but my trouble is PBM_alloc() can't alloc the buffer,so now it may not the PHY ,
Also, in your application,I had define the "_INCLUDE_JUMBOFRAME_SUPPORT" in the project build properties----->C/C++ Build---->Predefined Symbols.
as you say: i have not do this ,
and i will add the file to my project:
ti\ndk\src\stack\nimu\nimu.c and continue Debug, and very appreciate to you if you continue track it.
thank you !
I have solve the problem ,thank you for your help!
The problem is [ecfg.PktMTU*Pkt_MAX] (now 4100*64) is bigger than " jumbo_pitBuffer[JUMBO_RAW_PAGE_SIZE*JUMBO_RAW_PAGE_COUNT]"(now 10240*16),so it can't alloc,i change the Pkt_MAX from 64 to 8,then it is OK,
so ,i want to know if change Pkt_MAX less,will effect what ? thank you !
AndersonThe problem is [ecfg.PktMTU*Pkt_MAX] (now 4100*64) is bigger
Where is this code at? I'm trying to find Pkt_MAX but it's not showing up in my search results.
Thanks,
Thanks for your continue attention!
The Macro PKT_MAX is in the "ethdriver.c" file,about the Line 93 or 94.
" jumbo_pitBuffer[JUMBO_RAW_PAGE_SIZE*JUMBO_RAW_PAGE_COUNT]" is in the "jumbo_pbm.c". aboat line 151.
now I have another question,please help me ,Thank you!
http://e2e.ti.com/support/embedded/bios/f/355/t/181259.aspx#653015
Ok, thanks. PKT_MAX is used to determine the size of the EMAC send and receive buffers in the driver, which handle incoming and outgoing packets. So, if the size is reduced, this could cause some packets to be missed.