This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: RedBoot and eCos sharing Ethernet?



Grant Edwards <grante@visi.com> writes:
> I'm still thinking about trying network debugging via RedBoot
> .........
> What I don't understand is how the Ethenet controller context
> gets saved and restored in 4) and 5).  There aren't any hooks
> in my Ethernet driver to save/restore context when switching
> ownership of the controller between the two drivers.  Did I
> miss something when I wrote my Ethernet driver?

It doesn't do save/restore of ether controller contexts.

RedBoot uses the new instantiation of the driver, the one in the
application, by means of intercalling vectors.  All that is hidden in the
generic driver layer (io/eth/.../src/net/eth_drv.c and
io/eth/.../src/stand_alone/eth_drv.c) sort of area.

Two things you might have missed:

a) RedBoot calls the poll() entry to the ether driver with interrupts off.
This should essentially do "ISR();DSR();DELIVER();" every time, pushing
data up into whoever is the layer above, and executing requests to transmit
that have arrived through the usual interface.

b) Your driver *must* call back into the generic driver via function
pointers that are in the interface.  Not directly into the generic eth_drv
routine.  That's the only way RedBoot and the app can share the driver.

That's all I know about it.... ie. the driver writer's perspective.

HTH,
	- Huge


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]