On Mon, 2015-01-12 at 15:06 -0500, Kevin O'Connor wrote: > On Mon, Jan 12, 2015 at 01:13:54PM -0600, Richard Laager wrote: > > Your patch implementing idea 6 fixes the problem for my business > > application on a stock Ubuntu package (with extra stack enabled). > > Thanks. > > The key part of option 5 (as described in my previous email) looks > like the patch below. It also works with skifree on Vista for me. > > -Kevin > > > --- a/vgasrc/vgaentry.S > +++ b/vgasrc/vgaentry.S > @@ -111,8 +111,10 @@ entry_10_extrastack: > cld > pushw %ds // Set %ds:%eax to space on ExtraStack > pushl %eax > - movw %cs:ExtraStackSeg, %ds > - movl $(CONFIG_VGA_EXTRA_STACK_SIZE-PUSHBREGS_size-16), %eax > + movw $SEG_BDA, %ax > + movw %ax, %ds > + movw 0x0e, %ds > + movl $(1024-PUSHBREGS_size-16), %eax > SAVEBREGS_POP_DSEAX // Save registers on extra stack > movl %esp, PUSHBREGS_size+8(%eax) > movw %ss, PUSHBREGS_size+12(%eax)
I may have screwed something up while applying, but when I tested with git plus this patch, I didn't get any video output during booting. I tested with Ubuntu's seabios 1.7.4, and adding a modified version of this patch did fix the problem. The changes seemed pretty obvious in context. It seems that BREGS_size-8 was changed to PUSHBREGS_size-16 somewhere after 1.7.4. Here's the patch that I applied to 1.7.4: Index: seabios-1.7.4/vgasrc/vgaentry.S =================================================================== --- seabios-1.7.4.orig/vgasrc/vgaentry.S 2015-01-12 15:28:20.060000981 -0600 +++ seabios-1.7.4/vgasrc/vgaentry.S 2015-01-12 15:29:35.296142288 -0600 @@ -101,8 +101,10 @@ cld pushw %ds // Set %ds:%eax to space on ExtraStack pushl %eax - movw %cs:ExtraStackSeg, %ds - movl $(CONFIG_VGA_EXTRA_STACK_SIZE-BREGS_size-8), %eax + movw $SEG_BDA, %ax + movw %ax, %ds + movw 0x0e, %ds + movl $(1024-BREGS_size-8), %eax popl BREGS_eax(%eax) // Backup registers popw BREGS_ds(%eax) movl %edi, BREGS_edi(%eax) So it seems you have two working solutions (though I should retest with git, if you want to go with option 5). If/when you choose one of these and commit it, I'll update the Ubuntu bug asking them to deploy the patch as an SRU (stable release update). -- Richard
signature.asc
Description: This is a digitally signed message part
_______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org http://www.seabios.org/mailman/listinfo/seabios