• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Embedded Software » BIOS » BIOS forum » Rebuilding the NDK core
Share
BIOS
  • Forum
  • Announcements
Options
  • Subscribe via RSS

Forums

Rebuilding the NDK core

This question is answered
Anderson
Posted by Anderson
on Apr 03 2012 11:09 AM
Prodigy230 points

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!

Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Steven Connell
    Posted by Steven Connell
    on Apr 03 2012 16:42 PM
    Verified Answer
    Verified by Anderson
    Mastermind20540 points

    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

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Anderson
    Posted by Anderson
    on Apr 05 2012 08:43 AM
    Prodigy230 points

    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!

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Steven Connell
    Posted by Steven Connell
    on Apr 05 2012 14:57 PM
    Mastermind20540 points

    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 ...).

    Steve

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Anderson
    Posted by Anderson
    on Apr 05 2012 19:05 PM
    Prodigy230 points

    Hi,Steve

            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 ,

    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 ...).

    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 !

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Anderson
    Posted by Anderson
    on Apr 05 2012 21:55 PM
    Prodigy230 points

    Hi,Steve

        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 ! 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Steven Connell
    Posted by Steven Connell
    on Apr 09 2012 13:32 PM
    Mastermind20540 points

    Anderson
    The 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,

    Steve

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Anderson
    Posted by Anderson
    on Apr 09 2012 19:10 PM
    Prodigy230 points

    Hi,Steve

               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

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Steven Connell
    Posted by Steven Connell
    on Apr 10 2012 19:11 PM
    Verified Answer
    Verified by Anderson
    Mastermind20540 points

    Anderson,

    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.

    Steve

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use