pxeboot PC Engines WRAP

John Baldwin john at baldwin.cx
Mon Jul 31 18:03:14 UTC 2006


On Saturday 29 July 2006 13:31, Adrian Steinmann wrote:
> On Fri, Jul 28, 2006 at 12:36:54PM -0400, John Baldwin wrote:
> > This is because the BIOS you are talking to here is trying to enter
> > protected mode on its own, which simply does not play well with VM86 at 
all.
> > It's not something you are going to "fix" in VM86 unless you change BTX 
> > drastically to pop back into real mode to call the BIOS and handle IRQs
> > rather than using vm86 mode.
> 
> PC-Engines says that only the int 15, function 87 goes back into
> protected mode, and that seems to be trapped in boot/i386/btx/btx/btx.S
> line 609 so the FreeBSD BTX should cover that case. Or am I
> misunderstanding something here?

That's correct in that BTX does handle int15/87 directly.

> The disassembled code you mention:
> > 00000000  660F01975200      o32 lgdt [bx+0x52]
> > 00000006  0F20C0            mov eax,cr0
> > 00000009  0C01              or al,0x1
> > 0000000B  0F22C0            mov cr0,eax
> > 0000000E  66FFAF6A00        jmp dword far [bx+0x6a]
> > 00000013  66B810008ED0      mov eax,0xd08e0010
> > 00000019  89EC              mov sp,bp
> > 0000001B  8ED8              mov ds,ax
> > 0000001D  8EC0              mov es,ax
> > 0000001F  8E                db 0x8E
> seems to indeed stem from http://www.pcengines.ch/tb13.zip INT1X.8
> where the "Int 15, AH=87: block move" is handled in "unreal mode", as
> described in http://www.pcengines.ch/tb13.pdf. So would that mean that
> BTX didn't trap that or something else was amiss before?

Are you sure that's the only place it enters protected mode?

-- 
John Baldwin


More information about the freebsd-embedded mailing list