This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: RedBoot
- To: Anthony Massa <amassa at logici dot com>
- Subject: [ECOS] Re: RedBoot
- From: Jonathan Larmour <jlarmour at redhat dot com>
- Date: Fri, 27 Apr 2001 23:25:09 +0100
- Cc: "eCos (E-mail)" <ecos-discuss at sourceware dot cygnus dot com>
- Organization: Red Hat UK Ltd.
- References: <281963D01A08D511A5D700A0C9AC979A04EF02@EXCHANGE>
Anthony Massa wrote:
>
> >Perhaps the cygwin tools aren't in the path. Have you installed the .reg
> >file mentioned in "Updated configuration tools for Windows" at
> >http://sources.redhat.com/ecos/anoncvs.html ?
>
> I'll give that a try. I didn't notice the reg file back when I switched to
> ConfigTool 1.3.1.2.
It wasn't there before a few days ago :-).
> >> Not being able to run the tests, I tried to get more insight as to where
> my
> >> application was failing. I find that it is failing in the function
> >> quicc_eth_init in if_quicc.c. This is called from cyg_net_init, in the
> for
> >> loop after the thread (cyg_netint) is created and started. I have had
> some
> >> troubles with GDB crashing while stepping through various parts of the
> >> quicc_eth_init routine - once it crashed when stepping over
> HAL_DCACHE_SYNC.
> >> It seems to have problems with the cyg_drv_interrupt_unmask function
> call.
>
> >Looking at it, the problem may be that the interrupts are set up so near
> >the start. This means that any interrupts received before the init function
> >finishes could lead to problems because the rest of the driver hasn't been
> >initialised. And if RedBoot had been using the eth device, interrupts
> >_would_ already be enabled.
>
> >Try setting up the interrupt handling much closer to the end, or perhaps
> >just try turning off interrupts throughout that function just to see if
> >that helps.
>
> I'll move the interrupt creation and unmasking to the end of the
> quicc_eth_init function and see what happens. I'm not sure about that
> because I have seen it fail at various points through that routine. If that
> doesn't work I'll give globally turning off interrupts a try and see where
> that leads - although, won't that have an effect on GDB's communication?
Only for the duration of that function (obviously reenable the interrupts
at the end!). You may need to step over it instead.
> I'm a little confused how the Ethernet switch over occurs since I'm
> debugging over the Ethernet port as well. Basically, RedBoot is receiving
> debug packets from GDB over the Ethernet port while I am stepping through
> the quicc_eth_init routine to setup control of the same Ethernet port for
> the application.
There's magic in the "common" ethernet driver layer, in io/eth. Basically
redboot gets a sneaky look at every packet that comes in.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine