Re: watch exception only for kseg0 addresses..?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 04, 2002 at 06:54:02PM +0100, Maciej W. Rozycki wrote:
> On Wed, 4 Dec 2002, Daniel Jacobowitz wrote:
> 
> > Sorry, by "not handy" I meant I didn't have the manuals available :)
> 
>  'http://www.mips.com/Documentation/R4400_Uman_book_Ed2.pdf' or see under
> "Publications"/"R4000...".  There are other sources of the book available,
> e.g. somewhere within SGI web pages.  R10k implements a single watchpoint
> this way, too. 
> 
> > >  What do you think?
> > 
> > You don't reveal to userland what size watchpoints are available - i.e.
> > how large a watchpoint can be.  Does the mask match the hardware
> > implementation, and what are the restrictions on it?
> 
>  For that you set up a disabled watchpoint with a mask set to all ones (or
> the range you are interested in).  Then when you retrieve it, you may see
> which bits stayed at ones.  Similarly you may check for hardwired
> don't-cares by using a mask with all zeroes.  The mask may differ for each
> watchpoint, e.g. for R4650 it's different for IWatch and DWatch, so you
> really want to have a per-watchpoint setting.  Also the MIPS32/64 ISA
> specification implies a mask need not be contiguous. 
> 
>  Similarly you may check for access types permitted, by enabling all of
> them (or ones you are interested in) and seeing which ones remained
> enabled.  Per-watchpoint, again. 
> 
>  I'd prefer not to overdesign the API leaving as much information as
> possible passed as is.  This way userland gets more control over what's
> available.

That way we expose more of the hardware to userland; and the thing
that's most important to me is that GDB not have to know if it's on a
MIPS32 or an R4650 when determining how watchpoints work. 
IWatch/DWatch are two particular watchpoints or distinguished by access
type?  I.E. what would GDB need to know to know which it is setting?

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux