We have a need to control operation of the embedded Ethernet controller. We'd like to control such parameters as rate, duplex mode, auto-negotiation, and so forth.
There must be a provision somewhere for changing its operational characteristics but I can't find where this is documented. We are using TiRTOS version 2.00.01.23.
Related questions:
a) In our start-up code, it would be handy to read the Ethernet PHY registers and display some information, starting from address 0x400EC000. I get an exception if I try to read this address in the boot code, but from task context (after calling BIOS_start()) I am able to read this address without an error. Why?
b) Is there any way to unload the Ethernet driver after Board_initEMAC() is called?
c) If the driver cannot be unloaded, is there any way to pause or stop it?
d) I wrote some task-level code that attempts to read one of the extended PHY registers. Using the steps outlined in the data sheet, I put the address of the register into the MIIADDR register and write a bit (with 0) telling the PHY that I want to read the specified extended register. Then I read the MIIDATA register. The code does not hang, but the value I always get is 0x786D. From rereading the MIIADDR register, I see that the address I previosly wrote there has been overwritten with the address of Register 73: Ethernet PHY Basic Mode Status at offset 0x001 (and the value I read back from the MIIDATA register then makes sense). Is this happening because the Ethernet driver is still running when I try to read the PHY registers?
-- Mike