9smile
驱动牛犊
驱动牛犊
  • 注册日期2006-06-02
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1709回复:3

**Enable KITL系统启动不了,请教wxl_50685330版主^_^

楼主#
更多 发布于:2007-03-08 16:10
  开发环境 :yl2410开发板 + wince5.0

工程文件是从开发光盘中的yl2410.pbxml 扩充而来的。

platfrom->Settings->build options 选中
1、Enable Eboot Space in Memory
2、Enable full kernel mode
3、Run-time Image can be larger than 32 MB
编译系统,下载、运行没有问题。为了调试驱动,查看信息,又选择了
4、Enable kernel debugger
5、Enable kitl
编译,下载没有问题,启动系统的时候,在dnw中输出信息
+OEMKitlInit
OEMKitlInit()IPAddress:0.0.0.0
OEMKitlInit()NetMask:0.0.0.2
VBridge::NK and MAC:[0-0-0-0-0-0]
然后,就停在这里不动了。
查找了一下资料,输出这几个信息的个函数分别位于halether.c 、halkitl.c 、vbridge.c中
但是,对于怎么使能kitl,让ce内核输出调试信息给PB,还是没有头绪
==================
文件halether.c中
BOOL
OEMEthInit(EDBG_ADAPTER *pAdapter)
{
    PBYTE pBaseIOAddress;

    // Driver globals from the bootloader.
    //
    if (pDriverGlobals->eth.EbootMagicNum == EBOOT_MAGIC_NUM)
    {
        memcpy(pAdapter, &pDriverGlobals->eth.TargetAddr, sizeof(EDBG_ADAPTER));

        switch(pDriverGlobals->misc.EbootDevice)
        {
        case(DOWNLOAD_DEVICE_PCMCIA):    // NE2000 CF card.
            pBaseIOAddress  = (PBYTE)PCMCIA_Init();
            if (pBaseIOAddress)
            {
                // Initialize the built-in Ethenet controller.
                //
                if (!NE2000Init((PBYTE)pBaseIOAddress, 1, pAdapter->Addr.wMAC))
                {
                    EdbgOutputDebugString("ERROR: OEMEthInit: Failed to initialize Ethernet controller.\r\n");
                    return(FALSE);
                }
            }
            pfnEDbgInit               = NE2000Init;
            pfnEDbgEnableInts         = NE2000EnableInts;
            pfnEDbgDisableInts        = NE2000DisableInts;
            pfnEDbgGetPendingInts     = NE2000GetPendingInts;
            pfnEDbgGetFrame           = NE2000GetFrame;
            pfnEDbgSendFrame          = NE2000SendFrame;
            pfnEDbgReadEEPROM         = NE2000ReadEEPROM;
            pfnEDbgWriteEEPROM        = NE2000WriteEEPROM;
            pfnEDbgSetOptions         = NE2000SetOptions;
        #ifdef IMGSHAREETH
            pfnCurrentPacketFilter    = Ne2000CurrentPacketFilter;
            pfnMulticastList        = NE2000MulticastList;
        #endif    // IMGSHAREETH.
            break;
        case(DOWNLOAD_DEVICE_CS8900):    // CS8900A.
            // Initialize the CS8900.
            //
            if (!CS8900DBG_Init((PBYTE)CS8900DBG_IOBASE, CS8900DBG_MEMBASE, pAdapter->Addr.wMAC))
            {
                EdbgOutputDebugString("ERROR: OEMEthInit: CS8900 initialization failed.\r\n");
                return(FALSE);
            }

            pfnEDbgInit                = CS8900DBG_Init;
            pfnEDbgEnableInts         = CS8900DBG_EnableInts;
            pfnEDbgDisableInts        = CS8900DBG_DisableInts;
            pfnEDbgGetFrame            = CS8900DBG_GetFrame;
            pfnEDbgSendFrame        = CS8900DBG_SendFrame;
            pfnEDbgGetPendingInts     = CS8900DBG_GetPendingInts;
        #ifdef IMGSHAREETH
            pfnCurrentPacketFilter    = CS8900DBG_CurrentPacketFilter;
            pfnMulticastList        = CS8900DBG_MulticastList;
        #endif    // IMGSHAREETH.
            break;
        default:
            EdbgOutputDebugString("ERROR: OEMInit: Unknown download NIC (0x%x).\r\n", pDriverGlobals->misc.EbootDevice);
            return(FALSE);
        }
    }
    else
    {
        // TODO - retrieve CS8900 MAC address from flash...
        // TODO - intialize the CS8900 from scratch...
    }
网上查到“2410、2440的用户在不使用eboot的情况下,总是不能使用kitl的原因,在于找不到eboot在DriverGloabal中留下的MagicNumber”

----
// TODO - retrieve CS8900 MAC address from flash...
// TODO - intialize the CS8900 from scratch...
----
又如何实现呢?

请热心的版主多帮忙:)
wenzai
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2011-03-04
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望424点
  • 贡献值0点
  • 好评度309点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-10 09:42
这个需要网络支持KITI
9smile
驱动牛犊
驱动牛犊
  • 注册日期2006-06-02
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-14 08:05
是啊 ,我怀疑吧 // TODO - retrieve CS8900 MAC address from flash...
// TODO - intialize the CS8900 from scratch...

这部分代码补充好,可能就能用kitl了,呵呵,,不知道对不对?
lowiq
驱动牛犊
驱动牛犊
  • 注册日期2007-03-13
  • 最后登录2009-08-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-16 21:56
好像你的网卡mac地址没有取到
还有你的eth kitl是dhcp的?还是自己分配ip的呢?


--------------------------
说的不好,大家不要骂我
游客

返回顶部