linux-mips
[Top] [All Lists]

Re: IP22 64bit kernel

To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Subject: Re: IP22 64bit kernel
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 13 Sep 2007 00:15:36 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <20070911213048.GA20579@alpha.franken.de>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20070911213048.GA20579@alpha.franken.de>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.14 (2007-02-12)
On Tue, Sep 11, 2007 at 11:30:48PM +0200, Thomas Bogendoerfer wrote:

> I finally figured out, why 64bit SGI IP22 kernels are broken (at
> least when booted with SGI sash). Looks like sash jumps to an uncached
> XPHYS address instead of the KSEG0 address indicated by the ELF start.
> This messes up bogomips calculation.
> 
> I found an interesting piece of code in head.S:
> 
>         .macro  ARC64_TWIDDLE_PC
> #if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL)
>         /* We get launched at a XKPHYS address but the kernel is linked
>  * to
>            run at a KSEG0 address, so jump there.  */
>         PTR_LA  t0, \@f
>         jr      t0
> \@:
> #endif
>         .endm
> 
> 
> Enabling this for (CONFIG_SGI_IP22 && CONFIG_64BIT) fixes the boot problem.
> It's not big deal to add this, but I'm wondering why we not just always
> use this macro ? What platforms do it break with it ?

I don't think any will break - it's just one of those "optimizations".

  Ralf

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