linux-mips
[Top] [All Lists]

Re: Question: about Physical Address mapping

To: "Dennis.Yxun" <dennis.yxun@gmail.com>
Subject: Re: Question: about Physical Address mapping
From: Ralf Baechle <ralf@linux-mips.org>
Date: Mon, 7 Dec 2009 13:10:34 +0000
Cc: linux-mips@linux-mips.org
In-reply-to: <7b09df4c0912062339g418f432cr28d92c18ed273d2@mail.gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <7b09df4c0912062339g418f432cr28d92c18ed273d2@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.20 (2009-08-17)
On Mon, Dec 07, 2009 at 03:39:15PM +0800, Dennis.Yxun wrote:

> HI ALL:
>    I have a problem, that our MIPS hardware put registers location from
> 0x7000,0000 -0x7040,0000.
> So, I need to init TLB to access those registers.
>    My question is: can I map those range to Kseg2 (mapped,uncached)? I found
> "add_wired_entry" sit in
> kernel code, seems I should use this function.
> 
>    I found code in arch/mips/jazz/irq.c, and the comment tells me
> /* Map 0xe4000000 -> 0x0:600005C0, 0xe4100000 -> 400005C0 */
>    add_wired_entry(0x01800017, 0x01000017, 0xe4000000, PM_4M);
> 
> does that mean after add_wired_entry, virtual address 0xe400,0000 map to
> physical address 0x600005C0?
> why the address is 0x6000,05C0, not 0x6000,0000

I probably knew 15 years ago when I wrote this code :)

add_wired_entry() is a very awkard API and its use in the Jazz code is
broken so I suggest you use ioremap() instead.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>