From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Carl Holtje ;021;vcsg6;" Subject: Re: Breakage in -unstable for Transmeta -- Solution Date: Fri, 24 Jun 2005 21:57:19 -0400 (EDT) Message-ID: References: <91682d35640728e6b4e763e88bbcb465@cl.cam.ac.uk> <193974b525123922007225148c6938fb@cl.cam.ac.uk> <50b68f3ddc1ff3db9893e0d7ad10b884@cl.cam.ac.uk> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Fri, 24 Jun 2005, Keir Fraser wrote: > On 24 Jun 2005, at 20:22, Carl Holtje ;021;vcsg6; wrote: > > > In xen/include/asm/page.h, revision 1.53 changed a line from: > > #define PAGE_MASK (~(PAGE_SIZE-1)) > > to: > > #define PAGE_MASK (~(intpte_t)(PAGE_SIZE-1)) > > and caused Bad Things for Transmeta.. > > That change actually got reverted as it broke PAE. So you may find the > latest unstable version works better for you. Ah.. just my luck. ;) Thanks! > > It seems to me, and please correct me if I'm wrong, the Best Way to fix > > this is with something like a #ifndef CONFIG_X86_TRANSMETA {ver 1.53 > > code} > > #else {earlier code} #endif around this. This is what I've done for my > > other changes, and seems to work pretty well. So.. where would > > CONFIG_X86_TRANSMETA get defined? I've currently got it in > > xen/Rules.mk as "CFLAGS += -DCONFIG_X86_TRANSMETA", and am sure it's > > not the Right Way to do it.. > > We don't want to select support for things like Transmeta at compile > time. We'll have to work out how to make the selection at run time. > Transmeta chips are fairly fully-featured afaik, so this oughtn;t to be > hard. Hm.. alright.. To faciliate this thought, the changes I had to make include (this is from memory, so all may not be exact): * In xen/arch/x86/boot/x86_32.S, disable FPU initialization * In xen/arch/x86/boot/x86_32.S, disable PGE enabling * In xen/{I don't remember}/flushtlb.c, the call to local_flush_tlb or something of this nature calls __pge_off() and __pge_on -- I used a #ifdef CONFIG_X86_TRANSMETA to work around it as local_flush_tlb is a #define. (I'm certainly not saying what I've done is best by any means, but it works for me..) * Added support to linux-2.6...-sparse/arch/xen/Kconfig to select Transmeta support (dependant upon x86-32) * Failed attempt to select different xen0 config files in the buildconfigs/mk.linu-2.6-xen0 to grab the Transmeta/OQO config file * Xen0 & xenU kernel config files * um.. I think that might have been it.. course, with this, you could practically write your own patch... :) And you'd know far better than I about how to support these changes at runtime than I would.. Thanks! Carl - -- "There are 10 types of people in the world: Those who understand binary and those that don't."