linux-mips
[Top] [All Lists]

Re: [PATCH] MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET

To: peter fuerst <post@pfrst.de>
Subject: Re: [PATCH] MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET
From: Florian Fainelli <florian@openwrt.org>
Date: Tue, 9 Mar 2010 22:23:46 +0100
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:reply-to:to :subject:date:user-agent:cc:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; bh=JhQcs8UoidxjVy1BQocjX8WNxK2VH69w0DYMGYBf/FI=; b=lzClh7O5ZTCTIUX4BLDTixSaVXwbeBE/18nT9SSrfywwLq5iYUP5wYOi2veSVT5LXr P5Ilu0SL0l2j8pDQ/u5QLCXbOPUbEAFfnJ0JjLUJJSPBrZlm4hL62eC1C54wSdnky9t6 pip6OwLth44Kq1kLaX71cwgTrbRXB93w8D2nU=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:reply-to:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; b=KBBdCWf+T8cWUjujzX0WKzZeAEI+N14Copq9SScYjDGjBfuDlCatwb9stU1imHmkoc 4euPkX7vTErHFUS/5brVrL4E1TOAiEzNTMpomwIV4kqVMn2rBBWGO1nnVKIPuP+8HvRF ehnaqbsZWMqtve6csdziVpxca+p0n04Fzl94A=
In-reply-to: <Pine.LNX.4.21.1003092137280.898-100000@Opal.Peter>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <Pine.LNX.4.21.1003092137280.898-100000@Opal.Peter>
Reply-to: Florian Fainelli <florian@openwrt.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.12.4 (Linux/2.6.32-trunk-686; KDE/4.3.4; i686; ; )
Le mardi 9 mars 2010 22:03:27, peter fuerst a écrit :
> Hi Florian, thats funny!
> 
> On Tue, 9 Mar 2010, Florian Fainelli wrote:
>   > Date: Tue, 9 Mar 2010 15:46:01 +0100
>   > From: Florian Fainelli <florian@openwrt.org>
>   > To: linux-mips@linux-mips.org
>   > Cc: ralf@linux-mips.org
>   > Subject: [PATCH] MIPS: make CAC_ADDR and UNCAC_ADDR account for
>   >     PHYS_OFFSET
>   >
>   > On AR7, ...
>   >
>   > Signed-off-by: Regards, Florian Fainelli <florian@openwrt.org>
>   > ---
>   > diff --git a/arch/mips/include/asm/page.h
>   > b/arch/mips/include/asm/page.h index ac32572..7b11df5 100644
>   > --- a/arch/mips/include/asm/page.h
>   > +++ b/arch/mips/include/asm/page.h
>   > @@ -188,8 +188,10 @@ typedef struct { unsigned long pgprot; } pgprot_t;
>   >  #define VM_DATA_DEFAULT_FLAGS    (VM_READ | VM_WRITE | VM_EXEC | \
>   >                            VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
>   >
>   > -#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE)
>   > -#define CAC_ADDR(addr)           ((addr) - UNCAC_BASE + PAGE_OFFSET)
>   > +#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE +    \
>   > +                                                         PHYS_OFFSET)
>   > +#define CAC_ADDR(addr)           ((addr) - UNCAC_BASE + PAGE_OFFSET +    
> \
>   > +                                                         PHYS_OFFSET)
>   >
>   >  #include <asm-generic/memory_model.h>
>   >  #include <asm-generic/getorder.h>
> 
> I assume, you don't want "+" PHYS_OFFSET in both defines.
> 
> Two years and a month ago almost the same patch (which used to work on
> the machine that needed it :) was submitted:

Oh I actually did even search for that one.

> 
>   --- a/linux-2.6.24/include/asm-mips/page.h  Fri Jan 25 12:23:51 2008
>   +++ b/linux-2.6.24/include/asm-mips/page.h  Wed Feb  6 23:26:31 2008
>   @@ -184,8 +184,8 @@
>    #define VM_DATA_DEFAULT_FLAGS      (VM_READ | VM_WRITE | VM_EXEC | \
>                                VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
> 
>   -#define UNCAC_ADDR(addr)   ((addr) - PAGE_OFFSET + UNCAC_BASE)
>   -#define CAC_ADDR(addr)             ((addr) - UNCAC_BASE + PAGE_OFFSET)
>   +#define UNCAC_ADDR(addr)   ((addr) - PAGE_OFFSET + PHYS_OFFSET +
>  UNCAC_BASE) +#define CAC_ADDR(addr)          ((addr) - UNCAC_BASE + 
> PAGE_OFFSET -
>  PHYS_OFFSET)
> 
>    #include <asm-generic/memory_model.h>
>    #include <asm-generic/page.h>
> 
> But correct versions of these macros seem to be essential for very
> "exotic" systems only ;-)

You are right. This is actually needed when people do weird designs, and that 
happens ;) Will resubmit with the proper fixing.
--  
Best regards, Florian Fainelli
Email: florian@openwrt.org
Web: http://openwrt.org
IRC: [florian] on irc.freenode.net
-------------------------------

Attachment: signature.asc
Description: This is a digitally signed message part.

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