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