All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Gilad Rom" <gilad@romat.com>
To: "'Dominic Sweetman'" <dom@mips.com>
Cc: <linux-mips@linux-mips.org>
Subject: RE: CP0 EntryLo
Date: Tue, 30 Nov 2004 18:26:59 +0200	[thread overview]
Message-ID: <20041130162659.BA5FAEB2A9@mail.romat.com> (raw)
In-Reply-To: <16812.19039.764510.640663@gargle.gargle.HOWL>

So, what I need to do, if I understand correctly, is to create a fixed
mapping
From a virtual address to a physical address on the tlb, and use this
Virtual address to change the values of EntryLo to 0xD in order to 
Access the device on the address range I mapped Chip-select 1 to?

(Excuse my poor phrasing, I've been googling all day...)

Any idea on how I might accomplish that from a driver?
I've found a function called add_wired_entry(...), is this
What I should be using?

Thanks!
Gilad.

-----Original Message-----
From: Dominic Sweetman [mailto:dom@mips.com] 
Sent: Tuesday, November 30, 2004 12:25 PM
To: Gilad Rom
Cc: linux-mips@linux-mips.org
Subject: Re: CP0 EntryLo


Gilad Rom (gilad@romat.com) writes:

> I am attempting to access a peripheral device over the Au1500 static bus.
> 
> According to the Au1500 Databook, Whenever I set the Chip Select config
> Register DTY bits to 1 (for "I/O Device").

> I must also set Bits 29:26 of CoProcessor 0 to 0xD, to represent
> bits 35:32 of the Physical address.

"CoProcessor 0" is a kind of fiction represented by a whole bunch of
registers, so you've wandered a long way into the weeds here.

> My question is, if anyone can answer it, is how do I setup
> The CoProcessor0 registers 29:26 in my driver?

I think you are referring to the "EntryLo0-1" register pair.  These
are used as staging registers when reading or writing entries in the
TLB, which is the address translation table.  

The manual is implying is that you need to set up a TLB entry to
access these high physical addresses.  

In Linux most of the TLB is maintained by the kernel as a cache of the
translations used by user programs.  That's probably why you see
"random values" from the staging registers; the kernel is busy taking
exceptions when required translations aren't in the TLB and fixing
them up.

However, the Au1500 hardware permits a small number of TLB entries to
be "wired", for fixed functions like your I/O accesses.

I'm not enough of an expert on the Linux kernel to tell you how to set
up a wired entry: but grep through the sources and you'll turn
something up!

> I have noticed a set of functions called write/read_c0_entrylo[0,1],
> But I keep getting random values when invoking these from my driver.

I think those are way too low-level for your purposes.

--
Dominic Sweetman
MIPS Technologies

WARNING: multiple messages have this Message-ID (diff)
From: "Gilad Rom" <gilad@romat.com>
To: 'Dominic Sweetman' <dom@mips.com>
Cc: linux-mips@linux-mips.org
Subject: RE: CP0 EntryLo
Date: Tue, 30 Nov 2004 18:26:59 +0200	[thread overview]
Message-ID: <20041130162659.BA5FAEB2A9@mail.romat.com> (raw)
Message-ID: <20041130162659.epui7QCq8TvdN3niLC6OJJS_YEoz7zxkozHwGvTJTE8@z> (raw)
In-Reply-To: <16812.19039.764510.640663@gargle.gargle.HOWL>

So, what I need to do, if I understand correctly, is to create a fixed
mapping

  reply	other threads:[~2004-11-30 16:27 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-30  9:56 CP0 EntryLo Gilad Rom
2004-11-30  9:56 ` Gilad Rom
2004-11-30 10:24 ` Dominic Sweetman
2004-11-30 10:24   ` Dominic Sweetman
2004-11-30 16:26   ` Gilad Rom [this message]
2004-11-30 16:26     ` Gilad Rom
2004-11-30 16:37     ` Maciej W. Rozycki
2004-11-30 18:01       ` Pete Popov
2004-11-30 18:16         ` Gilad Rom
2004-11-30 18:16           ` Gilad Rom
2004-11-30 18:45           ` Pete Popov

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=20041130162659.BA5FAEB2A9@mail.romat.com \
    --to=gilad@romat.com \
    --cc=dom@mips.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.