linux-mips
[Top] [All Lists]

Re: [PATCH 35/37] Set c0 status for ST0_KX on Cavium OCTEON.

To: ddaney@caviumnetworks.com
Subject: Re: [PATCH 35/37] Set c0 status for ST0_KX on Cavium OCTEON.
From: Ralf Baechle <ralf@linux-mips.org>
Date: Sun, 26 Oct 2008 12:48:21 +0000
Cc: linux-mips@linux-mips.org, Tomaso Paoletti <tpaoletti@caviumnetworks.com>, Paul Gortmaker <Paul.Gortmaker@windriver.com>
In-reply-to: <1224809821-5532-36-git-send-email-ddaney@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1224809821-5532-1-git-send-email-ddaney@caviumnetworks.com> <1224809821-5532-36-git-send-email-ddaney@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.18 (2008-05-17)
On Thu, Oct 23, 2008 at 05:56:59PM -0700, ddaney@caviumnetworks.com wrote:

> Always set ST0_KX on Octeon since IO addresses are at 64bit addresses.
> Keep in mind this also moves the TLB handler.
> 
> Signed-off-by: Tomaso Paoletti <tpaoletti@caviumnetworks.com>
> Signed-off-by: Paul Gortmaker <Paul.Gortmaker@windriver.com>
> Signed-off-by: David Daney <ddaney@caviumnetworks.com>

> -#ifdef CONFIG_64BIT
> +#if defined(CONFIG_64BIT) || defined(CONFIG_CPU_CAVIUM_OCTEON)
> +     /*
> +      * Note: We always set ST0_KX on Octeon since IO addresses are at
> +      * 64bit addresses. Keep in mind this also moves the TLB handler.
> +      */
>       setup_c0_status ST0_KX 0

That's a bit odd - on 64-bit kernels KX would be set anyway and on 32-bit
kernels would be corrupted by exceptions or interrupts, so 64-bit
addresses are not safe to use on 32-bit kernels for most part.

32-bit virtual addresses mapped to a non-compat address otoh will work fine
without KX set.

  Ralf

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