This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: selecting a processor variant with gdbarch.


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


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