This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: selecting a processor variant with gdbarch.
- From: Daniel Jacobowitz <drow at false dot org>
- To: Chris Johns <chris at contemporary dot net dot au>
- Cc: gdb at sources dot redhat dot com
- Date: Sun, 6 Nov 2005 19:22:38 -0500
- Subject: Re: selecting a processor variant with gdbarch.
- References: <4365D115.9070406@contemporary.net.au> <20051031141943.GC25504@nevyn.them.org> <436730E3.9040700@contemporary.net.au>
On Tue, Nov 01, 2005 at 08:09:55PM +1100, Chris Johns wrote:
> Daniel Jacobowitz wrote:
> >On Mon, Oct 31, 2005 at 07:08:53PM +1100, Chris Johns wrote:
> >
> >>Hello,
> >>
> >>What is the preferred way to have gdbarch select a specific processor
> >>variant ?
> >
> >
> >Can you be more specific about what you want?
> >
>
> On the Coldfire we have a growing number of processors with a few
> different cores each running the same code, yet with register sets that
> vary in different ways.
Wait, are you talking about multiple slightly heterogeneous cores at
the same time, or across different implementations? I'm not sure from
the above.
> When using BDM with a Coldfire you need to get at some of the processor
> specific registers to access memory controllers to enable RAM to
> download a program.
>
> We can teach a BDM target ops how to detect various processors and make
> the selection. Getting gdbarch to handle the change is what I would like
> to understand.
Take a look at the code on csl-arm-20050325-branch for more information
about this, specifically arm-tdep.c:arm_update_architecture. That's
not what it will look like in GDB HEAD once it is implemented there;
but you can find some more about the topic in the gdb@ list archives
from early this year.
> I have played around with changing the register names and types but
> regcache proved a hurdle. It sets up the cache once during
> initialisation. If I could make a a call to get regcache to
> re-initialise this hurdle could be overcome.
See the bottom of arm_update_architecture for more. The trick is to
switch to a "new" gdbarch.
--
Daniel Jacobowitz
CodeSourcery, LLC