This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TMS320C6678: Ethernet device drivers

Part Number: TMS320C6678

Tool/software: TI-RTOS

I have been fighting with the NDK trying to get it to work on my machine and I can never get it to start a DHCP service. It always fails with

00000.000 DHCPOpen: NIMUIOCTL (NIMU_GET_DEVICE_MAC) Failed with error code: -22

I checked with NIMU_GET_NUM_NIMU_OBJ and it returned 0. Then I tried NIMUFindByIndex(0) and sure enough it returned NULL meaning there aren't any NIMU objects on the device list. The weird part comes when I manually check NIMUDeviceTable[] and it has 1 item in the list.

The first weird thing I noticed is that it should have 2 items: one connected to the RJ45 port and one on the AMC connector. The second was that even though there's a device in the table, NIMU doesn't have any in the list, so either the init function doesn't call NIMURegister or NIMUInit is never being called in the first place.

Weird part #2 is that when looking at the devices with platform_get_emac_info, I get Platform_EOK and the MAC addresses look correct. So what I figure is that the device drivers weren't properly loaded for the EVM and that's why NIMUDeviceTable[] isn't being populated correctly.

So my question of the day is how do I go about loading the proper device drivers? Like it says in the title I'm using the C6678 EVM and all the CCS files are installed in C:/ti/.

  • Hi Zeke,

    I've forwarded this to the ethernet experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Hi,

    I am not sure the SW enviornment you used for development. For C6678 device, we have the processor SDK RTOS package, there is a nimu driver example under pdk_c667x_2_0_4\packages\ti\transport\ndk\nimu. Do you try that? See processors.wiki.ti.com/.../Processor_SDK_RTOS_NDK

    Regards, Eric
  • Hi Eric,

    Yes I have tried that example. You were the same person helping me on this post but I never got another response so I decided to make a more detailed request.

    Thanks,

    Zeke

  • Hi,

    In the other post you mentioned, I showed how to test hello world between 6678 EVM and a host PC. Just build and use the code as it is, we also exchanged the binary files to cross check. The binary failed in your setup still works in my setup. So, the problem is your HW setup.

    You was also be able to build the binary at that time and run, why sudden came with such "NIMUIOCTL (NIMU_GET_DEVICE_MAC) Failed with error code: -22"?

    Regards, Eric

  • Eric,

    The error code I mentioned is a runtime error. The reason it didn't show in the last post was because HelloWorld masks any messages that are below DBG_WARN. Also, I started a new thread because I wrote my own project and need help with this new one. I appreciate your interest in the old post, but I still need help with the single question I asked in this new thread: how do I go about loading the proper device drivers?

    Thanks,
    Zeke
  • I found the issue. I wasn't loading the GEL file properly when running the code. The way I previously did it was: I would hit the debug icon, load the GEL, then hit play. The error in this is that the GEL gets loaded AFTER connecting the target core(s). So now the new process that works is: launch the target configuration, load the GEL, connect the cores, load the program, then hit play. In reference to my other post, I believe that would fall under "Is there any other initiation I should be doing that the project didn't provide".

    Thanks for your help,
    Zeke