From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: xen-kernel and EDD Date: Wed, 24 Aug 2011 09:03:29 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable 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: Lin-Bao Zhang <2004.zhang@gmail.com>, Paolo Bonzini Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 24/08/2011 08:50, "Lin-Bao Zhang" <2004.zhang@gmail.com> wrote: > what a pity ! >=20 > it seems that our modification : > 1. Change BOOT_TRAMPOLINE to 0x7c000 > 2. In xen/arch/x86/boot/head.S, change the line 'mov $0x98000,%esp' to > 'mov $0x80000,%esp'. > has make things worse , Ah yes, the BOOT_TRAMPOLINE address is hardcoded into the trampoline_gdt array in trampoline.S. You need to replace the definitions at xen/arch/x86/boot/trampoline.S:trampoline_gdt with the following: trampoline_gdt: /* 0x0000: unused */ .quad 0x0000000000000000 /* 0x0008: ring 0 code, 32-bit mode */ .quad 0x00cf9a000000ffff /* 0x0010: ring 0 code, 64-bit mode */ .quad 0x00af9a000000ffff /* 0x0018: ring 0 data */ .quad 0x00cf92000000ffff /* 0x0020: real-mode code @ BOOT_TRAMPOLINE */ .long 0x0000ffff | ((BOOT_TRAMPOLINE & 0x00ffff) << 16) .long 0x00009a00 | ((BOOT_TRAMPOLINE & 0xff0000) >> 16) /* 0x0028: real-mode data @ BOOT_TRAMPOLINE */ .long 0x0000ffff | ((BOOT_TRAMPOLINE & 0x00ffff) << 16) .long 0x00009200 | ((BOOT_TRAMPOLINE & 0xff0000) >> 16) That should fix things. This is from xen-unstable:16147 by the way. -- Keir > after this picture > :https://picasaweb.google.com/lh/photo/_XQU3pCYJ9bSL4UgvBhFJem26SCOd2WkEl= E8x5u > AaOk?feat=3Ddirectlink > system no response again ,and then reset . > I no longer can see > - 1706-Smart Array Controller EBDA Memory Corrupted > INT 13h BIOS Cannot Coninue - Sytem Halted >=20 > Again ! > I doubt , maybe xen-kernel has corrupted before =B3get_edd=B2 due to our > modification. > this is indeed a gloomy day indeed! >=20 > Now , it seems that things get more complicated : > I think there are two factors will affect : > - Ensure Stack can't overlap HP's P410i EBDA area > - Ensure Brocade card's option rom code can't overwrite P410i EBDA. >=20 > I also did another experiment :for speaking exactly, I use > :5.7s_xen-kernel(0x98000 stack and 0x90000 for BOOT_TRAMPOLINE) and > modified-xen-kernel(0x80000 STACK and 0x7c000 for BOOT_TRAMPOLINE) . >=20 > a)enable Brocade card(two ports) , but disable its option rom code) . > https://picasaweb.google.com/lh/photo/lVIqQjo2PESpX1JIzpEu0oIUdNTBh7One3t= GCKQ3 > AHk?feat=3Ddirectlink >=20 > * 5.7s_xen-kernel can boot successfully(edd=3Don) > from this point ,it seems that 0x98000 didn't overlap P410i EBDA. I= just > disabled Brocade option rom. > * MODIFIED_xen-kernel can't boot successfully ,it also just print > https://picasaweb.google.com/lh/photo/_XQU3pCYJ9bSL4UgvBhFJem26SCOd2WkElE= 8x5uA > aOk?feat=3Ddirectlink > no "INT13 > BIOS Cannot Continue - System Halted". > and no response, and then system reset. >=20 > -Bob