Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@linux-mips.org>
To: atul srivastava <atulsrivastava9@rediffmail.com>
Cc: linux-mips@linux-mips.org
Subject: Re: watch exception only for kseg0 addresses..?
Date: Mon, 25 Nov 2002 10:24:59 +0100	[thread overview]
Message-ID: <20021125102458.B22046@linux-mips.org> (raw)
In-Reply-To: <20021125075238.28848.qmail@webmail36.rediffmail.com>; from atulsrivastava9@rediffmail.com on Mon, Nov 25, 2002 at 07:52:38AM -0000

On Mon, Nov 25, 2002 at 07:52:38AM -0000, atul srivastava wrote:

>                  LEAF(__watch_set)
>                  li      t0,0x80000000
>                  subu    a0,t0
>                  ori     a0,7
>                  xori    a0,7
>                  or      a0,a1
>                  mtc0    a0,CP0_WATCHLO
>                  .......
> 
> it is loading the physical address of KSEG0 addresses in CP0 
> watchpoint register.

Additional problem - I know of at least one CPU on which the watch register
does not work for KSEG0 but only for TLB mapped registers.  That CPU
doesn't document this behaviour btw.

> in change history of this file i am able to see  KSEG0 restriction 
> removed only for arch/mips64/lib/watch.S...

The hw takes physical addresses, so using a a virtual address as argument
for __watch_set seemed to be stupid anyway.  The hw takes a physical
address and the conversion is best done in C anyway.

> while my manual is not specific about KSEG0 , can i safely use it 
> for all addresses ,offcourse then above assembly has to be 
> modified appropiately for addresses of different regions..

The whole watch stuff in the the kernel is pretty much an ad-hoc API
which I did create to debug a stack overflow.  I'm sure if you're
going to use it you'll find problems.  For userspace for example you'd
have to switch the watch register when switching the MMU context so
each process gets it's own virtual watch register.  Beyond that there
are at least two different formats of watch registers implemented in
actual silicon, the original R4000-style and the MIPS32/MIPS64 style
watch registers and the kernel's watch code only know the R4000 style
one.  So check your CPU's manual ...

  Ralf

  reply	other threads:[~2002-11-25  9:25 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-25  7:52 watch exception only for kseg0 addresses..? atul srivastava
2002-11-25  9:24 ` Ralf Baechle [this message]
2002-11-25 11:55   ` Maciej W. Rozycki
2002-11-25 12:18     ` Ralf Baechle
2002-11-25 14:40     ` Daniel Jacobowitz
2002-11-25 15:08       ` Ralf Baechle
2002-11-25 15:47         ` Maciej W. Rozycki
2002-12-04  0:37           ` Ralf Baechle
2002-12-04  0:58             ` Daniel Jacobowitz
2002-12-04 15:48             ` Maciej W. Rozycki
2002-11-25 15:30       ` Maciej W. Rozycki
2002-12-04  0:15         ` Daniel Jacobowitz
2002-12-04 15:45           ` Maciej W. Rozycki
2002-12-04 15:51             ` Daniel Jacobowitz
2002-12-04 17:54               ` Maciej W. Rozycki
2002-12-11 16:58                 ` Daniel Jacobowitz
2002-12-11 17:38                   ` Maciej W. Rozycki
2002-12-11 18:01                     ` Daniel Jacobowitz
2002-12-12 11:15                       ` Maciej W. Rozycki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021125102458.B22046@linux-mips.org \
    --to=ralf@linux-mips.org \
    --cc=atulsrivastava9@rediffmail.com \
    --cc=linux-mips@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox