Closing Ethernet
Gene Smith
gds at chartertn.net
Tue Oct 21 21:29:16 UTC 2008
Ed Sutter wrote:
>
> Leon Pollak wrote:
>> On Tuesday October 21 2008, Gene Smith wrote:
>>> This sounds similar to what I just solved, but maybe in the opposite
>>> direction. Bootloader (uMon) running ethernet/UDP loads RTEMS and
>>> branches to RTEMS at startup. Eth driver in bootloader was still doing
>>> DMA to RAM and caused RTEMS to re-init ethernet and crash while it was
>>> starting up. Had to reset ethernet hardware on entering RTEMS (start.S)
>>> (or could do same thing before leaving bootloader). So adding code to
>>> reset the mac and phy at beginning of start.S stopped ethernet activity
>>> and fixed it. There may be better way but this worked for me but is
>>> definitely not a "graceful" shutdown.
>> Gene, thank you a lot!
>> I shall consider this issue too, as I also run uMon.
>>
>> Hmmm... AFAIK, as uMon does only polling, there should be no problems with
>> Ethernet still "active", no? Well, only if you use the uMon RAM for the
>> application...
True, no intrs. But eth controller still does DMA to memory which keeps
going unless you reset it.
>> What I do is: I leave 0-64KB RAM for uMon purposes and load the application to
>> the 0x10000 address. Thus DMA may continue to write its data.
>>
>> But I have the problem returning to uMon from the application - the RTEMS
>> driver does use interrupts.
>>
>> As for just now, I simply zero some FEC registers before exiting in the
>> application, but this is not good, as this work must be done by the driver.
>
> Fellers,
> Prior to running your application, issued the command "ether off" at the uMon
> prompt. That will turn down the ethernet interface (assuming the driver is
> written properly) and then, if you're using the uMon API within RTEMS, it will
> not interfere with the RTEMS driver.
Sure, but if autobooting you can't issue any prompts. Possibly an
autobooting/running script could do this which then loads RTEMS elf. But
rather not go that deep. Would be nice if uMon had a user defined
"pre_autoboot_hook() that would be called to, e.g., shut down ethernet
before loading the app.
> Or, if you are using the uMon api in RTEMS, you can do this:
> mon_docommand("ether off",0);
> from within your application at startup.
Working on going that direction right now. Thanks for the hint!
> Ed
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
>
More information about the users
mailing list