[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] Cs/ 14346 breaks 64bit hv
Initial email was incorrect. The issue is not with c/s 14346 but with 14345. c/s 14344 is able to boot pae/64b HVM AMD-V guests on AMD-V without issue, while c/s 14345 fails. [snip from 14345 changeset] #endif - /* Debugging info */ - printf("Booting from %x:%x\n", bootseg, bootip); /* Jump to the boot vector */ ASM_START [end code snippet] Removing the printf causes pae and 64bit HVM AMD-V guests to fail to boot on 64bit hypervisor. If I add just the single "printf" line back into the rombios.c file, then guests boot without issues. Very strange! Tested with only changing the hvmloader, starting with an installed 14344 base, and used the 14345 hvmloader, result is grub failure. Took a look at the rombios.s code generated in both cases (14344 and 14345) and seems like the "jump to the boot vector" code is not executed on the failing case. There is a "default: return" in the function immediately above an "#if BX_TCGBIOS", and then the non-executed asm code. Is bcc not understanding that the asm code following should be executed? Seems like there is added a default "return" so that the "jump to boot vector" code is never executed? appears to be the case..but not sure. Code snippets are below. Using gcc 3.3.5, but will try 4.x compiler, although looks like bcc is used to generate the rombios.s file if I read the Makefile correctly. Any thoughts appreciated. [code from rombios.c] default: return; } #if BX_TCGBIOS tcpa_ipl((Bit32u)bootseg); /* specs: 8.2.3 steps 4 and 5 */ #endif /* 14345 removes this: printf("Booting from %x:%x\n", bootseg, bootip); */ /* Jump to the boot vector */ ASM_START mov bp, sp ;; Build an iret stack frame that will take us to the boot vector. ;; iret pops ip, then cs, then flags, so push them in the opposite order. pushf mov ax, _int18_function.bootseg + 0[bp] push ax mov ax, _int18_function.bootip + 0[bp] push ax [code from 14344 that boots ] push -$A[bp] push -8[bp] mov bx,#.668 push bx mov ax,*2 push ax call _bios_printf add sp,*8 ! 6170 ! 6171 ! 6172 #asm !BCC_ASM _int18_function.bootip set $12 _int18_function.seq_nr set $20 _int18_function.bootchk set $16 _int18_function.bootseg set $14 _int18_function.ebda_seg set $1A _int18_function.status set $10 _int18_function.bootdrv set $17 _int18_function.bootdev set $18 _int18_function.e set 0 mov bp, sp ;; Build an iret stack frame that will take us to the boot vector. ;; iret pops ip, then cs, then flags, so push them in the opposite order. pushf mov ax, _int18_function.bootseg + 0[bp] push ax mov ax, _int18_function.bootip + 0[bp] [code from 14345 that does not boot ] mov -$A[bp],ax ! 6161 break; jmp .654 ! 6162 ! 6163 default: return; .667: mov sp,bp pop bp ret ! 6164 } ! 6165 ! 6166 ! 6167 ! 6168 ! 6169 ! 6170 ! 6171 ! 6172 #asm !BCC_ASM _int18_function.bootip set $12 _int18_function.seq_nr set $20 _int18_function.bootchk set $16 _int18_function.bootseg set $14 _int18_function.ebda_seg set $1A _int18_function.status set $10 _int18_function.bootdrv set $17 _int18_function.bootdev set $18 _int18_function.e set 0 mov bp, sp ;; Build an iret stack frame that will take us to the boot vector. ;; iret pops ip, then cs, then flags, so push them in the opposite order. pushf mov ax, _int18_function.bootseg + 0[bp] push ax mov ax, _int18_function.bootip + 0[bp] push ax tom > -----Original Message----- > From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx > [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of > Woller, Thomas > Sent: Tuesday, March 13, 2007 6:01 PM > To: xen-devel@xxxxxxxxxxxxxxxxxxx > Subject: [Xen-devel] Cs/ 14346 breaks 64bit hv > > Hi Keir, > Appears as if c/s 14346 has broken booting pae and 64bit HVM > linux guests, on 64bit hv on AMD-V. > > Seems like grub can't find a bootable device, and errors out. > > We haven't tried VT boxes at this point. We just uncovered > this issue and will investigate more. Looks like 32bit > hypervisor works ok, but haven't tested thoroughly. > > We'll look at the patch, but if you have any thoughts. > Appreciate taking a closer look at the modification. > > --Tom > > thomas.woller@xxxxxxx > AMD Corporation > 5204 E. Ben White Blvd. UBC1 > Austin, Texas 78741 > +1-512-602-0059 > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |